Добрый вечер всем, хочу реализовать что бы невозможно было даже ударить предмет в игре.
Многие зададут вопрос, зачем "ждать 0 секунд" - иначе вообще игнорирует триггер и не выполняет команду отставить.
Реализовал следующим образом, прикладываю скриншот.
Проблема заключается в следующем, если спамить приказ атаковать предмет, то он все же совершает по нему удар и разламывает.

rsfghd:
Obelick, там определённые юниты не могут ломать предмет
Тогда же можно им в Редакторе Объектов выпилить предметы как доступную цель. Это даже ещё меньше мороки.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
26
А еще этот блок с кучей "или" в условии триггера... Почему у всех с ним проблемы. Попробуй через "иф".
28
Странно, через таймер всё работает, видимо действие ждать 0.00 супер медлительное
код
globals
hashtable H = InitHashtable()
itemtype it = null
endglobals

boolean Conditions(){
    it = GetItemType(GetOrderTargetItem())
    return GetUnitTypeId(GetOrderedUnit()) == 'hfoo' and GetIssuedOrderId() == String2OrderIdBJ("attack") and it == ITEM_TYPE_ARTIFACT
}

nothing k(){
    timer t = GetExpiredTimer()
    IssueImmediateOrder(LoadUnitHandle(H,GetHandleId(t),0),"stop")
    FlushChildHashtable(H,GetHandleId(t))
    DestroyTimer(t); t = null
    BJDebugMsg("2")
}

nothing Actions(){
    timer t = CreateTimer()
    SaveUnitHandle(H,GetHandleId(t),0,GetOrderedUnit())
    TimerStart(t,0.,false,function k)
    t = null
    BJDebugMsg("1")
}

//===========================================================================
function InitTrig_Spell takes nothing returns nothing
    set gg_trg_Spell = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Spell, EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER )
    call TriggerAddCondition( gg_trg_Spell, Condition( function Conditions ) )
    call TriggerAddAction( gg_trg_Spell, function Actions )
endfunction
Загруженные файлы
23
Щас бы костыль придумывать или локальные таймеры когда предмет можно сделать просто неуязвимым...
28
Obelick, там определённые юниты не могут ломать предмет
2
rsfghd:
Obelick, там определённые юниты не могут ломать предмет
Тогда же можно им в Редакторе Объектов выпилить предметы как доступную цель. Это даже ещё меньше мороки.
Принятый ответ
23
Что мешает убрать предметы из доступных целей у определенных юнитов?
28
Lodnar, ха, точно)

хотя может автор на какое-то время включает этот триггер
1
Extremator:
Я всегда решал эту проблему через отдачу приказа "идти" на предмет.
Таким образом герой просто подходил в упор и всё.
это норм
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.