Я хрен знает, мне нужно, чтобы отлавливал перемещение и сразу его отменял. Элементарный триггер, но почему то отменяется только приказ патрулирования, а приказ "идти" через панель приказов и через ПКМ не отменяет... wtf?

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

Нужно запаузить, отдать приказ стоп и анпаузить. У тебя в триггере неверный порядок.
Также нужно обязательно фильтровать приказ 851973.

rsfghd, зачем все эти костыли, когда есть проверенный способ через паузу?
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
19
3 года назад
0
Похожие вопросы:

ответ
Очень просто, проверяем каст по приказу юза предмета и если цель неподходящая то дропаем предмет юниту под ноги, а потом заставляем подобрать его.
ответ
вот пример
проверяем выделен, но есть некоторые вылеты. Нужно выключать/включать тригг на ордер, проверять что умер гер и так далее. у меня от убийства героя вылетает почему-то. еще вылет от не существующего номера игрока (игрок с номером -1 не существует)
ответ
Ты хочешь сделать такую механику в своей карте?
Или тебя просто напрягает, что такое есть в 1 доте?
Нужны холодные тесты по идее хайд юнита и короткая неуязвимость ДОЛЖНЫ сбивать очередь приказов, весьма странно, что этого не происходит
ответ
есть горячая клавиша отмены. Но это работать должно, если у игрока юнит выделен. И кнопка отмены не заблочена и не спрятана. Горячая клавиша напрямую связана с видимостью клавиши, пробовал прятать кнопку, и тогда также не работает и hotkey
function ForceUICancelBJ takes player whichPlayer returns nothing
    if (GetLocalPlayer() == whichPlayer) then
        // Use only local code (no net traffic) within this block to avoid desyncs.
        call ForceUICancel()
    endif
endfunction

xgm.guru/p/wc3/220178 если надо, чтобы не бежал строить. Вы уже отдали приказ строить в точку, и нужно сразу же отдать отмену. сразу же отменить можно. Но приказ стоп обычно не срабатывает.
xgm.guru/p/wc3/218129 приказ отмены. Идет на апгрейды, тренировку и прочее. Вы может неправильно отлов делаете?
ответ
world_editor, я нашёл путь к решению! Правда, есть косяки..
Движение - это тоже способность. А если нажата одна способность, то нельзя нажать применение другой способности. Что это значит? То, что если нажата вторая способность, то первая не нажата. Ставим применение обеих способностей (движение и стоп) в один триггер, разделяя их логической переменной. А изменение значения этой переменной кидаем в триггеры отлова способностей/приказов.
Но вот косяки: из-за периодичности триггера (даже при изменении на 0.03 с.) переменная не успевает сразу поменяться, из-за чего приказ второй способности прожимается несколько раз и слышно щелчки. А если нажать левую кнопку во время движения, она сработает так же, как "Стоп". Нужно каким-то образом поменять значения переменных, но где - пока не могу сообразить, голова не варит уже. Попробуй продолжить самостоятельно.

3
27
3 года назад
Отредактирован rsfghd
3
Нужен таймер. Первым способом это каждые 0.01 сек проверять координаты юнита, а вторым, это все те же твои действия, но перед ними ещё таймер в 0.00 сек


Загруженные файлы
0
32
3 года назад
0
Должно и без таймера, проверяйте на приказ стана и давайте, снимайте паузу.
0
28
3 года назад
Отредактирован PT153
0
Нужно запаузить, отдать приказ стоп и анпаузить. У тебя в триггере неверный порядок.
Также нужно обязательно фильтровать приказ 851973.

rsfghd, зачем все эти костыли, когда есть проверенный способ через паузу?
Принятый ответ
3
28
3 года назад
Отредактирован PT153
3

Исправил карту-пример.
Загруженные файлы
Чтобы оставить комментарий, пожалуйста, войдите на сайт.