такая штука должна по идее запрещать героям ИИ общаться между собой.
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога
Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Впервые здесь? Я Роха — провести быструю экскурсию?
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Я спавнил монстров через цикл, так что нужды в получении всех имен монстров нет, по крайней мере, я так думаю.
Вот скрипт: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
Спасибо! а в чем разница между x и %х?
А о том ,что можно записать
startThread(function(int)
end, i)
я и не догадывался, теперь буду знать) Как я понял, это вызов потока, который находится в теле функции с передачей аргумента i как числа?
Есть ли "обходилка", при которой выдавший ошибку скрипт, просто перешагнул бы косячную функцию и пошёл дальше?