1.2.3) Рекрутирование Наёмников, исследование технологий и покупка Чертежей альянса.


Счет Альянса.

Каждый Альянс имеет счет с ресурсами металл/кристалл/дейтерий/ТМ. Ресурсы со счета Альянса могут расходоваться только на нужды Альянса. Вывод ресурсов со счета Альянса не возможен.
Член Альянса может перевести ресурсы на счет Альянса. Сделать это можно на главной странице Альянса в разделе "Ресурсы Альянса". Там же можно увидеть состояние счета Альянса и бонусы, предоставляемые Альянсом (см. ниже).
На ряде страниц (в частности - на странице Исследований) в верхнем ресурс баре, показывает не количество ресурсов на планете игрока, а количество ресурсов Альянса.
Глава Альянса со счета Альянса на странице [Управление Альянсом] может исследовать технологии, рекрутировать Наемников, покупать Чертежи - соответственно пункты "Исследования Альянса", "Наемники Альянса", "Чертежи Альянса".
Также Глава Альянса может обменивоть ресурсы в нутри альянса, соответствующий пункт "Обмен ресурсов на чёрном рынкене". При обмене одного ресурса на другой, Тёмная материя списывается со счёта Альянса.






Исследования Альянса.

При исследовании технологии уровень лаборатории равен количеству игроков в Альянсе на момент начала исследования.
Активные исследования видны членам Альянса на странице информации.

Бонус Альянса.

После достижения минимально необходимого размера Альянса, каждый член Альянса получает бонус к своим Наемникам и технологиям.

Бонусы от Наемников и Технологий так же действуют при проверки требований к постройкам/исследованиям.
Например: игрок состоит в Альянсе, дающем бонус +2 к Лазерной технологии, а его собственный уровень технологии равен 4. Эффективный уровень технологии этого игрока равен 6. Это означает, что находясь в Альянсе, он имеет доступ к исследованию Ионной технологии (требуется ЛТ 5-го уровня) и может строить Тяжелый Лазер (требуется ЛТ 6-го уровня). Очевидно, если бы он не находился в Альянсе, эти постройки были бы заблокированы.

Стандартный алгоритм расчета.

Данный алгоритм включен по умолчанию (переменная ali_bonus_algorithm в таблице config установлена в 0).
Значение бонуса зависит от количества игроков в Альянсе и вычисляется по формуле:
Бонус = round(уровень технологии или Наемника / количество игроков),
где round() - операция математического округления.

Примеры:
1. Альянс из 10 человек купил Технологию 4 уровня:
Бонус = round(4/10) = round(0,4) = 0
2. Альянс из 10 человек купил Технологию 7 уровня:
Бонус = round(7/10) = round(0,7) = 1

Почему все работает именно так?

Выбранная механика бонусов Альянса призван обеспечить достижение сразу нескольких целей:
1. Исключить злоупотребление фишкой, когда 2-3 игрока формируют Альянс исключительно для получения бонусов.
2. Активизировать межальянсную активность: бонусы от ресурсов Альянса можно получить только начиная с определенного количества участников. Ну и чем больше игроков в Альянсе, тем больше у него ресурсов.
3. Усилить лояльность игроков к Альянсу - при выходе (или выгоне) из Альянса игрок теряет все бонусы и (самое неприятное) все ресурсы, пожертвованные в Альянс.
4. Исключить появление мегаальянсов: чем больше игроков - тем больше ресурсов они могут пожертвовать, но тем меньше бонусов получит каждый отдельный игрок.
5. Слабые игроки в сильных Альянсах получают доступ к end-game юнитам (если, конечно, глава Альянса решит потратить ТМ на соответствующих Наемников) и бонус в развитии.
6. Сильные игроки смогут поднять эффективные уровни Технологий даже в больших Альянсах. Например, если в Альянсе 15 человек, то исследовать 15 уровень технологии всем Альянсом будет проще и дешевле, чем каждому игроку отдельно.
7. То же самое распространяется и на Наемников. При этом только Альянс дает возможность получить эффективный уровень Наемников больше максимального.

Выбранный метод расчета бонусов позволяет создавать оптимальную среду для Альянсов. Регулируя минимальное количество участников для получения бонуса можно косвенно регулировать размер Альянса. Оптимальный размер Альянса будет равен:

floor(<минимальный размер> * 1,5)
где floor() - операция отбрасывания дробной части.

Однако, возможны варианты. В движке реализованы три метода расчета бонуса Альянса: по количеству членов Альянса (описанный выше, используется по умолчанию); по минимальному размеру Альянса; по очкам Альянса; по месту Альянса в статистике.

Расчет по минимальному размеру Альянса.

Данный алгоритм включается установкой переменной ali_bonus_algorithm в таблице config в 1.
Значение бонуса вычисляется по формуле:
Бонус = round(<уровень> * <участники> / sqr(<минимальный размер>)),
Где:
round() - операция математического округления,
sqr() - операция возведения в квадрат
<уровень> - уровень технологии или Наемника,
<участники> - количество игроков в Альянсе,
<минимальный размер> - минимальный размер Альянса для получения бонуса.

