alexkill
offline
Опыт:
19,072Активность: |
Отмена действия способности
Сделал заклинание, действующее по принципу "Покоя", "Звездопада"... (когда герой опредленное время кастует, не может двигаться, атаковать и т.п.)
Все работает, но вот вопрос: как правильно отменяется действие спелла подобного рода? Это в моменты, когда прекращается действие способности, либо героя оглушают. Вот собственно сам спелл: Код:
|
04.07.2008, 14:53 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hellfim
Новичок
offline
Опыт:
79,880Активность: |
alexkill
Order stop? |
04.07.2008, 15:26 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,747Активность: |
атачи на юнита хендл таймера когда с юнит происходит чтото что должно остановить способность, то вытаскивай из него таймер а из таймера все остальное, очищяй и удаляй |
04.07.2008, 15:31 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
alexkill
offline
Опыт:
19,072Активность: |
Цитата:
Неа. Способность-то приостановится, но дамми все равно будет атаковать врага. alexkill добавил: Цитата:
Jon, таймер приаттачен. Ты имеешь ввиду проверять условием жив ли юнит, либо у него есть бафф "Оглушение"? Вот здесь? Код:
|
||
04.07.2008, 15:41 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,747Активность: |
вообщето я сказал несколько другое... но можно и так) |
04.07.2008, 15:49 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
alexkill
offline
Опыт:
19,072Активность: |
Скажи, как хотел ты (а лучше покажи). Может, у тебя оптимальнее вариант )
Я, кстати, еще видал в наработке LordOfChaos, что выполняется проверка булевким оператором. В принципе, наверное, любой способ хорош, лишь бы правильно и рационально применялси. Поэтому оптимальность сложно уловить. Мб, я ошибаюсь... |
04.07.2008, 15:58 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,747Активность: |
я сказал приатачить на самого юнита таймер его спела создать еще один тригер, например с событием юнит умирает, в услових проверяй есть ли у юнита эта спообность, в действиях достовай из юнита таймер, если его нет значит прекращай действия, если есть то доставай из таймера дами, удаляй его, очищай кещ на таймере, удаля сам таймер, очищай кеш на самом юните |
04.07.2008, 16:02 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
alexkill
offline
Опыт:
19,072Активность: |
Цитата:
Как вариант... Попробую. Спасибо, Jon, как всегда помог. |
|
04.07.2008, 16:06 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Toadcop
offline
Опыт:
53,013Активность: |
блин есть евент. стоп кастинг или чё то вроде... сейчас.
call TriggerRegisterUnitEvent(t , u , EVENT_UNIT_SPELL_EFFECT) - начал кастить
call TriggerRegisterUnitEvent(t , u , EVENT_UNIT_SPELL_ENDCAST) - "закончил" кастить конец ЛЮБОГО рода. т.е. просто "всё конец". вот и всё создавай триггеры на эти события.
никакие таймеры и т.п. не нужны.
а да это персональные евенты есть и глобальные такие же. |
04.07.2008, 16:11 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,747Активность: |
alexkill если у тебя задержа юнита указано в ро а не осуществена тригерно, как я вижу, то тогда используй то событие что сказал тоадкоп, хотя я не понял почему сдесь без таймеров можно обойтись
|
04.07.2008, 16:15 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Toadcop
offline
Опыт:
53,013Активность: |
я не про саму конструкцыю спелла... а про евенты начала и конца каста. ну на евенте тупо паузить таймер и всё... ну или старт с 0 без действия. ну а вообщем такие вопросы простые и не интересные =) |
04.07.2008, 16:36 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,747Активность: |
Toadcop неговори, я даже удивался когда ты ответил на него ^^
|
04.07.2008, 16:54 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
alexkill
offline
Опыт:
19,072Активность: |
Собственно это больше размышления, чем вопрос. Всем спасибо, закрыто! когда будет закрыто решаем мы :Р ну это тока. т.е. смысла с закрытых тем нету. их имеет закрывать тогда когда они перестают что то что совсем не связано с темой =) (и когда эта тема являетьса популряной для такого рода срачя) Отредактировано Toadcop, 04.07.2008 в 17:45. |
04.07.2008, 17:01 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
Цитата:
False, сам попробуй У мня срабатывал када тока уже прошло "Время подготовки заклинания". Ведь время подготовки по сути и есть начала каста(напр. тот же WoW) |
|
05.07.2008, 00:06 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Toadcop
offline
Опыт:
53,013Активность: |
ScorpioT1000 афаик нет. ну эт оне есеншиал =) моя задачя была расказать о конечном евенте т.е. который срабатывает при прекращение каста.
|
05.07.2008, 00:36 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
Даж прально переведено: "Приводит способность в действие" =)
Создавай тогда отдельно триггер с эвентом, но тогда его дестроить придется отдельным потоком.. либо создать триггер прямо в we а это уже аж2 трига на 1 спелл тт Попробуй сначало таймерами (и зачем я в этот срач влез^^) |
05.07.2008, 00:54 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|