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

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

Число зависит от слота инвентаря, в котором лежит использованный предмет
Кстати не знаю как у других, а у меня оглушенный юнит игнорирует приказы и триггер их не ловит
1
20
7 лет назад
Отредактирован biridius
1
Число зависит от слота инвентаря, в котором лежит использованный предмет
Кстати не знаю как у других, а у меня оглушенный юнит игнорирует приказы и триггер их не ловит
Принятый ответ
0
12
7 лет назад
Отредактирован EvilPenguin
0
Спс все работает)
Незнаю у меня проблем нет. Предмет работает нормально. Снимает стан и при этом сам предмет проюзывается без проблем.
вот так вот я извратился
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
0
20
7 лет назад
0
Странно, мб у меня кривой вар, но такое же событие у меня ловится только когда стан истекает и юнит начинает выполнять все эти приказы
1
16
7 лет назад
1
нет, приказ ловится в момент отдачи и никак иначе
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
оно тебе надо проверять, стоят ли проверки безопасности в функции?)
0
12
7 лет назад
0
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:
Странно, мб у меня кривой вар, но такое же событие у меня ловится только когда стан истекает и юнит начинает выполнять все эти приказы
А какое событие ты используешь?
0
20
7 лет назад
Отредактирован biridius
0
  • А какое событие ты используешь?
Я станю одного короля молотом от другого и начинаю нажимать на кнопочки: использовать предметы, удар грома и т.д., но триггер ничего этого не ловит до конца стана
Загруженные файлы
0
27
7 лет назад
Отредактирован MpW
0
biridius, можно только текущий приказ узнать (есть спец. нативка GetUnitCurrentOrder), вот по событию не получится кажется найти по GetIssuedOrderId. В этот момент только получает приказ, самого состояния (стана) не достиг. Помню пробовал проверить стан с помощью событии (где условие GetIssuedOrderId() == 851973), но стан так и не получилось словить (только текущий можно)
0
20
7 лет назад
Отредактирован biridius
0
Незнаю у меня проблем нет. Предмет работает нормально. Снимает стан и при этом сам предмет проюзывается без проблем.
у автора темы работает как-то же, и в коде выше что он скинул отслеживается то самое событие.
вот мне и интересно почему у него событие работает так, а у меня нет.
0
27
7 лет назад
Отредактирован MpW
0
Помню пробовал проверить стан с помощью событии (где условие GetIssuedOrderId() == 851973), но стан так и не получилось словить (только текущий можно)
ой сорри проверил только что, работает. условие GetIssuedOrderId() == 851973 работает
biridius, мб условие. у вас условием отличается.
0
20
7 лет назад
Отредактирован biridius
0
Steal nerves,
разница в том что он проверяет какой предмет использован, а я проверяю кто использовал.
но у него событие ловится и во время стана, а у меня только после стана. странно что условие может так влиять на момент отлова события
0
27
7 лет назад
0
biridius, сложно догадаться в чем причина
0
20
7 лет назад
Отредактирован biridius
0
Заглянул я в его предыдущий вопрос. Там пишут что приказ сквозь стан ловится, но юнит его не выполняет.
У меня ничего не ловится. Даже без условий, приказ не проходит.
Вот может дело в варкрафте? Проверьте кто-нить эту карту и скажите - ловятся приказы предметов от застаненного короля или нет? У меня нет. Мне интересно вдруг у меня вар неправильный.
Загруженные файлы
Чтобы оставить комментарий, пожалуйста, войдите на сайт.