Приветствую всех.
Проблема вот в чём. Я создал скилл который является пассивкой, и срабатывает когда юнит атакует противника. Сама проблема в том, что это можно использовать в корыстных целях, во время анимации атаки просто отменяя её. По итогу пассивка работает, хотя юнит даже не нанёс удар. Для начала объясню что я уже попробовал.
Было бы неплохо узнать, есть ли ещё варианты помимо этого. Если да, был бы признателен. Спасибо в заранее.
Проблема вот в чём. Я создал скилл который является пассивкой, и срабатывает когда юнит атакует противника. Сама проблема в том, что это можно использовать в корыстных целях, во время анимации атаки просто отменяя её. По итогу пассивка работает, хотя юнит даже не нанёс удар. Для начала объясню что я уже попробовал.
- Давал скиллу дебафф, но этот недостаток всё равно можно использовать если бафф на юните есть.
- Использовал отлов урона через GUI (использовал я это для точной работоспособности на другой карте, (то есть чужой) которую я скинул), но и тут проблема в том что скилл работает если помимо атак есть ещё какой-то источник урона.
Было бы неплохо узнать, есть ли ещё варианты помимо этого. Если да, был бы признателен. Спасибо в заранее.
Принятый ответ
Удалить дебафф в момент отлова урона. Его продолжительность не имеет в таком случае никакого значения.
В версии 1.31 можно проверить тип получаемого/наносимого урона. Урон типа NORMAL всегда идет от атаки.
В версии 1.31 можно проверить тип получаемого/наносимого урона. Урон типа NORMAL всегда идет от атаки.
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован GetLocalPlayer
В версии 1.31 можно проверить тип получаемого/наносимого урона. Урон типа NORMAL всегда идет от атаки.
Отредактирован Extremator
Отредактирован RiderOfBalance
GetLocalPlayer: Хорошо, тогда в таком случае придётся использовать другой дебафф для того чтобы оживший огонь работал + то что ты сказал, за ответ спасибо.
Пассивки на удар, вроде критов, кастомных орбов и так далее делается через детект урона, это тема не для начинающих, нужно продумывать и оптимизировать код... Сложность так же зависит от того на каком патче вы сидите.
Как я понял, мне лучше переходить на JASS. Жаль только что нет видео-уроков, по тексту сложно учиться.
GetLocalPlayer: Из всех вариантов как по мне этот самый простой. Но я думаю каждый из всех вполне себе отличен.
Спасибо всем за советы и помощь.
Событие - юнит получает урон, есть только на конкретного юнита, а не на всех накарте. Нам нужно создать триггер который имеет событие - юнит входит в игровую область, чтобы добавить событие юнит получает урон всем юнитам которые уже есть на карте и тем что будут созданы, разумеется стоит исключать всяких технических юнитов и юнитов которые не интересны - к примеру здания.
Вот даже есть такая наработка - ссылка
Дальше все сложнее, стандартный функционал jass не позволяет как либо отличить урон, т.е все что мы можем узнать это источник и количество урона, а так же тот кто этот урон получает...
И тут начинаются костыли, о которых можно неделю рассказывать. Через 2х реезист к магии к примеру, если юниту вручить рунные браслеты с фактором снижения урона то весь магический урон станет отрицательным, а положительный - физический, но не все так просто, мало того что нам кодом нужно починить магический урон, еще и систему маг резиста мутить...
Ну и если ты нуб-нубский в этом, ты конечно же не справишся, тема эта сложная, с множеством токостей, + куча кода который будет работать постоянно, что требует тщательной проработки алгоритма и оптимизации.