Вот пример 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 в фильтр добавлять нужные декорации, но это все исключительно от привычки
Загруженные файлы
0
32
7 лет назад
0
Убери условие, указывай конкретные коконы, а лучше вовсе сделай их из юнитов...
0
27
7 лет назад
Отредактирован MpW
0
выводи дебагом на экран для проверки
попробуй ссылаться на эту переменную
constant native GetTriggerDestructable takes nothing returns destructable
так как GetDyingDestructable не точно (для этого тогда другое событие нужно, общее, то которое "декорация умирает" без ссылки на одну единственную декорацию)
не проще ли сделать изменить одно ли событие на общее "декорация умирает". И точку удали.
0
23
7 лет назад
0
quq_CCCP, коконы много указывай конкретные декорации не выгодно!
0
5
7 лет назад
0
у меня все пашет проверь
Загруженные файлы
0
27
7 лет назад
Отредактирован MpW
0
Viktor19, ну так как у тебя на скрине, то смысла не было в условии. Так как ссылаешься на одну декорацию. Короче посмотрел, и понял, что ошибся: GetTriggerDestructable и GetDyingDestructable - одна и та же переменная (GetDyingDestructable можно раскрыть и увидеть). Просто думал, что это как с юнитами GetTriggerUnit и GetDyingUnit
бреее
Есть два события: общее и единичное. Единичное ссылается на одну декорацию, общее действует в регионе. Если общее раскрыть, то можно увидеть, что оно выделяет все декорации и регистрирует (создает) событие на каждую выделенную декорацию. Если создашь триггерно новую декорацию, то надо на нее тоже надо регистрировать событие.
Загруженные файлы
0
5
7 лет назад
Отредактирован not_name
0
Steal nerves, что за дичь ты ему зогоняешь с условия ми все пашет мой пример
0
27
7 лет назад
Отредактирован MpW
0
not_name, не дичь. знаю что работает, я о другом. какой смысл проверять то какая эта декорация, если ты сам же ее указал? не хочу с тобой спорить, у тебя повышенное ЧСВ, знаю таких
0
32
7 лет назад
0
Viktor19, они всеравно указываются, там лимит...
0
27
7 лет назад
Отредактирован MpW
0
да действительно, есть лимит 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 в фильтр добавлять нужные декорации, но это все исключительно от привычки
Загруженные файлы
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.