Всем привет. Возникли трудности. Я собраюсь сделать две пассивки для своей карты и мне нужно сделать их через скрипты так как зависимость от статов и не только.
  1. Разрывные пули - когда атака героя долетает до цели и наносит урон происходит взрыв.
  2. Хочу сделать стрелы, но свои чтобы они как бы заменяли атаку героя. Для этого надо точно определить когда герой атаковал чтобы невозможно было абузить эти стреы.
Вопрос, как точно определить когда снаряд долетел до цели а когда нет и как определить была ли совершена атака для дальнобойных юнитов. Есть ли какиенибудь способы это сделать? Если есть какие-то наработки на Jass vJass буду благодарен.

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

Юнит атакует, ждать время точки повреждения, потом ждать расстояние до цели атакованного юнита, деленное на скорость снаряда. Но промах учитываться не будет конечно. Можно как-то попробовать через юнит получает урон.
0
16
7 лет назад
0
таймеры на замах, база данных всех бонусов АС и рассчет времени вылета снаряда, отлов любых приказов, чтобы не сбили систему, и всё равно достаточной точности не будет. если в мемхак не умеешь - то будь готов, что ни одно решение не будет абузоустойчивым
1
19
7 лет назад
1
Создаешь группу
Выбираешь всех юнитов на карте и добавляешь в эту группу
Выбираешь всех в группе и добавляешь в триггер Damage Event ивент "выбранный юнит получает урон"
Создаешь триггер с событием "юнит входит в зону игровой карты"
-Если юнит не в группе
-Добавить юнита в группу
-Добавить в Damage Event ивент "триггеринг юнит получает урон"
В самом демедж ивенте делай что тебе вздумается. Для того, чтобы отличить атаку с руки от урона от способности, просто кастуй способности через даммиков(если это триггерные спеллы, то трудностей не возникнет). Чтобы отличить ближника от дальника, дай тем или иным какую то пустышку на основе абилок предметов и сверяй уровень этой способности у юнита(если он равен 0 - значит у него ее нет)
1
32
7 лет назад
1
Darknessay:
Создаешь группу
Выбираешь всех юнитов на карте и добавляешь в эту группу
Выбираешь всех в группе и добавляешь в триггер Damage Event ивент "выбранный юнит получает урон"
Создаешь триггер с событием "юнит входит в зону игровой карты"
-Если юнит не в группе
-Добавить юнита в группу
-Добавить в Damage Event ивент "триггеринг юнит получает урон"
В самом демедж ивенте делай что тебе вздумается. Для того, чтобы отличить атаку с руки от урона от способности, просто кастуй способности через даммиков(если это триггерные спеллы, то трудностей не возникнет). Чтобы отличить ближника от дальника, дай тем или иным какую то пустышку на основе абилок предметов и сверяй уровень этой способности у юнита(если он равен 0 - значит у него ее нет)
Достаточно добавить событие урона на того, на кого ты замахнулся и ждать урона + поставить таймер на случай промаха.
Отличить физический урон с атаки от прочих довольно сложно без мемхака (там тоже не в 3 строчки), но есть фишка с рунными браслетами которая описывалась не раз, гуглите системы отлова физического урона.
0
18
7 лет назад
0
Я тут думал об этом:
событие - Юнит атакован
Условие - у атакующего юнита есть такой-то скилл
Действие - действие
правда я не уверен ,что атакованным он становится при получении урона.
0
18
7 лет назад
0
mishanka122, событие - юнит получает урон.
Этот комментарий удален
0
18
7 лет назад
0
mishanka122, в условиях - Damage source (сравнение юнитов).
Этот комментарий удален
2
19
7 лет назад
2
Юнит атакует, ждать время точки повреждения, потом ждать расстояние до цели атакованного юнита, деленное на скорость снаряда. Но промах учитываться не будет конечно. Можно как-то попробовать через юнит получает урон.
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.