LetoX может вы в другом месте боевого скрипта ошибку допустили, и весь интерпретатор падает? Если есть рабочий вариант с другим заклинанием, и нерабочий текущий, попробуйте по чуть чуть переходить от одного к другому и смотреть на каком этапе перестанет работать.
Вот кусок моего похожего скрипта, который работает нормально:
player_hero = '';
function Start()
if(IsHuman(ATTACKER)) then
player_hero = GetAttackerHero();
else
player_hero = GetDefenderHero();
end
combatSetPause(not nil);
local last_mana = GetUnitManaPoints(player_hero);
SetUnitManaPoints(player_hero, 100);
repeat sleep() until(GetUnitManaPoints(player_hero) == 100);
startThread(UnitCastGlobalSpell, player_hero, SPELL_MASS_STONESKIN);
sleep(1);
SetUnitManaPoints(player_hero, last_mana);
repeat sleep() until(GetUnitManaPoints(player_hero) == last_mana);
setATB(player_hero, 0.5);
sleep(1);
combatSetPause(nil);
end