Я спавнил монстров через цикл, так что нужды в получении всех имен монстров нет, по крайней мере, я так думаю. Вот скрипт:
for x=66,67 do for y=127,159 do if IsTilePassable(x, y, 0)==1 then CreateMonster ("name"..i, 32, 1, x, y, 0,1,2,270)
if x==67 and y==130 then PlayObjectAnimation ("name"..i, "death", ONESHOT_STILL) end if x==67 and y==154 then PlayObjectAnimation ("name"..i, "death", ONESHOT_STILL) end if x==66 and y==155 then PlayObjectAnimation ("name"..i, "death", ONESHOT_STILL) end i=i+1 end end end
Т.е. в его результате должны получиться монстры, стоящие прямоугольником, некоторые-мертвые. При этом игра не воспроизводит анимацию смерти у существ на проверяемых координатах, консоль пишет, что не найден монстр с именем name(...) если я ставлю sleep между CreateMonster и проверками, то монстры спавнятся не прямоугольником, а вразнобой по какому-то непонятному принципу. В чем может быть дело?
for x=66,67 do for y=127,159 do startThread(function(int) local name="name"..int CreateMonster(name, 32, 1, %x, %y, 0, 1, 2, -90) sleep(1) SetObjectPosition(name, %x, %y, 0) if (%x==67 and %y==130) or (%x==67 and %y==154) or (%x==66 and %y==155) then PlayObjectAnimation(name, "death", ONESHOT_STILL) end end, i) i=i+1 end end