MpW
offline
Опыт:
50,016Активность: |
Отлов урона
Смотрите, я сделал наподобие системы на отлов урона. Работает абилка по этому принципу, в добавок она не просто ловит урон, но и отражает полученный урон. Я часть здоровья под %, которое враг отнял возвращаю триггерной командой. И получается некое отражение.
Задача такая : У меня способность отражает урон, так? Допустим, что у героя осталось 100 здоровья (способность отражает 20% урона). Ему наносится урон от способности в 110 ед. урона - он труп, НО он должен выжить, т.к. 22 ед. урона отразится, т.е. у него должно остаться 12 ед. здоровья!
ps где то мусолилась такая тема.
То есть получается, делая системы отлова урона (повесив на юнита событие - "юнит получает урон"), вот полностью отражение - типа отхилить здоровье (дать здоровья). Все действия с хиллом хп работают немного раньше, чем юнит получает урон. Ты либо вылечишь его раньше чем он будет получен (т.е при фулл хп здоровье все равно потратится), либо наоборот, юнит сначала умрет, а потом будет вылечен что уже ничего не изменит. Отредактировано Steal nerves, 21.10.2013 в 10:24. |
04.09.2012, 19:31 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
16GB
GhostOne User
offline
Опыт:
60,317Активность: |
Steal_nerves:
у тебя так выходит или ты там думаешь? событие на урон срабатывает раньше самого урона, поэтому если ты будешь лечить юнита, то он не должен умереть если только урон не больше его максимального хп |
04.09.2012, 19:36 | #2
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
MpW
offline
Опыт:
50,016Активность: |
Я так думаю. |
04.09.2012, 19:54 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Holocauster
INRI
offline
Опыт:
4,249Активность: |
16GB:
Просто лечи его на эти хп триггерно и все. Поставь проверку "нанесенный урон больше или равно текущее хп" И "нанесенный - утраженный урон - текущее хп больше или равно 1" и "макс хп - текущее хп больше или равно отраженный урон" если да, то лечить на отраженный урон. Проблема будет, если дамаг будет превышать макс хп - отраженный урон.
В этом случае, нанести урон персонажу, затем его хильнуть. Я так думаю... |
04.09.2012, 20:53 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DimanTOoBS
offline
Опыт:
5,791Активность: |
если в доте не решили эту проблему, не думаю что вы сможете её решить, не прибегая к воскрешению или созданию нового юнита... |
04.09.2012, 21:53 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Holocauster
INRI
offline
Опыт:
4,249Активность: |
По идее третья пассивка жука все это делает. Может блокировать процент урона, и отражать его. Могу сделать пример. |
04.09.2012, 22:49 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
quq_CCCP
Я белый и пушистый!
offline
Опыт:
93,485Активность: |
Holocauster, Пассивка жука блочит только физический урон от непосредственного попадания по юниту физ атакой, урон полученный от заклинаний, сплешей, ядов, и тп. блокироваться не будет.
quq_CCCP добавил: 16GB, просто действия вшитые в движок происходят раньше чем действия корыте написанные а war#map.j И когда юнит получает урон движок уже решил что юнита нужно убить, так как урон больше чем здоровье юнита, а только потом в движок выполняет инструкцию в которой написано восстановить здоровье юнита... |
05.09.2012, 06:50 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
asesmo
Я I Jag Ich Jeg Ja Minä!
offline
Опыт:
8,073Активность: |
Holocauster:
у жука если ты имеешь в виду анубарака уже лет 9 нету пассиовок лол
теперь у него скилл на контр стан при получении урона (если ты о доте) а в ладдере (насколько я помню) она вроде работает как аура возмездия на 1 человека с повышением брони и отражением мили физ. урона |
05.09.2012, 06:59 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
quq_CCCP
Я белый и пушистый!
offline
Опыт:
93,485Активность: |
asesmo, все говорят про аунбарака из кампании, и мили карт, а не из доты.... И насчёт 9лет загнул, доте стока нету... |
05.09.2012, 07:31 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
MpW
offline
Опыт:
50,016Активность: |
16GB, Он умирает. Я в РО убрал регенерацию хп, убрал ловкость, влияющую на защиту, силу, влияющую на регенерацию здоровья и на запас гера, и защиту (ловкость и сила - поставил 1). И настроил урон так, что он равен запасу хп моего героя. И при ударе его мой гер умирает. Еще надо как-то замедлить удар.
Нет, мне пассивку не хочется использовать. Я планирую использовать еще одну характеристику героя как зависимость (например зависимость % от ловкости).
Говорят, что можно прям в условии написать нужные действия, так как срабатывает она раньше действия. У меня как то сомнения. как это будет выглядеть, смотрите урона еще не нанесли, а уже есть урон. Ладно хоть действия мгновенные. Мне надо просто избежать смерти героя при превышении урона НР.
Предлагают:
Если урон больше, чем есть здоровья, то сделать доп. функцию. В условии при этом дать юниту неуязвимость, а в функции (которую надо вызвать через ExecuteFunc()) убрать неуязвимость и нанести чистый урон, равный не отраженному. То, тут его она убьет, либо он спасется (это уже без разницы). По скольку действия мгновенны, это не заметно. Вопрос тогда встает, как проверить это? умирает быстро очень, не успеваю проверить больше или меньше нанесли. И в точности в погрешности ошибок (либо выживает, так как есть вероятность выживания (помогла защита или какая-то глупая случайность), либо умирает потому что защита -2)
Steal nerves добавил:
щас что-то не хочет работать ExecuteFunc(), JassHepper ругается почему-то, зато уже знаю - что это рабочий вариант (неуязвимость спасает героя) - проверил без ExecuteFunc. Steal nerves добавил: все решил проблему с ExecuteFunc - кавычки забыл поставить Отредактировано Steal nerves, 05.09.2012 в 12:49. |
05.09.2012, 11:49 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
bee
vjass.optimizer
offline
Опыт:
16,615Активность: |
в условии попробуй похилить героя на 1 хп
а потом уже на остальное. есть подозрения, что проверки типа GetWidgetLife() + n * 0.22 и тп они работают медленне,чем нанесенее урона SetWidgetLife(u,1.) попробуй так в условии |
05.09.2012, 12:04 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
MpW
offline
Опыт:
50,016Активность: |
Багнутый вариант. Первый удар триггер пропускает (не сработало, нет плавающих текстов) чего-то, и остается 3 хп, второй удар уже сам вражеский герой не делает (мой герой стоит рядом с ним, а он застыл с атакой), а спустя некоторое время приходит в себя и убивает моего героя (а над ними кучу плавающих текстов испаряется вверх).
» код Код:
|
05.09.2012, 12:43 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
bee
vjass.optimizer
offline
Опыт:
16,615Активность: |
попробуй использовать вместо ExecuteFunc обычный вызов call
|
05.09.2012, 13:20 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
16GB
GhostOne User
offline
Опыт:
60,317Активность: |
вроде так |
05.09.2012, 16:43 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
MpW
offline
Опыт:
50,016Активность: |
16GB, он у меня до сих пор умирает, на экран выводит, что нанес 79, а у того был запас здоровья 125 - получается что урон наносится раньше чем триггер вызовет функцию Action? разницу почему то не заметил ((
Steal nerves добавил: примерчик |
05.09.2012, 18:19 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
16GB
GhostOne User
offline
Опыт:
60,317Активность: |
так пробуй |
05.09.2012, 18:33 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
MpW
offline
Опыт:
50,016Активность: |
16GB, спасибо заработало=)) Тему клоуз.
|
05.09.2012, 19:01 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
16GB
GhostOne User
offline
Опыт:
60,317Активность: |
ты хоть догадался зачем я даммика использовал? чтобы возврат урона не возвращал урон от возврата иначе будет зацикливание, пока урон 0 не будет |
05.09.2012, 19:45 | #18
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DaeDR
offline
Опыт:
8,074Активность: |
Итак, идеальный вариант, который работает даже когда урон больше, чем у юнита максимальное ХП.
И не надо говорить, что такое сделать нельзя. Подобные наработки валяются в барахолке уже очень давно.
» code
Может, слегка замудрено, зато 100% работает без Хеша и дополнительных юнитов. |
05.09.2012, 20:33 | #19
+1/−1
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|