Вы тогда не с той стороны к задаче подходите. Боевые функции хорошо описаны в скриптовом руководстве Новика, если что.
- когда ходит единственный стек защищающегося, он кое-что делает.
Тут всё просто:
function DefenderUnitMove(unit)
-- например каст заклинания:
UnitCastGlobalSpell(unit, 'НАЗВАНИЕ_ЗАКЛИНАНИЯ');
return not nil
end
- когда умирает любой стек атакующего, появляются призраки на стороне защищающегося.
Возможно будут нюансы:
function AttackerUnitDeath(unit)
-- не проверял, возможно будет работать так:
local x, y = GetUnitPosition(unit);
AddCreature(сторона, тип, количество, x, y);
end
Эти функции нужно просто поместить в боевой скрипт, они автоматически вызовутся при соответствующем событии.