Всем доброго дня!
С помощью руководства решил я попробовать сделать боевой скрипт.
Возникло пару проблем по нему
1) функция GetDefenderCreatures() выдает ошибку: "Wrong type of argument 1 when calling function GetUnits" в независимости, где я в файле скрипта ее вызову. Пробовал аналогичную функцию, но для атакующего - GetAttackerCreatures(). Первый раз сработала, второй раз та же проблема, что и с Defender.
2) хуки DefenderHeroMove(heroName) и AttackerHeroMove(heroName) при ходе героев не запускаются - в консоли даже нет сообщения, что скрипт вошел в тело функции, и даже ошибки никакой не выдает. Один раз даже было, что хук AttackerHeroMove(heroName) просто зациклился. Стабильно работают только хуки Prepare() и Start().
Можете, пожалуйста, подсказать, как эти проблемы разрешить?
Содержимое скрипта (пока просто логи, чтобы понять, что работает, что нет):
print("inside combat file");
DEFENDER = GetDefenderHero();
print(DEFENDER);
ATTACKER = GetAttackerHero();
print(ATTACKER);
defenderCreatures = {0};
attackerCreatures = {0};
function Prepare()
print("inside Prepare function");
print("Prepare function has ended");
end;
function Start()
print("inside Start function");
ShowFlyingSign(GetMapDataPath().."CombatMessage.txt", DEFENDER, 200);
defenderCreatures = GetDefenderCreatures();
attackerCreatures = GetAttackerCreatures();
print(1);
for key, creature in defenderCreatures do
print("key=", key, ", creature=", creature);
end;
print(attackerCreatures);
print("Start function has ended");
end;
function DefenderHeroMove(heroName)
print("inside DefenderHeroMove function");
ShowFlyingSign(GetMapDataPath().."CombatMessage.txt", DEFENDER, 200);
print("DefenderHeroMove function has ended");
end;
function AttackerHeroMove(heroName)
print("inside AttackerHeroMove function");
ShowFlyingSign(GetMapDataPath().."CombatMessage.txt", DEFENDER, 200);
print("AttackerHeroMove function has ended");
end;