XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Закрытая тема
 
youtube
сктыщь
offline
Опыт: 8,025
Активность:
Приказ, когда юнит стоит на месте
Как то раньше особо не запаривался, всегда думал, что это легко, но как оказалось, нефига
В общем проблема в том, что никак не могу отследить приказ того, что юнит стоит на месте и ничего не делает
Отлавливаю в помощью таймера и проверки OrderId2StringBJ(GetUnitCurrentOrder(myunit))
где только баги не искал, что только не менял, но так и не пришел к решению проблемы
Как пробовал:
OrderId2StringBJ(GetUnitCurrentOrder(myunit))=="stop"
OrderId2StringBJ(GetUnitCurrentOrder(myunit))=="(null)"
OrderId2StringBJ(GetUnitCurrentOrder(myunit))=="( null )"
OrderId2StringBJ(GetUnitCurrentOrder(myunit))=="(null )"
OrderId2StringBJ(GetUnitCurrentOrder(myunit))=="( null)"
OrderId2StringBJ(GetUnitCurrentOrder(myunit))=="null"
OrderId2StringBJ(GetUnitCurrentOrder(myunit))==" "
да да, я наркоман еще тот, и вроде как знаю, что нет разницы есть пробел или нет
в отладке показывает приказ (null)
так же пробовал
private void HookOrder(){
        trigger t=new trigger
        TriggerRegisterAnyUnitEventBJ( t, EVENT_PLAYER_UNIT_ISSUED_ORDER )
        TriggerRegisterAnyUnitEventBJ( t, EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER )
        TriggerRegisterAnyUnitEventBJ( t, EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER )
        TriggerAddCondition(t,Condition(lambda bool Cond2(){
            msg("|c00FF0000"+OrderId2StringBJ(GetIssuedOrderIdBJ())+" (HOOKED)|r")
            if OrderId2StringBJ(GetIssuedOrderIdBJ()) == "stop" 
                msg("Hook")
            endif
            return false
        }))
        clear
    }
но остановку юнита никак не ловит
Старый 27.06.2013, 00:03
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,429
Активность:
youtube, это я еще дано понял, нельзя отловить приказ DoNothing но можно на него проверять, периодиком, если приказ равен 0 то юнит стоит на месте, и отдаём ему новый приказ...
Старый 27.06.2013, 09:33
koreec49
Живой
offline
Опыт: 2,433
Активность:
quq_CCCP:
youtube, это я еще дано понял, нельзя отловить приказ DoNothing но можно на него проверять, периодиком, если приказ равен 0 то юнит стоит на месте, и отдаём ему новый приказ...
0 это стринг? Ну то есть "0"?
Старый 27.06.2013, 23:49
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,429
Активность:
koreec49, нет ID приказа это целое число, но есть аналог в виде строки чтобы было проще ориентироваться, OrderId2StringBJ(null) == ""
Старый 28.06.2013, 07:48
DioD

offline
Опыт: 45,134
Активность:
выучите типы их всего 6 боже мой...
Старый 28.06.2013, 10:45
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,429
Активность:
DioD:
выучите типы их всего 6 боже мой...
6?
  • цель точка
  • цель обьект
  • без указания цели
итого 3 типа приказов, если есть другие прошу гуру рассказать мне это....
Старый 28.06.2013, 11:14
Buulichkaa
Делаю спеллы за еду
offline
Опыт: 20,146
Активность:
quq_CCCP, я думаю мудрейший имел ввиду handle boolean integer real string nothing)
Старый 28.06.2013, 11:25
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,429
Активность:
Sargaraser, только непойму причем тут типы тема про приказы, и как отловить приказ 0? (это когда юнит стоит и нечего не делает)
Насколько мне известно можно только проверить что текущий id приказа юнита равен 0... Все события на этот приказ не реагируют...
Старый 28.06.2013, 11:41
youtube
сктыщь
offline
Опыт: 8,025
Активность:
ну я сделал order!=attack и мне хватило)
Старый 28.06.2013, 12:04
Закрытая тема

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 13:14.