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

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

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