Добавлен PornoMishka
Суть в том, что для каждого из игроков создаются стартовые юниты. После этого перебором находится ближайшая шахта и заменяется. А вот на моменте замены рудника для эльфов и нежити происходит какая-то дичь: их шахты удаляются, но новые создаются не там, где надо, а в другой точке (причем одной и той же!). Не могу понять, почему так.
Фрагмент кода
if rnd == 3 or rnd == 4 then
local u = nil
local dist = -1
local x = 0
local y = 0
ForGroup(mines, function()
local tmp = GetEnumUnit()
x = GetUnitX(tmp)
y = GetUnitY(tmp)
print(x,y)
local dist2 = Distance(startX,startY,x,y)
if dist == -1 or dist2 < dist then
dist = dist2
u = tmp
end
tmp = nil
end)
GroupRemoveUnit(mines, u)
RemoveUnit(u)
if rnd == 3 then
CreateUnit(p, Rawcode("ugol"), x, y, 270)
elseif rnd == 4 then
CreateUnit(p, Rawcode("egol"), x, y, 270)
end
end
StartMeleeAI(p, race[rnd][6])
end
mines - группа со всеми рудниками
rnd - номер выбранной расы (3 - нежить, 4 - эльфы)
Distance - функция DistanceBetween
Как оно выглядит в игре:
rnd - номер выбранной расы (3 - нежить, 4 - эльфы)
Distance - функция DistanceBetween
Как оно выглядит в игре:
Принятый ответ
А ничего что ты координаты где собираешся создавать перезаписываеш постоянно при переборе? Вместо того чтобы взять их прямо перед удалением...
Соответственно, в x y при текущей реализации всегда будут координаты последнего рудника, а не того который был удален...
Логичней было бы не отдавать наружу из перебора координаты вобще, а использовать их только внутри перебора, а потом отдельно брать координаты рудника перед удалением в другие локалки.
Соответственно, в x y при текущей реализации всегда будут координаты последнего рудника, а не того который был удален...
Логичней было бы не отдавать наружу из перебора координаты вобще, а использовать их только внутри перебора, а потом отдельно брать координаты рудника перед удалением в другие локалки.
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Соответственно, в x y при текущей реализации всегда будут координаты последнего рудника, а не того который был удален...
Логичней было бы не отдавать наружу из перебора координаты вобще, а использовать их только внутри перебора, а потом отдельно брать координаты рудника перед удалением в другие локалки.
Ред. Extremator