Вот еще интересное наблюдение, но оно скорее не будет относиться к этому вопросу
Немного контекста: Автор вопроса создал 2-е не соприкасающиеся области. Одна в центре, другая ниже. На основе этих областей повешено событие входа и выхода в регионы. Создан герой левее от центральной области. При написании команды -tp, герой перемещается в нижнюю область.
Выводится сообщение о входе и выходе в центральную область, а после вход в нижнюю область. А хотелось, видимо, автору только реакции на событие входа в нижнюю область.
А теперь объясняю почему. Перемещение героя происходит так
Смещаем по оси X. Герой оказывается в центральной области. Срабатывает событие входа в центральную область.
Смещаем по оси Y. Герой выходит из центральной области и входит в нижнюю.
При использовании способности "Скачок", что очевидно, таких промежуточных сообщений не выходит, ибо перемещение героя происходит по двум осям одновременно.
Tredor46, Плохой способ из-за сбрасывания перезарядки способности. При удалении способности, так же сбрасывается её перезарядка. И при дальнейшем добавлении её же, можно будет использовать снова.
Лучше, всё таки блокировать для игрока.
Но нужно помнить, если имеется несколько таких бойцов с такими способностями, то способность будет не видна у остальных бойцов.
А каким способом отправляете бойцов в точки атаки?
К чему я это... Если пользуетесь GUI, то возможно отправляете войска через Событие - Юнит вошел в регион (рект). И отдаете всем войскам в регионе (ректе) приказ нападать.
Попробовать стоит во время создания одного война отправлять его сразу в нужные координаты.
Так же есть вероятность, что отдается приказ всем войскам на карте каждое определенное время, что тоже даёт подобный эффект "затупа" войск.
Согласно триггеру мы видим:
Атакующий - Потрошитель (бездна) (условие)
Создаётся dummy в позиции Потрошителя под управлением игрока, что является владельцем этого Потрошителя.
Даётся команда dummy использовать способность Пламя Обречённости на атакованном бойце.
Ждать
Удалить последнего созданного.
Из того что мы видим всё должно сработать.
Если не работает:
Проверить наличие способности у dummy.
Наличие маны у dummy.
Требования на использование способности. (Исследования и т.п.)
Прежде чем запускать dummy триггерно, рекомендую вручную создать выбираемого dummy и дать им приказ на использование способности. Если конечно впервые пробуем подобное.
Я не совсем прав... Глянул common.j и согласно ему можно сделать такую вещь:
native RegionAddRect takes region whichRegion, rect r returns nothing
native RegionClearRect takes region whichRegion, rect r returns nothing
То бишь можно будет повесить, предварительно сохранив в переменную, на регион событие входа и таймером сначала удалять область, а потом добавить в новом положении область в регион. Должно сработать.
В данный момент не имею доступа к ПК для сверки теории.
И да, писать всё придется на Jass, либо GUI+custom code.
в область ("юнит входит в область") срабатывает только в исходной позиции области
Происходит это из-за события (функции), оно при создании триггера создаёт утекающий region и вешает на этот region событие входа/выхода.
Выход: создавать регион и перемещать его, а не область.
CreateTimerDialogBJ рассказываем и видим, что оно создаёт при вызове TimerDialog.
Если вызвать функцию дважды, то создаст 2 отдельных окна таймера привязанных к одному таймеру. Завершив таймер уничтожить можно будет только последнее окно, если первое небыло привязано к какой либо переменной, то оно (первое) утекает.
local unit whichUnit=GetKillingUnit()
local integer data=GetUnitUserData(whichUnit)
call SetUnitUserData (whichUnit, data+1)
if(data==5)then
call UnitAddAbility(whichUnit, 'A000')
else
...
endif
...
set whichUnit=null
На скриншоте всё верно. Видимо этого действия не достаточно. Сам не сталкивался с такой проблемой и в данный момент не могу реализовать. Однако посидев немного в поиске нашел подобное решение
В таком случае я бы хотел увидеть, что вы понимаете под "физический размер", ибо этого действия должно быть достаточно для вашей задачи.
Скриншот Редактора Объектов с нужным полем будет прекрасным аргументом.
Способность любого пассивно нейтрального животного - Нейтральный (Лягушка, пингвин и т.п.)
Способность у торнадо (смерч) Медузы тоже даёт обладателю ходить в случайном направлении без остановки.
local real x=GetUnitX(udg_Hero)
local real y=GetUnitY(udg_Hero)
set bj_lastCreatedUnit=CreateUnit(GetOwningPlayer(udg_Hero),'hspt',x,y,GetUnitFacing(udg_Hero))
Афтар, попытки были? Насколько удачные? Что использовалось (GUI, JASS, zinc, lua)? В случае не желания самостоятельно или с помощью текущего раздела (вопросы) разобраться в создании способности - обращаемся в раздел Заклинания на заказ и оформляем по примеру.
В вопросах не всегда дают итоговое решение (скопировал-вставил). По моему мнению ответ должен научить, а не кормить готовым.
» WarCraft 3 / Юнит входит в регион
PT153:
Выводится сообщение о входе и выходе в центральную область, а после вход в нижнюю область. А хотелось, видимо, автору только реакции на событие входа в нижнюю область.
Смещаем по оси Y. Герой выходит из центральной области и входит в нижнюю.
При использовании способности "Скачок", что очевидно, таких промежуточных сообщений не выходит, ибо перемещение героя происходит по двум осям одновременно.
» WarCraft 3 / Проблема с order
» WarCraft 3 / Чередование способностей у юнита
Лучше, всё таки блокировать для игрока.
Но нужно помнить, если имеется несколько таких бойцов с такими способностями, то способность будет не видна у остальных бойцов.
» WarCraft 3 / Лимит пищи и триггерный спавн
» WarCraft 3 / Юниты стоят на месте. Что делать?
К чему я это... Если пользуетесь GUI, то возможно отправляете войска через Событие - Юнит вошел в регион (рект). И отдаете всем войскам в регионе (ректе) приказ нападать.
Попробовать стоит во время создания одного война отправлять его сразу в нужные координаты.
Так же есть вероятность, что отдается приказ всем войскам на карте каждое определенное время, что тоже даёт подобный эффект "затупа" войск.
» WarCraft 3 / Как правильно обнулять данные в структуре? vJass.
» WarCraft 3 / call GroupEnumUnitsInRect - Помогите внести корректив в сценарий
» WarCraft 3 / Уменьшение урона юнита при атаке
Атакующий - Потрошитель (бездна) (условие)
Создаётся dummy в позиции Потрошителя под управлением игрока, что является владельцем этого Потрошителя.
Даётся команда dummy использовать способность Пламя Обречённости на атакованном бойце.
Ждать
Удалить последнего созданного.
Если не работает:
» WarCraft 3 / Движущийся Портал
Ред. DazzleFirst
» WarCraft 3 / Движущийся Портал
Выход: создавать регион и перемещать его, а не область.
Ред. DazzleFirst
» WarCraft 3 / как уничтожить все таймер-диалоги timerdialog ?
Если вызвать функцию дважды, то создаст 2 отдельных окна таймера привязанных к одному таймеру. Завершив таймер уничтожить можно будет только последнее окно, если первое небыло привязано к какой либо переменной, то оно (первое) утекает.
» WarCraft 3 / Тройной выстрел
Настраиваем цели и радуемся.
» WarCraft 3 / Количество убийств юнита
Ред. DazzleFirst
» WarCraft 3 / Юнит мешает пройти
Ред. DazzleFirst
» WarCraft 3 / Юнит мешает пройти
Скриншот Редактора Объектов с нужным полем будет прекрасным аргументом.
» WarCraft 3 / KillUnit
call SetUnitState(target, UNIT_STATE_MANA, 0.)
call UnitDamageTarget(source, target, 1.1, false, false, null, null, null)
source - убивец
target - цель убийства
» WarCraft 3 / Как сделать рандомное перемещение
Ред. DazzleFirst
» WarCraft 3 / Как сделать рандомное перемещение
Боевая единица вышла из области
Ваши условия
Отправить в случайную точку области
» WarCraft 3 / Как сделать рандомное перемещение
Способность у торнадо (смерч) Медузы тоже даёт обладателю ходить в случайном направлении без остановки.
» WarCraft 3 / Создание юнита по координатам
» WarCraft 3 / Триггерная способность
» WarCraft 3 / Триггер активируется со второго раза
» WarCraft 3 / Способность исчезает при использовании