еще раз, герой преграждает единственно возможный путь к нужной клетке? тогда все работает согласно механике, CanHeroMove считает героя непроходимым препятствием. можно добавить проверку на такую ситуацию и если она возникает, двигать Эрлинга в местоположение вашего героя, например
Gerterеще раз, герой преграждает единственно возможный путь к нужной клетке?
Да, но в других сценариях также написано просто MoveHero(…), и герой идет туда, даже если ему преграждает путь другой герой с бешеной армией.
Gerterтогда все работает согласно механике, CanHeroMove считает героя непроходимым препятствием. можно добавить проверку на такую ситуацию и если она возникает, двигать Эрлинга в местоположение вашего героя, например
x={15,16,17,18} y={9,9,10,10} for i=1 to n if IsHeroAlive("Erling") then MoveHero("Erling",x[i],y[i],0) end end
Так, условно говоря. На самом деле тут вижу тут пару слабых мест в коде (например, в случае сражения и победы в нём Эрлинг скорее всего не продолжит движение, так как пока бой шёл скрипт уже успел отработать), но логика в целом такая.
Mentx={15,16,17,18} y={9,9,10,10} for i=1 to n if IsHeroAlive("Erling") then MoveHero("Erling",x[i],y[i],0) end end
Так, условно говоря. На самом деле тут вижу тут пару слабых мест в коде (например, в случае сражения и победы в нём Эрлинг скорее всего не продолжит движение, так как пока бой шёл скрипт уже успел отработать), но логика в целом такая.
Консоль выдает ошибку(см. скриншот). Вот код:
x={15,16,17,18} y={9,9,10,10} for i=1,n do if IsHeroAlive(Erling) then MoveHero(Erling,x[i],y[i],0) end end
Ах, ну да. x={15,16,17,18} y={9,9,10,10} n=4 for i=1,n do if IsHeroAlive(Erling) then MoveHero(Erling,x[i],y[i],0) end end В n надо передавать размер массива координат.
MoveHeroRealTime двигает героя независимо от хода, даже во время хода противника может. Так что ответ -- нет, если функция до конца по какой-то причине не отработает, то всё.