Добавлен Arry
Создаю юнита, который умеет угонять вражескую технику. Алгоритм действий его в чём: Способность направляется на вражеского юнита (паровой танк, например). Когда я нажимаю ЛКМ, угонщик проигрывает, стоя на месте, определённую анимацию подготовки длительностью в 5 секунд, стоя на том месте, где получил приказ. Только после анимации он уже бежит за вражеским паровым танком. И, при попадании в его сферу радиусом 100-150, угонщик удаляется. А условный паровой танк становится нашим. Естественно, и во время подготовки, и во время бега за танком способность можно отменить.
Первый вариант: просто на основе Одержимости нежити это всё устроить.
Событие: Юнит начинает применять способность
Условия: Применяющий юнит = Угонщик
И
Применяемая способность = Угон
И
Применяемая способность = Угон
Действия: Дать юниту приказ "оставить"
Уже после этого действия угоняемый паровой танк перестаёт быть целью применяемой способности, что делает выполнение триггера невозможным - угонщик просто за ним не бежит после анимации. Тогда мне в голову пришёл другой вариант:
Действия: Удалить Применяющему юниту способность "Угон"
Ждать 0,01 сек.
Добавить Применяющему юниту способность "Угон"
Ждать 0,01 сек.
Добавить Применяющему юниту способность "Угон"
Это тоже не работает, потому что угонщик перестаёт быть Применяющим. Я изменил "Применяющий юнит" на "Юнит триггера", и это..... почему-то тоже не работает! После проигрывания анимации подготовки угонщик либо просто вселяется в танк с расстояния, блин, в километр, а триггер не выполняется.
Либо после анимации подготовки тупо ничего не происходит.
Либо после анимации подготовки тупо ничего не происходит.
Значит, нужна именно СПОСОБНОСТЬ с настройками так, что подготовка происходит прям на месте получения приказа, а область самого действия способности = радиус в 100-150 у.е. от цели способности.
Я полез в способность "Канал".
И......... помогите, пожалуйста.
Кроме того, что ничего не работает, проблема ещё и в том, что я не могу понять, как назначить анимацией ПОДГОТОВКИ именно анимацию ПОДГОТОВКИ, а не просто применения любой другой способности.
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
А в поле анимации Канала прописать stand,victory 2мя строками stand и victory, тогда абилка будет кастоваться с этой анимацией.
Что же касается самой абилки и её алгоритма, то 1) после ожидания юнит триггера и тд не будут работать (поток сбивается), поэтому их нужно сохранять в переменные. 2) для радиуса поможет jass функция IsUnitInRange, она проверяет расстояние между юнитами и "даёт добро" или не даёт на дальнейшие действия, но я не помню, есть ли она в гуи, скорее всего нет, так что только custom script делать.
Отредактирован EugeAl
Отредактирован nazarpunk
Тупая проверка расстояния
IsUnitInrangeXY
Отредактирован nazarpunk
IsUnitInRange
Отредактирован EugeAl
Отредактирован EugeAl
вот такой я говнокодер, да)
И ещё нюансы в том, что я код не под конкретную карту делаю, а для bj, чтобы везде работало, в любой карте. Из за этого хочешь не хочешь, а приходится упираться в голый жасс, иначе, думаю, давно бы перешёл на луа или южапи или ангел скрипт. Просто их в bj не запихнёшь, а других способов, как запихнуть код в mpq, чтобы игра его по дефолту находила и запускала, я не знаю.