Вчера задавал вопрос насчет предмета который снимает дебафы скво стан и возник ворос... При использовании предмета он реагирует на событие "Приказ без цели". Какой айди он вернет? Строкового id приказа нет он возвращает число(integer) .
Это число уникально для каждого премета или что это за число?

Число зависит от слота инвентаря, в котором лежит использованный предмет
Кстати не знаю как у других, а у меня оглушенный юнит игнорирует приказы и триггер их не ловит
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
22
Число зависит от слота инвентаря, в котором лежит использованный предмет
Кстати не знаю как у других, а у меня оглушенный юнит игнорирует приказы и триггер их не ловит
Принятый ответ
12
Спс все работает)
Незнаю у меня проблем нет. Предмет работает нормально. Снимает стан и при этом сам предмет проюзывается без проблем.
вот так вот я извратился
function msc_check_item_for_id takes unit u, integer o_id, integer it_id returns boolean
    local boolean flag
    set o_id = o_id - 852008
    set flag = GetItemTypeId ( UnitItemInSlot ( u, o_id ) ) == it_id
    return flag
endfunction

function Trig_UndisableStone_Conditions takes nothing returns boolean
    return msc_check_item_for_id ( GetTriggerUnit (), GetIssuedOrderId (), 'Pr0Z' ) 
endfunction

function Trig_UndisableStone_Actions takes nothing returns nothing
    local unit u = GetTriggerUnit ()
    
    call UnitRemoveBuffs ( u, false, true )
    
    set u = null
endfunction

//===========================================================================
function InitTrig_UndisableStone takes nothing returns nothing
    set gg_trg_UndisableStone = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_UndisableStone, EVENT_PLAYER_UNIT_ISSUED_ORDER )
    call TriggerAddCondition( gg_trg_UndisableStone, Condition( function Trig_UndisableStone_Conditions ) )
    call TriggerAddAction( gg_trg_UndisableStone, function Trig_UndisableStone_Actions )
endfunction
22
Странно, мб у меня кривой вар, но такое же событие у меня ловится только когда стан истекает и юнит начинает выполнять все эти приказы
16
нет, приказ ловится в момент отдачи и никак иначе
function msc_check_item_for_id takes unit u, integer o_id, integer it_id returns boolean
    set o_id = o_id - 852008
    if o_id>=0 and o_id<=5 then
     return GetItemTypeId ( UnitItemInSlot ( u, o_id ) ) == it_id
    endif
    return false
endfunction
оно тебе надо проверять, стоят ли проверки безопасности в функции?)
12
DracoL1ch:
нет, приказ ловится в момент отдачи и никак иначе
function msc_check_item_for_id takes unit u, integer o_id, integer it_id returns boolean
    set o_id = o_id - 852008
    if o_id>=0 and o_id<=5 then
     return GetItemTypeId ( UnitItemInSlot ( u, o_id ) ) == it_id
    endif
    return false
endfunction
оно тебе надо проверять, стоят ли проверки безопасности в функции?)
А ну да так лучше:D
biridius:
Странно, мб у меня кривой вар, но такое же событие у меня ловится только когда стан истекает и юнит начинает выполнять все эти приказы
А какое событие ты используешь?
22
  • А какое событие ты используешь?
Я станю одного короля молотом от другого и начинаю нажимать на кнопочки: использовать предметы, удар грома и т.д., но триггер ничего этого не ловит до конца стана
Загруженные файлы
27
biridius, можно только текущий приказ узнать (есть спец. нативка GetUnitCurrentOrder), вот по событию не получится кажется найти по GetIssuedOrderId. В этот момент только получает приказ, самого состояния (стана) не достиг. Помню пробовал проверить стан с помощью событии (где условие GetIssuedOrderId() == 851973), но стан так и не получилось словить (только текущий можно)
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.