![]()
EviLInside
![]() ![]() offline
Опыт:
3,543Активность: |
Вопрос по спеллу с хешем
Вобщем есть спелл МУИ с хешем, глобалок нет.
Смысл его притягивать юнита, ну вот я применил на юнита спелл, и он потихоньку ко мне тянется, и тут его в момент притягивания, на него кто то применил такой же спелл притянуть, и получается лажа, он начинает мелькать, то на траекторию моего спелла, то на траекторию притягивания второго применяемого спелла и тп. Вобщем мне нужно как то отловить что если юнит находится в моменте притягивание уже одним спеллом, и на него кастуется другое притяжение, как то отменить первый спелл действующий, отключить как то таймер, обнулить всё, и тд. Но я незнаю как смастерить это. (Спелл делался на примере из статьи про хеш)
|
![]() |
#1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Sladkoegka
Забыл что хотел...
![]() ![]() offline
Опыт:
7,477Активность: |
EviLInside, Код не читал попробуй так типа когда юнит применяет способность:отслеживать есть ли на цели УЖЕ БАФФ,если есть то отменять действия "1 притягивания"и начинать действия второго,иначе все как обычно. |
![]() |
#2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
EviLInside
![]() ![]() offline
Опыт:
3,543Активность: |
Понял тебя, конечно так не догадался сделать спелл с бафом. Но а если спелл без бафа (мне на будущее)? У меня вот таргет притягивания не имеет никаких бафов, вот если без них как отловить этого юнита? Вообще если у кого то есть время доделайте мой спелл, и прокоментируйте. Я вот лично запутался, есть мысль конечно в группу его локальную сажать, потом сохранять так же в хеш группу и потом проверять. Смысл понятен конечно, но организовать не смогу. Хочу пример с комментами) |
![]() |
#3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
DimanTOoBS
![]() offline
Опыт:
5,791Активность: |
ну по идее во время каста тебе надо записывать созданный таймер в хендл цели заклинания и для проверки логическое значение "да" когда таймер активен. когда кастуешь спелл проверяешь это логическое значение, если "да" стопаешь записанный таймер и перезаписываешь новый ну как то так |
![]() |
#4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Hate
конь вакуумный
![]() ![]()
online
Опыт:
43,030Активность: |
добавлять цель в группу, вешать на хэндл юнита целочисленную/логическую/реальную, задавать UnitUserData, выбирай
добавляешь в тикающую функцию проверку на то что юнит не в группе, целочисленнная не равна тому то, логическая не тру, реальная не такая то, юнит юсер дата не тот.... |
![]() |
#5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
EviLInside
![]() ![]() offline
Опыт:
3,543Активность: |
Вот что такое UnitUserDate я хз...Ладно не буду вас мучить, может кто то пример сделает, на словах я не всё понимаю |
![]() |
#6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Hate
конь вакуумный
![]() ![]()
online
Опыт:
43,030Активность: |
специальное число юнита. Да можно банально давать абилку без иконки юниту и проверять на лвл способности а в конце отбирать ее. |
![]() |
#7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Extremator
![]() ![]() offline
Опыт:
39,812Активность: |
всё не читал, ибо много...
Притяжение я где то делал, хоть и на гуи, зато муишно, вот оно.
Дальше... что касаемо проверки на то что юнит уже притягивается...
чисто логически... нужно взять всех юнитов над которыми проводится работа, и каждого из них сравнить с целью на которую ты применяешь спелл... предположим если я вот делаю в массивах, то выглядеть это должно было бы так В под действиями я подрузомиваю новый установки, цель к кому притянуть, скорость, или время эффекта ну это число пример... В общем ты должен в момент каста сравнить всех притягиваемых юнитов в данный момент с тем юнитом на которого применяется спелл... и в случаи совпадении просто перезаписать все денные... если у тебя там таймер какой нить, то запаузи его и запусти заново... назначь нового героя который является для этого юнита "камером"... и т.д. |
![]() |
#8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Hate
конь вакуумный
![]() ![]()
online
Опыт:
43,030Активность: |
Extremator:
хоспаде, прочти уже что такое хэш таблица
нужно где то сохранять ВСЕ хэндлы таймеров, из них перебором загружать циклом и сравнивать юнитов, а это.... нет слов вообщем
касательно группы я уже писал
Hatsume_Hate:
|
![]() |
#9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Hate
конь вакуумный
![]() ![]()
online
Опыт:
43,030Активность: |
Extremator:
вся проблема в первом посте решается одной глобальной группой, либо той же хэш таблицей. Гуи не оптимизирован и в большинстве случаев утечен, жрет много ресурсов, особенно с малыми периодами и вынуждает делать кучу глобалок. Только перейдя на жасс и узнав его поближе я понял что за страшная вещь гуи. |
![]() |
#10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|