Собственно хочу сделать чтобы за каждые 20/15/10% от максимального здоровья потерянные героем применялся в области где стоит герой исцеляющий газ. Как отловить отсутствующий порог, так чтобы не срабатывало по 100500 раз.

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

nazarpunk, как это математически оформить?
maxhp = 1000;
curhp = 900;

hpstep = maxhp * .05; // 50
lefthp = maxhp - curhp; // 100

index = floor(lefthp / hpstep); // 100 / 50 = 2;
index = 2 означает, что не хватает два раза по 5% хп. При каждом изменении хп сверяеш прошлый index с текущим, если отличаются, то тригеришь что нужно.
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
29
1 год назад
0
Храни переменную, которая будет означать количество отсутствующих 5% здоровья и отслеживай её изменения.
0
29
1 год назад
Отредактирован nazarpunk
0
Только вот проблема, как отлавливать абуз механики, когда здоровье колеблется в районе 80%.
0
33
1 год назад
0
nazarpunk, как это математически оформить?
0
29
1 год назад
Отредактирован nazarpunk
0
nazarpunk, как это математически оформить?
maxhp = 1000;
curhp = 900;

hpstep = maxhp * .05; // 50
lefthp = maxhp - curhp; // 100

index = floor(lefthp / hpstep); // 100 / 50 = 2;
index = 2 означает, что не хватает два раза по 5% хп. При каждом изменении хп сверяеш прошлый index с текущим, если отличаются, то тригеришь что нужно.
Принятый ответ
0
33
1 год назад
0
floor - а это что?
0
26
1 год назад
0
Я такое делал через постоянную проверку уровня ХП, и если оно становилось ниже чем было в предыдущий раз - записываю эту разницу в переменную, ( set X = ( сколько было - сколько сейчас ) ). Если X > 0, тогда добавляем это значение к тому что уже хранится от предыдущих проверок ( set HP = HP + X ).
И после этого нужно проверить что набранное значение HP больше чем некоторая доля здоровья (т.е. число помноженное на максимальное ХП юнита). Если больше - то обнуляешь HP (либо уменьшаешь на эначение этой доли) и воздаёшь нужный эффект от срабатывания абилки.
0
29
1 год назад
0
floor - а это что?
Окруление вниз.

Extremator, при многократном нанесении маленького урона может работать не очень.
0
26
1 год назад
0
nazarpunk:
при многократном нанесении маленького урона может работать не очень.
Это решается прицепкой ивента получения урона
0
29
1 год назад
0
Extremator, накапливать полученный урон в переменной тоже вариант. Можно даже через аттач прогрессбар прихерачить к юниту.
0
26
1 год назад
0
О том и речь. Просто потеря ХП это не всегда получение урона.
0
33
1 год назад
0
На 100% здоровья нереально просто хилит.
0
29
1 год назад
0
На 100% здоровья нереально просто хилит.
Кто кого хилит?
0
33
1 год назад
0
nazarpunk, а нет. Я перепутал частное с делимым XD

Всё. Спасибо nazarpunk, всё работает)
Чтобы оставить комментарий, пожалуйста, войдите на сайт.