Такой вопрос, как через триггеры, желательно на джасс, сделать коррекцию урона. Допустим юнит наносит 100 урона, но у того, кого он атакует, есть способность, которая блокирует 31,5 процентов урона. Как я понимаю, нужно отследить входящий урон, потом посчитать урон, который юниит должен получить, а остальное востановить или есть возможность проверять, ещё до получения урона юнитом? Как это сделать? Прошу ещё раз, желательно на ДЖАСС!

Принятый ответ

можешь посмотреть как тут перехватывается урон. хоть я и не рекомендую делать через выдачу неуязвимости, лучше повышать как нибудь максимальное хп если урон выше чем текущее возможное восполнение хп, а затем вернуть обратно как было и провести нужные манипуляции
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
2
19
5 лет назад
2
Похожие вопросы:

ответ
8gabriel8
я переписал всё на jass - вроде работает как надо
MUI как побочный эффект от хештаблицы и таймера
проверь как работает, а то я сутками не спал
Я там если что поменял Set Life на UnitDamageTarget, чтобы золото капало с убитых гноллов
И если нужно будет поменять способность на другую - то просто в константе passiveAbility поменять равкод
и ещё я там расставил комментарии где можно редактировать волны

0
26
5 лет назад
0
можешь посмотреть как тут перехватывается урон. хоть я и не рекомендую делать через выдачу неуязвимости, лучше повышать как нибудь максимальное хп если урон выше чем текущее возможное восполнение хп, а затем вернуть обратно как было и провести нужные манипуляции
Загруженные файлы
Принятый ответ
0
28
5 лет назад
0
Стас Орлов, какой патч?
0
32
5 лет назад
0
Универсальный способ для любого патча, ножно в событии юнит получает урон, сделать проверку, и исцелить юнита на этот процент урона
Способ для 131 можно изменить значение урон до отнятия хп
Событие: TriggerRegisterPlayerUnitEvent(gg_trg_DamageEvent, Player(i), EVENT_PLAYER_UNIT_DAMAGING)
Действие: BlzSetEventDamage(GetEventDamage()*0.5) заблокирует 50% урона
0
28
5 лет назад
Отредактирован PT153
0
исцелить юнита на этот процент урона
Урон в EVENT_UNIT_DAMAGED наносится после завершения триггера, потому следует либо восполнить хп с помощью таймера в 0 секунд, либо способом Hate.
EVENT_PLAYER_UNIT_DAMAGING
Стоит отметить, что в триггере с таким событием урон снизится до вычета брони.
0
26
5 лет назад
0
желательно на ДЖАСС!
GUI конвертировал в текст, вот тебе и jass)

Классический способ:
  • при срабатывании события на получения урона, запоминать количество хп юнита и восполнять жизнь до 100%;
  • через 0.00 секунд запоминать разницу между максимальным и текущим здоровьем, устанавливать хп в запомненное значение минус разница.
0
26
5 лет назад
Отредактирован Hate
0
8gabriel8:
желательно на ДЖАСС!
GUI конвертировал в текст, вот тебе и jass)

Классический способ:
  • при срабатывании события на получения урона, запоминать количество хп юнита и восполнять жизнь до 100%;
  • через 0.00 секунд запоминать разницу между максимальным и текущим здоровьем, устанавливать хп в запомненное значение минус разница.
макс хп юнита 100, получает урон в 200
0
28
5 лет назад
Отредактирован PT153
0
Классический способ:
В чём проблема через 0 секунд просто восполнить здоровье в размере полученного урона, если юнит всё ещё жив?
0
26
5 лет назад
0
PT153:
Классический способ:
В чём проблема через 0 секунд просто восполнить здоровье в размере полученного урона, если юнит всё ещё жив?
Hate:
макс хп юнита 100, получает урон в 200
вы оба не учитываете это
0
28
5 лет назад
Отредактирован PT153
0
вы оба не учитываете это
А, ты про ситуацию, когда полный урон убивает, а сниженный нет? Да, не подумал.
0
17
5 лет назад
0
Просто напиши систему триггерного нанесения урона и будет тебе счастье
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.