Всё, сил моих больше нет, ни хрена не понимаю(.
В MapScript у меня написано:
geroy = "Raelag";
SetGameVar("Raelag", geroy);
print("ГГ назван");
SetHeroCombatScript('Raelag', "/Maps/SingleMissions/Koto_Map_New/CombatScript.xdb#xpointer(/Script)");
print("комбат скрипт запущен");
Тут, вроде, всё в порядке, консоль подтверждает.
В CombatScript у меня написано:
geroy = GetGameVar("Raelag");
if GetHeroName(GetAttackerHero()) == geroy then
print("если ГГ агрессор");
SetUnitManaPoints(GetAttackerHero(), 200);
print("дали ману");
sleep(1)
UnitCastAimedSpell(GetAttackerHero(), 4);
print("кастуем");
end;
if GetHeroName(GetDefenderHero()) == geroy then
print("если ГГ защитник");
SetUnitManaPoints(GetDefenderHero(), 200);
print("дали ману");
sleep(1)
UnitCastAimedSpell(GetDefenderHero(), 4);
print("кастуем");
end;
И в тактическом режиме вылезает:
Value was NIL when getting global with name 'SetHeroCombatScript'.
Attempt to call a nil value.
Где ж нуль-то, когда я, вроде написала, что geroy = "Raelag"?
Хелп, люди добрые, подскажите, что тут надо писать?
Надо if GetHeroName как функцию сделать? Да, вроде, MapScriptsEditor на это ругается.
Добавлено через 5 минут
Или это, всё же, проблема с тем, что игра не видит комбат скрипт по указанному адресу?
Добавлено через 2 минуты
ЗЫ, да, я знаю, что здесь после sleep запятые пропущены. Но в скрипте они не пропущены, да до sleep дело и не доходит.