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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
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:
Как вообще такая проблема могла возникнуть? Сокровище же не получает урон если отменять атаку, соответственно и событие не должно срабатывать
если есть триг, который действует от события "юнит начал атаковать" - событие действует во время замаха юнита и ДО получения урона. То есть, нажимая кнопку Стоп, можно спамить событие замаха
2
9
3 года назад
2
ssbbssc:
rsfghd:
Как вообще такая проблема могла возникнуть? Сокровище же не получает урон если отменять атаку, соответственно и событие не должно срабатывать
если есть триг, который действует от события "юнит начал атаковать" - событие действует во время замаха юнита и ДО получения урона. То есть, нажимая кнопку Стоп, можно спамить событие замаха
Но там же "получает урон", а не "атакован"...
0
27
3 года назад
0
map_maiker, именно)
ssbbssc, думаю мы все бы учли этот факт и уведомили автора об неправильном событии, но у него всё норм)
0
21
3 года назад
0
map_maiker, может быть, у вас есть другой триггер, который регистрирует событие EVENT_PLAYER_UNIT_ATTACKED и/или EVENT_UNIT_ATTACKED, а в действии наносит урон от лица атаковавшего.

Также, вполне может быть, что у сатира есть некое подобие жара преисподней, которая наносит урон ещё до атаки.
2
9
3 года назад
2
map_maiker, может быть, у вас есть другой триггер, который регистрирует событие EVENT_PLAYER_UNIT_ATTACKED и/или EVENT_UNIT_ATTACKED, а в действии наносит урон от лица атаковавшего.
Да зачем другое событие? То, что "получает урон" срабатывает чуть раньше урона позволяет при желании заблокировать оный урон или ещё что с ним сделать.
Блокируется выдачей неуязвимости на .0 секунд или абилки на блок урона (не проверял, но работать чуть получше должно - менее заметно при большой плотности наносящих урон).
Собственно, то, что времени .0 (практически мгновенно) хватает чтобы заблокировать урон намекает (слегка) на то, что событие срабатывает мгновенно. Только чуть раньше.

Также, вполне может быть, что у сатира есть некое подобие жара преисподней, которая наносит урон ещё до атаки.
Ну или ещё какой дебафф, вроде промахов.
0
27
3 года назад
0
map_maiker
То, что "получает урон" срабатывает чуть раньше урона
?
Если ты про 1.26, то тут событие срабатывает только после получения урона. На рефе есть _DAMAGING, вот оно до урона срабатывает
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.