Хотел бы, чтоб вы помогли с триггером, в котором при получении урона юнит получал бы только - 1 хп. Помогите пожалуйста

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

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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
32
5 лет назад
0
NazarPunk, ты знаешь, это на любой версии вара не сложно, но раз автор спрашивает, боюсь что он начинающий гуишник и ему очень не просто понять о чем тут речь. Пре хил по событию урона довольно старое, простое, работоспособное решение.
0
29
5 лет назад
0
Пре хил по событию урона довольно старое, простое, работоспособное решение.
Ну не такое и простое
  • запомнить хп до нанесения урона
  • дать абилку на макс хп
  • вернуть хп обратно
  • перенанести нужный урон
0
10
5 лет назад
0
NazarPunk:
Пре хил по событию урона довольно старое, простое, работоспособное решение.
Ну не такое и простое
  • запомнить хп до нанесения урона
  • дать абилку на макс хп
  • вернуть хп обратно
  • перенанести нужный урон
А скачок хп не будет заметен?
0
28
5 лет назад
0
ArchOracle, если сделать всё верно, то нет.
0
10
5 лет назад
0
PT153:
ArchOracle, если сделать всё верно, то нет.
И как верно? (Можно ссылкой на статью, если есть актуальные и без мемхака, с мемхаком концептуально просто и ясно - напрямую меняешь урон)
0
28
5 лет назад
Отредактирован PT153
0
ArchOracle, какой патч?
На 1.26а нужно владение JASS и знание хештаблиц.
0
26
5 лет назад
0
Что-то сложненькое)
Достаточно же таймера на 0.00 секунд.
0
28
5 лет назад
Отредактирован PT153
0
8gabriel8, а как ты перенесёшь в коллбек таймера юнита и нужный урон? Можно через глобалки, но хешем надёжнее.
1
26
5 лет назад
1
На основе предмета, который прибавляет здоровье (Камень Жизни), делаешь способность на +100500 хп. Когда герой получает урон, сохраняешь текущее значение здоровья, даёшь способность, восстанавливаешь здоровье до 100% и запускаешь таймер на 0.00 секунд. Когда таймер истечёт, запоминаешь разницу в здоровье, забираешь способность и устанавливаешь здоровье на прошлое минус разница.
Но хешем действительно надёжнее в ситуациях, когда есть больше одного героя, у которого отлавливаем урон, потому что может быть ситуация, когда враг атакует, например, атакой по площади, в итоге несколько пострадавших получит способность на прибавление здоровья, но снимется она лишь у одного.
И ещё триггер на отлов урона надо при срабатывании выключать, а при истечении таймера включать. Потому что будут лаги со способностями, которые вешают бафф. Сначала герой получает 0 урона от баффа, а потом урон от способности. Например, кинут в героя Молот Бурь, у него запоминается здоровье, выдаётся прибавка здоровья, восстанавливается до 100% и запускается таймер, но в тот же момент он получает урон от молотка, у него уже полно здоровья, оно перезаписывается в переменную, опять восстанавливается до 100% и таймер перезапускается. По истечении таймера у героя будет полное здоровье минус урон от молотка, если он был при смерти, то его это вылечит.
Кстати, если на карте одновременно нет способностей, которые наносят больше урона, чем максимальное здоровье героя, и нет защитных способностей от них на основе рунных браслетов, то можешь не делать способность +100500 хп, а просто до 100% здоровье восстанавливать.
То есть не самой способности на основе рунных браслетов, а её триггерной имитации.
0
15
5 лет назад
0
0
28
5 лет назад
Отредактирован PT153
0
И ещё триггер на отлов урона надо при срабатывании выключать, а при истечении таймера включать. Потому что будут лаги со способностями, которые вешают бафф. Сначала герой получает 0 урона от баффа, а потом урон от способности. Например, кинут в героя Молот Бурь, у него запоминается здоровье, выдаётся прибавка здоровья, восстанавливается до 100% и запускается таймер, но в тот же момент он получает урон от молотка, у него уже полно здоровья, оно перезаписывается в переменную, опять восстанавливается до 100% и таймер перезапускается. По истечении таймера у героя будет полное здоровье минус урон от молотка, если он был при смерти, то его это вылечит.
Если триггер отключается, то зачем тогда хеш? Проще всего поставить условие, что получаемый урон больше 0.

А любой способ ерунда.
При одновременном нанесении урона в способе 8gabriel8 нанесётся только первый урон (для остальных триггер просто не сработает), а в моём, из-за того, что у каждого таймера сохранено одинаковое хп, нанесётся лишь последний урон.
Проверить это легко: задайте лучнице в очередь 5 раз скастовать Q на раба. Без триггеров юнит умрёт, с триггерами - нет.
В загруженной карте реализован способ 8gabriel8. Чтобы сделать мой, откомментируйте call DisableTrigger(gg_trg_take) в DoDamage() и закоментируйте в Start().
Загруженные файлы
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.