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

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

Ответ
 
Drulia_san
Великий Дрюля жив.
offline
Опыт: 8,569
Активность:
Не реагирует на событие райтклика (приказ мув)
Я уже поставил все возможные события приказов, я просто все приказы отменял при получении хоть какого-нибудь, когда я даю приказ моему юниту райткликом этот триггер не срабатывает. На другие приказы реагирует прекрасно, а на приказ идти райткликом - нет. В чем проблема?
Код:
//Trigger conditions
bool TreeAntiMoveConditions ()
{
    if(GetIssuedOrderId() != OrderId("stop") && GetUnitTypeId(GetTriggerUnit()) == 'H004')
    {
        return true;
    }
    else
    {
        return false;
    }
}

//Trigger actions
void TreeAntiMoveActions ()
{
    IssueImmediateOrder(GetTriggerUnit(), "stop");
}

//Main trigger function
void InitTrig_TreeAntiMove ()
{
    gg_trg_TreeAntiMove = CreateTrigger();
    TriggerRegisterAnyUnitEventBJ(gg_trg_TreeAntiMove, EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER);
    TriggerRegisterAnyUnitEventBJ(gg_trg_TreeAntiMove, EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER);
    TriggerRegisterAnyUnitEventBJ(gg_trg_TreeAntiMove, EVENT_PLAYER_UNIT_ISSUED_UNIT_ORDER);
    TriggerRegisterAnyUnitEventBJ(gg_trg_TreeAntiMove, EVENT_PLAYER_UNIT_ISSUED_ORDER);
    TriggerAddCondition(gg_trg_TreeAntiMove, Condition(function TreeAntiMoveConditions));
    TriggerAddAction(gg_trg_TreeAntiMove, function TreeAntiMoveActions);
}
Старый 21.03.2014, 00:30
Hate
конь вакуумный
offline
Опыт: 43,030
Активность:
добавили бы вы дебаг, сразу стало бы ясно что до действий доходит и проблема не в условиях
» cat
// globals
    unit Temp_Unit
    
//Trigger conditions
bool TreeAntiMoveConditions ()
{
    if(GetIssuedOrderId() != OrderId("stop") && GetUnitTypeId(GetTriggerUnit()) == 'H004')
    {
        return true;
    }
    else
    {
        return false;
    }
}

    void TimedStop(){
        IssueImmediateOrder(Temp_Unit, "stop");
        DestroyTimer(GetExpiredTimer())
    }

//Trigger actions
void TreeAntiMoveActions ()
{
    Temp_Unit = GetTriggerUnit()
    TimerStart(CreateTimer(), 0., false, function TimedStop)
}

//Main trigger function
void InitTrig_TreeAntiMove ()
{
    gg_trg_TreeAntiMove = CreateTrigger();
    TriggerRegisterAnyUnitEventBJ(gg_trg_TreeAntiMove, EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER);
    TriggerRegisterAnyUnitEventBJ(gg_trg_TreeAntiMove, EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER);
    TriggerRegisterAnyUnitEventBJ(gg_trg_TreeAntiMove, EVENT_PLAYER_UNIT_ISSUED_UNIT_ORDER);
    TriggerRegisterAnyUnitEventBJ(gg_trg_TreeAntiMove, EVENT_PLAYER_UNIT_ISSUED_ORDER);
    TriggerAddCondition(gg_trg_TreeAntiMove, Condition(function TreeAntiMoveConditions));
    TriggerAddAction(gg_trg_TreeAntiMove, function TreeAntiMoveActions);
}
Старый 21.03.2014, 09:29
ScorpioT1000
Работаем
online
Опыт: отключен
оптимизируй немного
bool TreeAntiMoveConditions ()
{
    return (GetIssuedOrderId() != OrderId("stop") && GetUnitTypeId(GetTriggerUnit()) == 'H004')
}
Старый 21.03.2014, 11:36
Drulia_san
Великий Дрюля жив.
offline
Опыт: 8,569
Активность:
ScorpioT1000, спасибо отпимизировал.

Hate, разобрался в проблеме, благодарю.
Старый 22.03.2014, 22:39
Ответ

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

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

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

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



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