Итак, господа, вопрос таков.
Делаю в своём моде вышки, полезность которой зависит от юнита, которого вы в неё посадите.
Суть вопроса такова - создаём локальные переменные на юнитов, заносим их в хештаблицу, но как в следующем триггере отследить, что именно вон тот юнит, на которого был направлен закл, подошёл к кастующей вышке, а не просто мимо пробегал, или вообще к другой вышке шел?
Юнит при достижении вышки исчезает, а сама она меняется на другую вышку. Вытащить юнита обратно низзя.
В чем же проблема, спросите вы, доставай из хеш-таблицы и не парь нам мозг! Но тут-то и кроется главная загвоздка - что я не могу юзать локальные переменные в событии

Принятый ответ

orc01, есть событие EventUnitsInRange, делаешь триггер, а при постройки башни добавляешь в него это событие для каждой башни, в условиях проверяешь что тот кто подошел нужного тебе типа юнит, ну действия думаю проблем не вызовут...
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
7
6 лет назад
Отредактирован Sergey105
0
заставь юнита двигаться к вышке и начинай отслеживать дистанцию между вышкой и юнитом и если дистанция меньше требуемого то делаешь нужные действия
чтобы узнать дистанцию
x = GetUnitX(вышка) - GetUnitX(юнит)
y = GetUnitY(вышка) - GetUnitY(юнит)
dist = SquareRoot(x*x + y*y);
dist товя дистанция между вышкой и юнитом
и да тебе работать с таймером
0
20
6 лет назад
0
Почему не отследить по погрузке в транспорт или жертвоприношению?
0
7
6 лет назад
0
DemonoiD, ну я предложил как вариант
0
11
6 лет назад
0
DemonoiD:
Почему не отследить по погрузке в транспорт или жертвоприношению?
Так ведь у нас нет погрузки в транспорт. Юнит после этого из игры удаляется. Через жертву я хрен знает как, ибо кода самой способности у меня нет, а в редакторе способностей она не позволяет что-либо существенно поменять. Так же я пробовал и через "сесть на грифона" - но нихрена не получилось.
Sergey105:
заставь юнита двигаться к вышке и начинай отслеживать дистанцию между вышкой и юнитом и если дистанция меньше требуемого то делаешь нужные действия
чтобы узнать дистанцию
x = GetUnitX(вышка) - GetUnitX(юнит)
y = GetUnitY(вышка) - GetUnitY(юнит)
dist = SquareRoot(x*x + y*y);
dist товя дистанция между вышкой и юнитом
и да тебе работать с таймером
Да про таймер-то я знаю, для отслеживания IDшника нужон. Но твой вариант попробую
0
20
6 лет назад
0
orc01, ну Сунь ему тогда бафи или невидимую способность пустышку и по ней чекай.
0
5
6 лет назад
0
а что у тебя с сесть на грифона не устраивает?
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.