Делаю один проект , в нем я полностью отказался от стандартной функции нанесения урона и получается отказался от события получение урона. Я сделал собственную базу урона которая организована на потери жизни от всех мне нужных вычислений (брони, сопротивления и тд) но возникла проблема - допустим я создал какую не будь способность которая должна отловить урон , использовать событие на отлов урона я не могу уже - то есть надо делать что-то новое , подобие какой-то функции которая бы проверяла наличие нанесенного урона , но при этом функция могла работать при многократном использовании ( подобной событию отлова урона) . Помогите разобраться с проблемой

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

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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
7
7 лет назад
0
DracoL1ch, вот и вся проблема
Так что я хочу сделать свою базу урона
а на ложность мне как-то все-равно
0
12
7 лет назад
0
a chaos + universal?
0
7
7 лет назад
0
EvilPenguin, он не проходит сквозь астрал
0
12
7 лет назад
0
Можно наносить 0 урона и отлавливать этот момент но как получить нанесенный урон хз...
Может попробовать через хэш-табу передовать)
0
7
7 лет назад
Отредактирован Sergey105
0
EvilPenguin, с отловом урон(единиц) нет проблем
у меня есть база
база создается на каждого юнита при использовании функции моей на нанесение урона в базу вписывается последний кто нанес урон и количество чистого урона (после всех вычислений )
мне надо узнать как отловить момент получение от моей функции урона
вот например есть в доте 2 предмет clarity (реген маны) он сбивается при получении урона . так вот мне надо узнать когда эффект должен быть снят при получении урона .
я пробывал в базу заносить урон потом с помощью публичной функции проверял если урон в переменной больше .0 то урон был нанесен . Оно как бы работало но эту переменную надо обнулять для того чтобы следующий эффект не был снят . А вот если мне сразу надо проверить на получение урона несколько раз - то один эффект проверится нормально а все следующие уже нет .
0
18
7 лет назад
Отредактирован Maniac_91
0
Действие: добавить событие в триггер: Юнит - здоровье становится меньше Х.ХХ.
Попробуй это. А когда жизнь убавится, обнови информацию. (Это и есть обновление информации).
Я ошибся! Не учёл того, что события будут копиться, и каждое из них будет запускать триггер, из-за чего он сработает несколько раз подряд. Не знаю, есть ли способ удалить событие из триггера, но если нет - то мой ответ неправильный. Извиняюсь.
Загруженные файлы
0
7
7 лет назад
0
Maniac_91, это легко исправить
Чтобы событие не вешать на одного и того же юнита его надо заносить куда-то и проверять есть ли он там если да то не регистрировать если нету то заносим его и регистрируем
0
18
7 лет назад
Отредактирован Maniac_91
0
Sergey105, каждый раз, когда здоровье юнита уменьшается, нужно обновить информацию. Иначе триггер сработает только тогда, когда здоровье юнита, к примеру, упадёт меньше 100. А если здоровье уже меньше 100, то событие не сработает же. Придётся создать событие "здоровье меньше 95 (или сколько там осталось после нанесения урона)".
У триггера уже 2 события.
Допустим, юнит восстановил здоровье до 100. Ему нанесли урон 10. В итоге срабатывает событие "здоровье меньше 100" И "здоровье меньше 95", то есть два раза. Вот что я имел в виду.
А при каждом обновлении события будут прибавляться, заставляя триггер срабатывать несколько раз.
Поэтому такой способ не подходит.
0
20
7 лет назад
0
Я не уверен что верно понял сабж, но что мешает при нанесении урона проверять наличие какого-нибудь баффа или абилки? Если таких баффов и абилок много - в помощь игра с их айдишниками (диапазоны вроде buffID > 'AQ00')
2
18
7 лет назад
2
Как вариант, можно найти в системе действия, в которых триггерно наносится урон юниту (потеря жизней), и отлавливать уже оттуда.
Принятый ответ
0
26
7 лет назад
0
заноси свой урон в глобалку, и запускай триггер с названием допустим DamageResultEvent, где ты уже можешь узнать свой урон и запустить нужные тебе действия. На джассе было бы гораздо проще сделать свою систему урона и отлавливать ее
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.