Примеры для параметров по умолчанию:
1. Альянс из 10 человек купил Технологию 4 уровня:
Бонус = round(4 * 10 / 100) = round(0,4) = 0
2. Альянс из 10 человек купил Технологию 17 уровня:
Бонус = round(10 * 10 / 100) = round(1,7) = 2
3. Альянс из 20 человек купил Технологию 17 уровня:
Бонус = floor(17 * 20 / 100) = floor(3,4) = 3

При использовании этого метода нужно уделять особое внимание минимальному размеру Альянса. Небольшой размер (6 и меньше) будет давать ускоренный рост бонуса в зависимости от количества членов Альянса - и спровоцирует появление мега альянсов. С другой стороны, большой размер (13 и выше) сделает практически бесполезным исследования и рекрутинг Наемников, поскольку прирост бонуса требует либо создание ГИГАальянса, либо недостижимо высоких уровней технологий/Наемников.

Этот метод рекомендуется:
1. При стандартных настойках (скорость игры - 1х-3х, мин. размер - 10) - для небольших и средних серверов.
2. Мин. размер порядка 8 - для быстрых (10х и выше) PvP серверов.
3. Мин. размер порядка 12 - для больших серверов со около стандартной скоростью игры (1x-3x).

Расчет по очкам Альянса.

Данный алгоритм включается установкой переменной ali_bonus_algorithm в таблице config в 2.
Значение бонуса вычисляется по формуле:
Бонус = round(<уровень> * <очки> / <количество игроков> / <делитель>),
Где:
round() - операция математического округления,
<уровень> - уровень технологии или Наемника,
<очки> - количество очков Альянса,
<количество игроков> - количество игроков в Альянсе,
<делитель> - задается переменной ali_bonus_divisor в таблице config, по умолчанию равен 10.000.000

Данный метод следует использовать с осторожностью и перед его использованием тщательно исследовать статистику сервер для выбора оптимального значения ali_bonus_divisor. Кроме того, данный метод поощряет "кучкование" топов в одном Альянсе.

Расчет по месту Альянса в статистике.

Данный алгоритм включается установкой переменной ali_bonus_algorithm в таблице config в 3.
Значение бонуса вычисляется по достаточно сложной формуле, которую можно посмотреть в исходном коде. Здесь же я приведу словесное описание.
1. Рейтинг Альянсов разбивается на определенное количество "категорий". Оно задается переменной ali_bonus_brackets в таблице config и по умолчанию равно 10. Т.е. динамически строится таблица уровней.
2. Определяется, в какую из категорий попал текущий Альянс и в соответствии с этим ему присваивается "уровень".
3. В зависимости от уровня назначается коэффициент бонуса. Если Альянс находится в первой категории - ему устанавливается коэффициент 10 (т.е. ali_bonus_brackets), во второй - 9 и так далее до последней категории, в которой присваивается коэффициент 1.
4. Полученный коэффициент делится на ali_bonus_brackets_divisor из таблицы config (50 по умолчанию). Фактически, ali_bonus_brackets_divisor контролирует, как сильно уровень Альянса влияет на бонус от технологии/Наемника.
5. Бонус Альянса получается умножением результата предыдущих операций на уровень технологии или Наемника.

Пример 1
Настройки по умолчанию. Альянс занимает 5 место из 80.
1. Размер категории = 80/10 = 8. Т.е. первый уровень - Альянсы с рейтингом от 1 до 9, второй уровень - от 10 до 18 и т.д.
2. Наш Альянс попал в первую категорию - его уровень равен 1.
3. Его коэффициент бонуса равен 10.
4. Множитель бонуса = 10/50 = 0.2.
5. Таким образом, бонус будет равен 20% от уровня технологии/Наемника.
До 2го уровня - бонус будет равен нулю.
С 3го по 7й - бонус равен 1.
С 8го по 12й - бонус равен 2.
И так далее.

Пример 2
5 категорий, делитель 50. Альянс занимает 50 место из 80.
1. Размер категории = 80/5 = 16. Таблица уровней: 1-16, 17-32, 33-48, 49-64, 65-80.
2. Альянс попал в 4ю категорию, уровень равен 4.
3. Коэффициент бонуса равен 2.
4. Множитель бонуса = 2/50 = 0.04
5. Таким образом, бонус будет равен 4% от уровня технологии/Наемника.
До 12го уровня - бонус будет равен нулю.
С 13го по 37й - бонус равен 1.
С 38го по 62й - бонус равен 2.
И так далее.

На последнем примере демонстрируется важность правильного подбора делителя под количество категорий.

Чертёж
"Чертёж" - это программный пакет, дающий доступ к производсту юнитов определенного типа. см. также Чертежи.
Бонус от Чертежей распространяется на весть альянс. В альянсе чертежи стоят дороже, но если весь альянс (в зависимости от количества игроков в альянсе) скинется на эти чертежи, то будет даже выгодней, чем бы покупали игроки их по отдельности.




FAQ "SuperNova.WS" Alliance: NewSTAR, The Emperor with 08.08.2009 22:44:47 © 2009-2014 Ivash