bitterhowl
В скрипт советника в целом достаточно безболезненно может включать значительное количество мониторов monitor_conditions без ущерба общей производительности, т. к. включается на короткое время по запросу.
Если вызвать скрипт советника содержащий мониторы, то эти мониторы будут работать до окончания цикла
while I_InBattle
end_while
В данном случае работает пока в битве.
Если вызвать на страт карте, например, с циклом I_TurnNumber < 5(или какой-нибудь счетчик), то мониторы из скрипта советника будут работать до пятого хода. И влиять на переход хода, само собой. Перезапуск/перезагрузка обнуляет эти мониторы. В риме1 такой метод используется в кампаниях. После каждой загрузки сейва происходит активация скриптов.
Но я делаю чуть иначе. например у меня есть монитор в скрипт файле кампании и я не хочу, чтоб он влиял на переход хода, то можно прописать вот так вот. По идее этот же монитор будет в файле советника, но он не влияет на время перехода хода(или влияет, но совсем чуть-чуть).
Если не зациклить вайлом и там нет мониторов(вроде именно мониторы не хотят повторно работать с одним триггером и поэтому в германикусе их 20), то сработает лишь раз. И таких советников можно вызывать сколько угодно раз подряд. Например кнопки советников RequestTrainingAdvice и RequestBuildingAdvice я сделал через советника и вызываю неоднократно за один присест.