Ну в общем, как-то так.
Создание Мира - Расширенный рекрутинг в ходе событий.
Кредиты:
Это пособие представляет собой обобщение идей и кода, обсуждаемых в двух темах под ними, все кредиты идут участникам:
Могут ли наемники быть ограниченными, чтобы только ИИ мог нанять их?
Как добавить наемников
Введение:
Запуск и остановка рекрутинга в ходе событий не является чем-то новым - это было сделано после того, как игра была опубликована, так что же здесь нового? Проблема использования условий event_counter заключается в том, что отключение приводило к сбросу пула, что сделало условие непригодным для частого включения\отключения - оставив только команду сценария «замораживания», которая в лучшем случае была «неуклюжей».Вопрос был в том, когда это происходит (по завершении хода мятежников), когда вы снова включаете условие, чтобы сохранить предыдущий накопленный пул - в отличие от принципа «Повторное включение после отключения» ,в другом моем пособии:
Создание Мира - постройка и поддержание уникальных зданий
Кодирование:
Вербовка наемников ограничивается фракциями
imperial_campaign_script
Два монитора [фракции] требуют репликации для каждой фракции, имеющих права.В качестве альтернативы можно использовать специальные счетчики фракций, что потребует клонирования линии наемников с этими счетчиками.
Код:
monitor_event PreFactionTurnStart FactionType [faction] set_event_counter merc_turn 1 end_monitor monitor_event PreFactionTurnStart not FactionType [faction] set_event_counter merc_turn 0 end_monitor monitor_event FactionTurnEnd FactionType slave set_event_counter merc_turn 1 end_monitor
descr_mercenaries
Код:
pool [pool name] regions [region names] unit [unit name] exp 0 cost 220 replenish 0.15 - 0.35 max 3 initial 5 events { merc_turn }
Сезонный набор
imperial_campaign_script
Часть скрипта подразумевает 12 оборотов в год, начиная с кампании, начинающейся зимой. Время рекрутинга будет с октября по март.
Код:
monitor_event PreFactionTurnStart FactionIsLocal inc_event_counter season_time 1 if I_EventCounter season_time > 9 ; from October and I_EventCounter season_time < 4 ; to March set_event_counter recruit_season 1 end_if if I_EventCounter season_time > 3 ; from April and I_EventCounter season_time < 10 ; to September set_event_counter recruit_season 0 end_if end_monitor monitor_event FactionTurnEnd FactionType slave set_event_counter recruit_season 1 if I_EventCounter season_time > 12 set_event_counter season_time 0 ; resetting season counter end_if end_monitor
export_descr_buildings
Код:
capability { recruit_pool "[unit name]" 1 0.2 2 0 requires factions { [faction name], } and event_counter recruit_season 1 }
Вывод:
Исходя из этого принципа и примеров, Я уверен, что это можно расширить, чтобы имитировать другие включения\отключения принципов вербовки - Я работаю над скриптом, который позволит ограничить рекрутинг на основе относительного количества единиц, размещенных в сравнении с поселениями, где эти скрипты, безусловно, будут отображаться.