Всем привет!
Суть идеи:
Несколько разных юнитов (неподвижные здания), которыми владеют разные игроки, произносят способность, которая мгновенно перемещает их из точки А в точку Б, а спустя 10 секунд возвращает назад из точки Б в точку А.
Создал триггер:
Хэш-таблица - Save Handle Of(Position of (Casting unit)) as 1 of (Key (Casting unit)) in Hash
Боевая единица - Move (Casting unit) instantly to (Target point of ability being cast)
Wait 10.00 seconds
Боевая единица - Move (Casting unit) instantly to (Load 1 of (Key (Casting unit)) in (Last created hashtable))
Суть проблемы:
Если способность применяют несколько раз за эти самые 10 секунд, некоторые юниты уже не возвращаются к точке А.
В чем я ошибся?

Можешь создавать локальный таймер и вязать всё на него через его хендл и запускать (по завершению отсчтёта таймер выполняет указанную в нём безаргументную и невозвращающую функцию).
При вызове функции из таймера, в ней можно на него ссылаться => получать его хендл. То есть информацио о таймере ты передаёшь по факту самим фактом его использования.
Только не забывай убивать после использования таймер и чистить переменные, разумеется.

И если набегут с криками "кококо, плодить таймеры - зло!", смело отправляй их в 2004 с хекс эдитором и счётчиком тактов процессора.

Если эти юниты здания и всю игру они должны стоять в одном месте, просто иногда перемещаться куда-то там, то можешь при постройке/создании/заранее (что актуальнее - подчеркните) записывать его координаты и вообще забивать на ХТ.
`
ОЖИДАНИЕ РЕКЛАМЫ...
30
Ты пересохраняешь координаты в ячейку юнита, если он применит способность второй раз в течении 10 секунд, то исходные координаты потеряются.
Кроме того, лучше реализовать возврат через таймеры и крепить все нужные данные (здесь это координаты) не к хендлу юнита, а к хендлу таймера.
5
Clamp:
Ты пересохраняешь координаты в ячейку юнита, если он применит способность второй раз в течении 10 секунд, то исходные координаты потеряются.
Кроме того, лучше реализовать возврат через таймеры и крепить все нужные данные (здесь это координаты) не к хендлу юнита, а к хендлу таймера.
Вот мне и интересно, как реализовать это правильно и как правильно таймер задать, в таком случае. Если не трудно, помоги, пожалуйста:)
30
Можешь создавать локальный таймер и вязать всё на него через его хендл и запускать (по завершению отсчтёта таймер выполняет указанную в нём безаргументную и невозвращающую функцию).
При вызове функции из таймера, в ней можно на него ссылаться => получать его хендл. То есть информацио о таймере ты передаёшь по факту самим фактом его использования.
Только не забывай убивать после использования таймер и чистить переменные, разумеется.

И если набегут с криками "кококо, плодить таймеры - зло!", смело отправляй их в 2004 с хекс эдитором и счётчиком тактов процессора.

Если эти юниты здания и всю игру они должны стоять в одном месте, просто иногда перемещаться куда-то там, то можешь при постройке/создании/заранее (что актуальнее - подчеркните) записывать его координаты и вообще забивать на ХТ.
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.