Вот пример GUI. Как видно в области умирает декорация, тип декорации равен кокон то создать паук.
Но не работает...

да действительно, есть лимит 64, связано с событием. но вряд ли у тебя там свыше 64 кокона.
вот так вот выглядит наше событие
TriggerRegisterDestDeathInRegionEvent - функция регистрирует события в регионе с помощью нативки EnumDestructablesInRect. EnumDestructablesInRect - типа что-то пика декора
RegisterDestDeathInRegionEnum - функция перебирает каждую декорацию.
function RegisterDestDeathInRegionEnum takes nothing returns nothing
    set bj_destInRegionDiesCount = bj_destInRegionDiesCount + 1
    if (bj_destInRegionDiesCount <= bj_MAX_DEST_IN_REGION_EVENTS) then
        call TriggerRegisterDeathEvent(bj_destInRegionDiesTrig, GetEnumDestructable())
    endif
endfunction

function TriggerRegisterDestDeathInRegionEvent takes trigger trig, rect r returns nothing
    set bj_destInRegionDiesTrig = trig
    set bj_destInRegionDiesCount = 0 //обнуляем
    call EnumDestructablesInRect(r, null, function RegisterDestDeathInRegionEnum)
endfunction
bj_destInRegionDiesCount и bj_MAX_DEST_IN_REGION_EVENTS - целочисленные переменные
bj_destInRegionDiesCount - что-то типа счетчика
bj_MAX_DEST_IN_REGION_EVENTS = 64 максимум 64 декора
RegisterDestDeathInRegionEnum - можно переделать, чтобы снять ограничение. Еще можно при пике декора, в самой EnumDestructablesInRect в фильтр добавлять нужные декорации, но это все исключительно от привычки
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
27
Viktor19, ну так как у тебя на скрине, то смысла не было в условии. Так как ссылаешься на одну декорацию. Короче посмотрел, и понял, что ошибся: GetTriggerDestructable и GetDyingDestructable - одна и та же переменная (GetDyingDestructable можно раскрыть и увидеть). Просто думал, что это как с юнитами GetTriggerUnit и GetDyingUnit
бреее
Есть два события: общее и единичное. Единичное ссылается на одну декорацию, общее действует в регионе. Если общее раскрыть, то можно увидеть, что оно выделяет все декорации и регистрирует (создает) событие на каждую выделенную декорацию. Если создашь триггерно новую декорацию, то надо на нее тоже надо регистрировать событие.
Загруженные файлы
5
Steal nerves, что за дичь ты ему зогоняешь с условия ми все пашет мой пример
27
not_name, не дичь. знаю что работает, я о другом. какой смысл проверять то какая эта декорация, если ты сам же ее указал? не хочу с тобой спорить, у тебя повышенное ЧСВ, знаю таких
27
да действительно, есть лимит 64, связано с событием. но вряд ли у тебя там свыше 64 кокона.
вот так вот выглядит наше событие
TriggerRegisterDestDeathInRegionEvent - функция регистрирует события в регионе с помощью нативки EnumDestructablesInRect. EnumDestructablesInRect - типа что-то пика декора
RegisterDestDeathInRegionEnum - функция перебирает каждую декорацию.
function RegisterDestDeathInRegionEnum takes nothing returns nothing
    set bj_destInRegionDiesCount = bj_destInRegionDiesCount + 1
    if (bj_destInRegionDiesCount <= bj_MAX_DEST_IN_REGION_EVENTS) then
        call TriggerRegisterDeathEvent(bj_destInRegionDiesTrig, GetEnumDestructable())
    endif
endfunction

function TriggerRegisterDestDeathInRegionEvent takes trigger trig, rect r returns nothing
    set bj_destInRegionDiesTrig = trig
    set bj_destInRegionDiesCount = 0 //обнуляем
    call EnumDestructablesInRect(r, null, function RegisterDestDeathInRegionEnum)
endfunction
bj_destInRegionDiesCount и bj_MAX_DEST_IN_REGION_EVENTS - целочисленные переменные
bj_destInRegionDiesCount - что-то типа счетчика
bj_MAX_DEST_IN_REGION_EVENTS = 64 максимум 64 декора
RegisterDestDeathInRegionEnum - можно переделать, чтобы снять ограничение. Еще можно при пике декора, в самой EnumDestructablesInRect в фильтр добавлять нужные декорации, но это все исключительно от привычки
Загруженные файлы
Принятый ответ
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.