Всем привет. Я задался интересной идеей сделать люркера из старкрафта 2 в варике. Для тех кто не знаком с этим персонажем поясню: данный юнит имеет имеет два положения - закопанный и не закопанный. Особенностью является то, что атаковать он может только в закопанном состоянии, но при этом не может двигаться. Для выкопанного все наоборот - может ходить, но не атаковать. И все бы ничего, но атака у него тоже интересная - площадная, которая задевает всех врагов на своем пути, нанося сплэш. Аналогия в варкрафте - волна силы.
Реалезация:
Взяв за основу могильщика, я сделал юнита, который закапывается и выкапывается. Из-за особенностей закопанного могильщика перешел на способность эльфов - превращение. Чтож, с закопкой все срослось. Для атак были использованы три способности - два канала со строками smart и attack, а так же волна силы с измененной анимацией. Ловится триггером, вместо атаки пускает волну, все хорошо. Но при ближайшем рассмотрении все очень плохо.
Проблема и вопрос:
  1. Данный метод реагирует на каждый проклик на врага пкм (то есть это может быть десятка атак за раз).
  2. При очень большом проклике, данный юнит сбивает прокаст способности и начинает атаковать стандартной атакой - тут важно отметить что она не будет отключена, чтобы не придумывать альтернативы. Авто каст конечно можно, но это будет юнит кастер, а не атака сплэшом. Хотя идеи с такой заменой принимаются.
  3. Бот умудряется атаковать в ответ не задевая тригер.
Цель - пофиксить данные проблемы тем или иным способом: приоретет - не нагружать карту дамми, множеством тригеров, сторонними библиотеками.

Приложение:

Чисто в качестве бреда ))
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...
23
Похожие вопросы:

ответ
Ancient:
dave_wwid, на событии Юнит Атакован возможны баги и утечки. Не лучше ли на событии получает урон?
Я думаю, что вы правы...
Yuru13, вам следует выбрать событие Specific Unit Event, а в нём Получает урон (Damage taken), и создать глобальную переменную для критующего. Далее следует конвертировать триггер в текст и заменить место под Юнита в событии на некую глобальную переменную(Таковую создать через другой триггер типа Событие: Юнит атакован Условие: Атакующий = глобальной переменной атакующий Действие: присвоить свободной глобальной переменной значение атакованный юнит). Также вам пригодится Dmage Source (пишется кое-где вместо triggering unit). Damage source - это тот, кто нанёс урон. В условии пишем, чтобы Damage source соответствовал переменной.(Ну а в переменную его можно засунуть при инициализации карты, или вовсе не сувать, если он будет на карте изначально). Действия же добавляете ваши.
P.S. Конвертированием триггера лучше заняться после добавленных действий. И помните, что Нужно как минимум 2 глобальные переменные типа юнит и 2 триггера.
Недостатки способа
Данный способ будет работать только если у вас на карте одни юнит, имеющий криты с кулдауном, и если этот юнит атакует за раз одну цель... В противном случае придётся создавть локальные переменные вместо глобальных, и в одном триггере. Или же созданные переменные отметить как массивы и создать счётчик для этих переменных (Но и в таком случае не без багов и т.п.)
ответ
Ну решается всё довольно тривиально
Юнит атакован
приказ атакующего юнита не равен "атаковать"
б.е. - приказать атакующий ПКМ атакованного
При первой атаке произойдёт небольшая потеря времени, т.к. получив при каз юнит заново начнёт анимацию атаки. Зато орб будет прокать.
Алсо если приказать юниту перейти нападая на противников (триггерно или ручками) - приказ юнита будет какой-надо и орб будет срабатывать.

28
а периодично выбирать всех юнитов вокруг закопанных нельзя?
26
можно перехватывать урон от этого типа юнитов, при получении урона от него выставлять урон на 0 и кастовать абилку. тем самым автоатаку можно не заменять и она останется в ЮИ
26
Чисто в качестве бреда ))
Загруженные файлы
Принятый ответ
8
Hate
Тут наверное не обязательно даже обнулять урон. Просто поставить атаку 1-1, на мизер урона внимания можно не обращать... Ну, если у вас, конечно не количества хп порядка единицы.
28
goodlyhero, можно блочить урон от автоатаки либой NegateDamage

таким образом показывать сколько урон будет наносится в аое
1
Hate, интересная идея, я посмотрю.

Extremator, тем не менее это работает и так как должно. Почему бы и нет?
26
golemnik:
Почему бы и нет?
Ну на сколько я помню - там спавнились колья из земли, как в импейла...
Если реализовывать так, то тут сразу будет вариант с полностью триггерной волной шипов...
+ я бы убрал кое-что попробовал переделать в механике блокировки атаки (я бы её занулил множителем урона), что б цифры и кнопка были видны, а урона от тычки не было вообще (кроме 0)
1
Extremator, я могу достучаться до тебя в дискорде? А то даже в текущем примере разобраться не особо получается
32
Я бы ему авто атаку сделал из пламени феникса, и отдельным триггером детектил урон от пламени в 0 едениц, и кодом бы делал волну и в виде шипов повелителя могил (так справидливости ради анубарак и есть этот самый люркер, все анимации даже есть у героя )
11
А почему просто при атаке не приказывать юзать способность в место атаки? И поставить на неё КД.

Поставь ей кд на время замаха и всё
Чтобы оставить комментарий, пожалуйста, войдите на сайт.