![]()
PROSHELDOTU
Здесь и сейчас.
![]() ![]() offline
Опыт:
21,932Активность: |
Триггерный скил - Уменьшение урона
Вот сделал скил на уменьшение любого урона полученного юнитом на 99%.
Всё норм работает, но есть 2 большие проблемы, которые я никак не пойму как исправить:
Помогите, как доделать скиллл!!!!???? Скрины триггеров внизу: |
![]() |
#1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Extremator
![]() ![]() offline
Опыт:
39,590Активность: |
вообще в момент получения урона сначало мы даём юннту ХП... а потом болько он получает урон...
если у юнита 500хп а наносимый урон 100ед.
то мы ему сначало дадим 100% от урона... +100хп... но у него всё равно будет 500хп, ибо максимум... а потом он получит урон... и у него станет 400хп... поэтому в случиях когда "здоровье юнита + даруемое ХП" больше чем "макс.здоровье юнита"
то нужно подождать 0.01 сек и потом только дать ему "+100хп"... иначе... как обычно... просто дать... потом урон пройдёт...
использовать Wait не рекомендую категорически! потому что там минимум 0.1 сек срабатывает
уж лучше таймер... Отредактировано Extremator, 16.06.2012 в 13:58. |
![]() |
#2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
PROSHELDOTU
Здесь и сейчас.
![]() ![]() offline
Опыт:
21,932Активность: |
Таймер помог исправить первую проблему, но как же быть со второй??? |
![]() |
#3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Extremator
![]() ![]() offline
Опыт:
39,590Активность: |
вот пример...
но вот только тут стоит wait так то всё работает нормально, но вот поднимает хо он не мгновенно как нужно, а только через 0.1 сек поэтому лучше таймером... 0.005 - 0.010 сек
*** в событии юзаю конкретного юнита, но роли не играет
*** хилю на "урон", у тебя же будет (урон * 0.99) Extremator добавил: так... со второй помогает следующий вариант... щас отпишу...... |
![]() |
#4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
PROSHELDOTU
Здесь и сейчас.
![]() ![]() offline
Опыт:
21,932Активность: |
Кстати если с таймером делать, то я так понимаю это надо в одном триггере всё?
Я создал глобалку таймера и в другом триггере сделал, когда таймер срабатывает и т.д. и т.п. Вроде всё работает норм, но если юнита атакует большое количество других юнитов или там юзаются спелы вроде огненного столба, то некоторый урон пропускается! Ghostbuster добавил: Extremator, вот ещё как же все же сделать так, чтобы юнита не убивало когда запас его хп - 100, а он получает 500 урона при блоке в 99 или 100% ??? |
![]() |
#5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Extremator
![]() ![]() offline
Опыт:
39,590Активность: |
вот ответ на 2й вопрос...
запоминаем здоровье юнита
даём юниту +миллон здоровья (абилкой) устанавливаем здоровье юнита как (запомненное число + урон) ждём тистечение таймер... (у меня вайт 0.1 сек)
запоминаем хп юнита
отнимаем "бонус хп" устанавливаем хп как "запомненое число" опять же... это лишь грубый набросок
Extremator добавил: Ghostbuster: да... локальный переменные... таймер, юнит, значение хп... вообще лучше делать весь триггер на jass... в нём же и будет реакция истечения этого таймера... |
![]() |
#6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
PROSHELDOTU
Здесь и сейчас.
![]() ![]() offline
Опыт:
21,932Активность: |
а почему DamageTaken() + 1.34??
Ghostbuster добавил: А можешь карту с триггером кинуть, а то вот эти триггеры самому делать влом :) |
![]() |
#7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Extremator
![]() ![]() offline
Опыт:
39,590Активность: |
Ghostbuster:
ну просто есть у юнита меньше чем 0.405 хп... то он умирает автоматом... вроде... ну а тут я обезопалис себя и делаю поблажку на ещё один хп... примерно... ну вот такое 1.333333... округлил до 1.34 в большую сторону! Ghostbuster:
щас скину... Extremator добавил: вот |
![]() |
#8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
PROSHELDOTU
Здесь и сейчас.
![]() ![]() offline
Опыт:
21,932Активность: |
Спасибо :) Готовься отвечать в следующей теме :) |
![]() |
#9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|