Вкратце: есть тригер, который после получения урона сокровищницей должен выдавать 1 золото, если его атакует сатир, то должно выдаваться 3. Проблема в том, что на всем юнитах золото выдается после получения сокровищницей урона (как и должно), но если её атакует сатир, то после начала анимации игроку уже выдается 3 золота, из-за чего можно отменять атаку, чтобы абузить золото.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
1
32
3 года назад
1
Странная реализация, потом поставил бы хоть проверку на кол-во урона, то там может прилетать 0 урона, помимо основной атаки.
По хорошему бы нормальный детект урона задействовать.
0
5
3 года назад
Отредактирован Capitan Alex
0
quq_CCCP:
Странная реализация, потом поставил бы хоть проверку на кол-во урона, то там может прилетать 0 урона, помимо основной атаки.
По хорошему бы нормальный детект урона задействовать.
А как сделать проверку на урон? Я нашел только 2 ивента похожих на то, что мне могло бы подойти: Unit — specific unit event: is attacked; Unit — specific unit event: takes damage. Мне казалось, что второй ивент должен тригериться только после получения какого-либо количества урона.
0
32
3 года назад
0
Capitan Alex, ну все верно, EVENT_UNIT_DAMAGED - это юнит получает урон, причем любой, даже нулевой, а всякие абилки, дебаффы и тому подобное постоянно наносят 0 урона, ты не замечал что когда ты кастанул спелл, а он еще не долетел до нейтралов они уже бегут к тебе - при касте ты наносишь 0.00 ед. урона. Проверку добавь GetEventDamage() > 5.00 или сколько там примерно снимают хп с 1 удара твои юниты.
на версии 1.26 - особо проверить тип урона нечем, есть три функции реакции на событие - Юнит получает урон, это GetEvenDamageSource() - источник урона, GetEventDamage() - получаемый урон с учетом всех резистов, ну т.е сколько в итоге хп отнимет полученный урон, на момент срабатывания события хп еще не отнимается и юнит жив, если урон смертелен. GetTriggerUnit() - тот кто получил урон. И все, и приходится пользвоатся обходными путями, к примеру мемхаком ссылка
Ну это тема сложная для новичков.
0
9
3 года назад
0
Мне казалось, что второй ивент должен тригериться только после получения какого-либо количества урона.
Технически, он срабатывает до получения урона.
quq_CCCP:
то там может прилетать 0 урона, помимо основной атаки.
А банальное GetEventDamage()>0 не сработает?
0
32
3 года назад
0
map_maiker, ну а я про что написал, и так на всякий пожарный, ставишь порог урона, который нужно нанести для получения золота, а то мало ли еще какая хрень там урон наносит?
1
27
3 года назад
1
Как вообще такая проблема могла возникнуть? Сокровище же не получает урон если отменять атаку, соответственно и событие не должно срабатывать

Скинь пожалуйста карту с подобной проблемой, у меня не получается её воссоздать
0
20
3 года назад
0
rsfghd:
Как вообще такая проблема могла возникнуть? Сокровище же не получает урон если отменять атаку, соответственно и событие не должно срабатывать
если есть триг, который действует от события "юнит начал атаковать" - событие действует во время замаха юнита и ДО получения урона. То есть, нажимая кнопку Стоп, можно спамить событие замаха
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.