wessonsm, без условий никак: на карте десятки скриптовых боёв - они должны различаться.
Но я догадываюсь в чём дело, но не могу сообразить как с этим бороться.
Объясню подробнее. Стоит на карте монстр и никого не пропускает. Мимо него можно пройти, но сейчас не об этом. Монстр (снайпер) в бою имеет первый ход и стреляет без перерыва, пока не уничтожит всю армию героя. Так вот в конце этого боя и не срабатывает !?FU(OnAfterBattleUniversal);
Я сделал этот бой на выпадении постоянной морали у Снайпера, так как если через UN:C давать повторный ход, то идут разные глюки и в бою и после боя. Так вот я подозреваю, что когда Снайпер всех убивает, то бой как бы не заканчивается... Его где-то нужно прервать.
Вот код после вызова и идентификации боя:
- !?BA0&i^id_Battle^=10;
- !!BA:Q0;
- !!SN:W^canv_morale_stack_index^/-1;
- !?BF&i^id_Battle^=10;
- !!BF:C;
- !?FU(FireMorale);
- !!SN:W^canv_morale_stack_index^/21;
- !?FU(OnBattleStackObtainsTurn)&i^id_Battle^=10;
- !!FU(FireMorale):P;
- !!SN:W^canv_morale_stack_index^/?(act:y);
- !!SN:W^canv_morale_stack_index^/-1;
- !!FU&(act)=-1:E;
- !!VRx1:S1;
- !!VRx2:S0;
- !?FU(OnAfterBattleUniversal)&i^id_Battle^=10;
- !!IF:M^ бой закончен ^;
P.S. а !?BA1 - срабатывает