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

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

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


Views: 103

» Лучшие комментарии


XGM Bot #1 - 1 month ago 0
Голосов: +0 / -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 с.) переменная не успевает сразу поменяться, из-за чего приказ второй способности прожимается несколько раз и слышно щелчки. А если нажать левую кнопку во время движения, она сработает так же, как "Стоп". Нужно каким-то образом поменять значения переменных, но где - пока не могу сообразить, голова не варит уже. Попробуй продолжить самостоятельно.

rsfghd #2 - 1 month ago (изм. ) 3
Голосов: +3 / -0
Нужен таймер. Первым способом это каждые 0.01 сек проверять координаты юнита, а вторым, это все те же твои действия, но перед ними ещё таймер в 0.00 сек


Прикрепленные файлы
quq_CCCP #4 - 1 month ago 0
Голосов: +0 / -0
Должно и без таймера, проверяйте на приказ стана и давайте, снимайте паузу.
PT153 #5 - 1 month ago (изм. ) 0
Голосов: +0 / -0

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

rsfghd, зачем все эти костыли, когда есть проверенный способ через паузу?
PT153 #6 - 1 month ago (изм. ) 3
Голосов: +3 / -0

Исправил карту-пример.
Прикрепленные файлы