Я пытаюсь сделать восстановление деревьев через тригер, но как-то не получается. Посмотрите скрин, что там не так? Или скиньте ссылку на скрипт (желательно объясните как поставить скрипт). Надеюсь на вашу помощь.

Если требуется выращивать их через время после смерти, по моему лучше заносить в локалку и через время воскрешать
TargetOfAbilityBeingCast и LastCreatedDestructable - глобальные переменные и их значения постоянно перезаписываются. У тебя так не будут восстанавливаться все декорации, а только 1. Чтоб сделать систему самостоятельно тебе нужно прочесть о массивах или о локальных переменных. Иначе оформить заказ. Переписывать сюда статьи или давать частные уроки тебе никто не будет.
`
ОЖИДАНИЕ РЕКЛАМЫ...
7
LeVeZeN, замени (Taget destructable of ability being cast) и (Last created destructable) на (Dying destructable)
12
Тема раскрывает все подробности и тонкости восстановления умершего дерева: xgm.guru/forum/showthread.php?t=26163
7
LeVeZeN, Наверно слишком много деревьев на карте, тогда попробуй создать несколько областей и сменить событие в триггере
LeVeZeN, Проблема кроется в функции RegisterDestDeathInRegionEnum() из-за которой нельзя пикнуть больше 64 декораций за раз. Предлагаю вот такую заплатку:
смотреть сюда
scope DestDeathInRegion initializer Init

    globals
        private trigger trig = CreateTrigger()
    endglobals
    
    private function Action takes nothing returns nothing
        call TriggerExecute(gg_trg_Tree_recreation)
    endfunction

    private function Enum takes nothing returns nothing
        call TriggerRegisterDeathEvent(trig, GetEnumDestructable())
    endfunction

    private function Init takes nothing returns nothing
        call EnumDestructablesInRect(bj_mapInitialPlayableArea, null, function Enum)
        call TriggerAddAction(trig, function Action)
    endfunction

endscope
1.Создаешь триггер
2.Правка -> Конвертировать в текст
3.Удаляешь там все и вставляешь этот код
4.Сохраняешь карту
Функция будет выполнять действия из триггера Tree recreation каждый раз, когда будет умирать декорация
28
Ige, насколько я помню у тебя пикаются лишь первые 64 а потом EnumDestructablesInRect перестаёт перебирать деревья
24
Если требуется выращивать их через время после смерти, по моему лучше заносить в локалку и через время воскрешать
7
nvc123, нативка пикает все декорации, а вот бж, которая используются в gui, пикает только 64
пруф
constant integer   bj_MAX_DEST_IN_REGION_EVENTS     = 64
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
21
Если требуется выращивать их через время после смерти, по моему лучше заносить в локалку и через время воскрешать
TargetOfAbilityBeingCast и LastCreatedDestructable - глобальные переменные и их значения постоянно перезаписываются. У тебя так не будут восстанавливаться все декорации, а только 1. Чтоб сделать систему самостоятельно тебе нужно прочесть о массивах или о локальных переменных. Иначе оформить заказ. Переписывать сюда статьи или давать частные уроки тебе никто не будет.
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.