Форум HeroesWorld-а - Показать сообщение отдельно - Скрипты
Тема: Скрипты
Показать сообщение отдельно
#3458
Старый 23.08.2021, 23:32
  #3458
^
Марта
📖
Регистрация: 31.01.2020
Сообщения: 80
Регистрация: 31.01.2020
Сообщения: 80
По умолчанию
Re: Скрипты

Всё, сил моих больше нет, ни хрена не понимаю(.

В 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 дело и не доходит.
Марта вне форума
Ответить с цитированием