Источник
форум Империал
ИНСТРУМЕНТАРИЙ
AncillaryEditor (128 КБ)
НАШ ФОРУМ
Здесь можно задать вопрос по этому тутору. м
Активно обсуждаем военные игры, историю, МОДы, и новинки
игрового мира.
|
заметка 1: ЭФФЕКТЫ
Сразу уточню, что речь пойдет именно о СВИТЕ, а не о трэйтах. Информация о свите в игре содержится в файлах data/export_descr_ancillary_enums.txt (перечисление переменных для каждого персонажа), data/export_descr_ancillaries.txt (указание значений этих переменных - т.е. эффектов, а также условий появления персонажей свиты), data/text/export_ancillaries.txt (текстовые описания). С этими файлами и будем работать.
Для работы с ними существует удобная прога AncillaryEditor (скачать ее можно из левой колонки) , у которой есть, впрочем, 2 существенных недостатка: 1) она на англ. языке, 2) она заточена под RTW, а с BI работать не умеет. С первой бедой я постараюсь помочь этим тутором, а со второй никто вам не поможет, кроме вас самих. Если хотите делать свиту для мода под BI, то недостающие аргументы функций придется вписывать ручками.
На проблеме установки проги останавливаться не буду, она не требует инсталляции. Главное чтобы при ее первом запуске вы не забыли указать в поле RTW path путь к папке, в которой лежат экзешники RTW и RTW:BI (в моем случае это H:\Games\_MOD\RomeTotalWar\).
В этой заметке я приведу список эффектов - характеристик, которые могут присваиваться персонажам свиты и от них переходят к вашим генералам, адмиралам и агентам. В AncillaryEditor они назначаются в поле "Effects" переносом из окошка "Available" в окошко "Current" и заданием соответствующего значения.
Каждому эффекту (где знаю) я указываю единицы измерения и их "текущий курс" в игре. Если единицы не указаны - значит, они котируются 1:1. Задали "1" для атрибута Command (или Subterfuge) - получили +1 звездочку для вашего генерала (или соответственно +1 глаз для агента).
Итак:
------------------------------------------------------------------
Ambush -- полководческий талант при атаке из засады
Attack -- полководческий талант при атаке
BattleSurgery (%) -- вероятность выздоровления раненых после битвы
BodyguardValour -- здоровье генерала (насколько долго он может продержаться в бою)
BribeResistance (%) -- стоимость подкупа. +1 ед. = +10%.
CavalryCommand -- полководческий талант при командовании кавалерией
Combat_V_Roman / Eastern / Barbarian / Egypt / Greek / Carthaginian / Slave -- полководческий талант в битве против данной культуры
Command -- полководческий талант
Construction (%) -- стоимость возведения зданий. +1 ед. = -1%.
Defence -- полководческий талант при защите
Electability -- шанс быть избранным в Сенат
Farming -- доход от сельского хозяйства
Fertility -- плодовитость (повышает вероятность рождения детей)
GrainTrading -- торговля зерном? Встречается только у торговца зерном. В переводе написано: повышает прирост населения
Health -- общественное здоровье
InfantryCommand -- полководческий талант при командовании пехотой
Influence -- влияние
Law -- законность (повышает общественный порядок)
LineOfSight -- поле зрения
Looting (%) -- увеличение добычи от грабежа. +1 ед. = +5%.
Management -- управление
Mining (%) -- доход от шахт. +1 ед. = +1%.
MovementPoints (%) -- дальность перемещения армии за ход. +1 ед. = +5%.
NavalCommand -- полководческий талант при сражении на море
Negotiation -- способность к ведению переговоров (для дипломатов)
PersonalSecurity -- личная безопасность (повышает шансы на раскрытие и предотвращение покушений)
PopularStanding (%) -- популярность в народе. +1 ед. = +1%
PublicSecurity -- общественная безопасность (повышает шансы на раскрытие и обезвреживание вражеских лазутчиков)
SenateStanding (%) -- популярность в Сенате. +1 ед. = +1%
SiedgeAttack -- полководческий талант при взятии крепости
SiedgeDefence -- полководческий талант при обороне крепости
SiedgeEngineering -- возведение осадных орудий. +10 ед. = +10 пунктов строительства.
SlaveTrading -- увеличение дохода от работорговли (значение не выяснил)
Squalor -- нищета
Subterfuge -- способности агента (для агентов и убийц)
TaxCollection (%) -- налоговые сборы. +1 ед. = +1%.
Trading (%) -- прибыльность торговли. +1 ед. = +1%.
TrainingAgents (%) -- стоимость подготовки агентов. +1 ед. = -5%.
TrainingAnimalUnits (%) -- стоимость тренировки боевых животных. +1 ед. = -5%.
TrainingUnits (%) -- стоимость тренировки отрядов. +1 ед. = -5%.
TroopMorale -- боевой дух всех отрядов на поле боя
Unrest -- общественное недовольство (понижает общественный порядок)
--------- Добавилось в Barbarian Invasion: ---------------
Loyalty -- лояльность
LocalPopularity -- влияние. Не совсем понимаю, в чем отличие от Influence. В RTW:BI встречаются оба.
HitPoints -- здоровье генерала. То же, что BodyguardValour.
Religious_Belief christianity / paganism / ... / ... / ... / (%) -- обращение в веру. +1 ед. = +5%
Теперь перейдем к тригерам.
Записка 2: ТРИГГЕРЫ
Триггеры - это условия, при которых данный персонаж поступает в свиту вашего генерала или агента. Суть их в следующем: при совпадении ряда условий, скрипт запускает генератор случайных чисел, который с заданной вероятностью решает, приведут ли эти условия в данный момент к появлению в свите нового лица. Если "кости выпали" удачно, свита пополняется соответствующим персонажем, эффекты от присутствия которого мы рассмотрели в предыдущей заметке.
Описание триггера содержится в файле data/export_descr_ancillaries.txt и включает в себя следующие "переменные":
1. WhenToTest Событие, при котором генерируется вероятность возникновения персонажа.
Это событие обычно только одно:
- CharacterTurnEnd -- конец хода
- HireMercenaries -- вербовка наемников
- GovernorUnitTrained -- в городе, где находится генерал, создан определенный юнит
- LeaderOrderedAssassination -- вы отдали ассассину приказ на убийство
- GovernorCityRiots -- беспорядки в городе, где находится генерал
- PostBattle -- окончание битвы
- SufferAssassinationAttempt -- генерал избежал покушения
- AssassinationMission -- попытка убийства (для ассассинов)
- EnslavePopulation -- при захвате города генерал приказал обратить жителей в рабство
- CharacterMarries -- генерал вступил в брак
- GovernorThrowGames -- в городе, где находится генерал, проведены Игры
- GovernorCityRebels -- восстание в городе
- CharacterComesOfAge -- генерал достиг совершеннолетия
- NewAdmiralCreated -- появился новый адмирал
- LeaderOrderedSpyingMission -- вы отдали приказ шпиону на проведение шпионажа
- GovernorBuildingCompleted -- в городе, где находится наместник, завершено строительство здания
2. Condition
Условия, при выполнении которых "бросаются кости".
Этих условий может быть несколько. Запуск триггера требует одновременного выполнения всех из них. Для соединения нескольких условий используется оператор and. Условия пишутся последовательно, каждое в отдельной строке. Все их я разделил бы на 4 группы:
2.1) Общие условия:
- EndedInSettlement -- генерал в конце хода находится в городе.
- RemainingMPPercentage -- если я правильно понял, количество Move Points (пунктов перемещения) должно быть 100% (т.е. персонаж сидит в городе с прошлого хода). Обычно находится в паре с предыдущим условием. Может задаваться в определенном интервале:
Condition not EndedInSettlement
and RemainingMPPercentage >= 35
and RemainingMPPercentage <= 50
-- триггер сработает, если генерал в поле, но выработал ресурс "Move Points" на 35-50%.
- SettlementBuildingExists >= Х -- в поселении, где находится генерал, присутствует строение Х (напр., одеон: >= odeon).
- TrainedUnitCategory Х -- в поселении, где находится генерал, создан юнит определенного вида Х (напр., cavalry).
- TargetFactionCultureType Х -- тип культуры целевой фракции (Х - название культуры).
- FactionType Х -- фракция, для которой сработает триггер (Х - название фракции). Обычно используется для назначения уникальных персонажей или жрецов.
- InEnemyLands -- на вражеской территории
- InBarbarianLands -- в варварских землях.
- GeneralHPLostRatioinBattle >= Х -- не уверен, но думаю, что это указание на потери в генеральском юните (Х - число убитых).
- Routs (или not Routs) -- в вашем войске имелись (или не имелись) отряды, бежавшие с поля боя.
- WonBattle -- генерал выиграл битву.
- GeneralFoughtInCombat -- генерал лично принимал участие в бою.
- WasAttacker -- в битве генерал был атакующей стороной.
- GeneralNumKillsInBattle > Х -- в битве генеральский юнит уничтожил больше указанного количества вражеских солдат.
- MissionSucceeded -- успех миссии (для агентов).
- GeneralFoughtCulture Х -- генерал сразился с армией культуры Х.
- GeneralFoughtFaction Х -- генерал сразился с армией фракции Х.
- PercentageEnemyKilled >= Х -- процент убитых врагов.
- PercentageOfArmyKilled >= Х -- процент собственных потерь.
- RandomPercent >= Х -- случайное условие (на выбор генератора случайных чисел %))
- I_ConflictType Х -- тип конфликта. В RTW используется только в одном случае - при удачной засаде (Х = SuccessfulAmbush).
- I_TurnNumber >= Х -- очень важный параметр: номер хода, когда сработает триггер. Он отвечает за временной промежуток, когда будет доступен тот или иной персонаж. Это позволяет реалистично вводить в игру реальных исторических личностей. Если игра начинается в 300 г. до н.э., 1 ход равен 1/2 года, а нужный вам персонаж жил в 245-180 гг. до н.э., то вы устанавливаете временной интервал:
and I_TurnNumber >= 150
and I_TurnNumber <= 240
-- тогда наш Имярек становится доступен в игре на 150-м ходу (225 г. до н.э.) в 20-летнем возрасте; если он так и не попадет ни к кому в свиту, он навсегда исчезает после своей смерти на 240-м ходу (180 г. до н.э.).
Таким остроумным образом достигается гарантия, что напр. Архимед не окажется на исторической сцене в гомеровскую эпоху или при императоре Веспасиане. А тег FactionType = greek_cities поможет ему к тому же избежать опасности быть египтянином или скифом!
Как и во всех следующих группах, условия могут приводиться как необходимые, так и "excluded"-функции. В этом случае им предшествует оператор not. Напр.:
Condition not EndedInSettlement
and not InEnemyLands
and RemainingMPPercentage
-- триггер сработает, если генерал находится не в поселении, но в родных землях, и при этом не трогался с места до конца хода.
2.2) Необходимые трэйты:
- FatherTrait Y >= Х -- трэйт, присущий отцу будущего "хозяина", или
- Trait Y >= X -- трэйт самого "хозяина" (Y - название трэйта, а Х его значение, обычно >0). Можно, например, создать персонажа, который появится только в свите параноика во втором поколении %)
Трэйты здесь перечислять не буду, по ним желательно составить отдельный тутор. В одном триггере может требоваться несколько трэйтов.
Они могут быть указаны как включением, так и исключением (not Trait).
2.3) Необходимые атрибуты:
- Attribute Y >= X (Y - название атрибута, напр. Command; Х - его численное значение).
Может быть указано несколько атрибутов, в т.ч. с исключением not.
2.4) Тип "хозяина":
- IsGeneral -- генерал
- IsFactionLeader -- лидер фракции
- IsFactionHeir -- преемник лидера фракции
- IsAdmiral -- адмирал
- AgentType = Х -- агент (Х - тип агента: family, diplomat, admiral, assassin, spy). Может задаваться и методом исключения:
not IsGeneral
and not AgentType = family
and not AgentType = diplomat
and not AgentType = admiral
-- триггер будет выполняться только для шпиона или убийцы.
3) Наконец, параметр Acquire
Вероятность появления данного персонажа в свите, если все условия выполнены:
- AcquireAncillary Y chance X -- где Y название персонажа, а Х - вероятность пополнения свиты (если не ошибаюсь, указывается в процентах).
Если бы не этот последний фильтр, свиты росли бы после каждого хода. А так даже при полном совпадении всех условий еще надо, чтобы "карта хорошо легла". Вероятность удачи может составлять от 1% до 100%, но чаще колеблется в пределах 10-80%. |