Всем доброго дня!
С помощью руководства решил я попробовать сделать боевой скрипт.
Возникло пару проблем по нему
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;