Всем привет, уже всю голову сломал что можно сделать. Делаю периодический урон на юнитах через хэш-таблицу, и условно говоря - 1 заклинание добавляет в таблицу саму цель заклинания и на нем все работает. Второе заклинание - юнит делает несколько прыжков, соответственно цель прыжка выбирается из рандомного юнита рядом и заносится в переменную, а мы не можем получить Key юнита из переменной, так как ее нельзя выбрать, и потому юнит добавляется в пустую группу и получается Key уже 1 случайного юнита из этой группы. И вот по проверке - он находит юнита в группе с дебафами, но не записывает его в хэш таблицу. Что может быть еще не так?

Для этих Key, а скорее всего это GetHandleId(), используй триггер юнита, истекшего таймера (если триггер по таймеру) или This Trigger, то есть "триггер триггера")) Соответственно сохраняй/загружай данные в таблицу/из таблицы по вышенаписанному принципу. Всякие случайные и прочие нестабильные вещи лучше не использовать для такого) чревато неработоспособностью
`
ОЖИДАНИЕ РЕКЛАМЫ...
23
Похожие вопросы:

ответ
Посмотри как сделано тут в способности FurySwipes или Enrage

Этот комментарий удален
23
Для этих Key, а скорее всего это GetHandleId(), используй триггер юнита, истекшего таймера (если триггер по таймеру) или This Trigger, то есть "триггер триггера")) Соответственно сохраняй/загружай данные в таблицу/из таблицы по вышенаписанному принципу. Всякие случайные и прочие нестабильные вещи лучше не использовать для такого) чревато неработоспособностью
Принятый ответ
Ответы (4)
4
EugeAl, как раз да, не работоспособничает. В таком случае создавать даммика, и уже к нему привязывать значения в хэш таблице? Соответственно если целей на которых наложен периодический урон, по ним циклом пробегаться проверять, у кого сохранено значение?
30
LosKalmaros, уже триста раз разжёван принцип привязки данных а таймер. Но нужно упорно изобретать костыли.
23
LosKalmaros, если периодический урон, то можно сделать это через триггер с истечением таймера, и сохранять/грузить по ключу таймера.
Если в триггере 1 создаётся дамми и каст
И в триггере 2 идёт отлов каста дамми и действия
То тогда сохраняй ключ от дамми, но дамми должен быть жив на момент Загрузки ключа
И так далее и тому подобное.
Короче говоря, для ключей используй те вещи, которые точно могут быть определены в триггере именно к этому триггеру
Никаких переборов не надо. Это костыль, и плохой костыль, как верно сказано выше.
Надеюсь, понятно))
4
EugeAl, Периодический урон делал через запуск триггера с событием every 1 second of the game, который активировался после наложения эффекта, и пробегался по всем юнитам с эффектом из таблицы и затем вычиталось сколько осталось секунд и по истечению юнит удалялся из группы на ком должен быть дебаф и нанесение урона.
Сейчас как написал ниже через кастомный скрипт напрямую заношу юнита в хэш таблицу и все проходит
8
Вот видосики по которым я учился в первый раз, сейчас для меня уже хеш-таблицы это просто, как H2O
Ответы (3)
30
Tredor46, хт довольно простая структура данных. Что там может быть сложного то?
30
Tredor46, посмотрел видео. Всё по заветам товарища Гоблина.
8
nazarpunk, да пофиг, главное я разобрался с началом, а дальше сам научился
28
Юзай стек на массивах, будет легче хэштаблицы, тем более, что для работы с ней не хватает функционала на гуи
Ответы (7)
8
rsfghd, ладно, кажется у меня просто знаний не хватает, разберусь
8
rsfghd, тьфу ты, я не в то место ответил
Вот что я хотел спросить ---
А на это гайд есть где-нибудь? Я не умею, знаю массивы, но не знаю как ими заменить таблицу, чтобы это было проще
8
rsfghd, Большое спасибо что уделили мне время, я посмотрел, всё понял как работает, но у меня ещё остались вопросы (но уже немного другие), я сейчас занят немного и задам их ближе к ночи или завтра, ещё раз спасибо
8
А на это гайд есть где-нибудь? Я не умею, знаю массивы, но не знаю как ими заменить таблицу, чтобы это было проще
4
В общем получилось через отдельную кастомную строчку "set udg_JG_BleedId = GetHandleIdBJ(udg_JG_BleedUnit)" записать в хэш таблицу юнита из переменной и все стакается. Единственное будут ли от такого использования проблемы в дальнейшем?
Ответы (1)
23
LosKalmaros, Ну, раз уже джасс пошел, это к лучшему)
Для начала вместо GetHandleIdBJ можно просто написать GetHandleId
Проблемы будут, если в триггере будет вейт или другое отложенное время. Тогда udg_JG_BleedId может быть перезаписана от новой реакции этого же триггера, например)
Чтобы оставить комментарий, пожалуйста, войдите на сайт.