Добавлен  ArtiLD 
                            
                            
                            
                            
                            
                            
                        
                        
                    Почему через триггер вместо постоянных трупов создаются скелеты, которые пропадают через сек 5? Я указывал неразложившийся , но серавно. Как-то раз было нормально... что подскажете?
Принятый ответ
Вот код, который создаёт "постоянного" трупа.
раскрыть
function CreatePermanentCorpseLocBJ takes integer style, integer unitid, player whichPlayer, location loc, real facing returns unit
    set bj_lastCreatedUnit = CreateCorpse(whichPlayer, unitid, GetLocationX(loc), GetLocationY(loc), facing)
    call SetUnitBlendTime(bj_lastCreatedUnit, 0)
    if (style == bj_CORPSETYPE_FLESH) then
        call SetUnitAnimation(bj_lastCreatedUnit, "decay flesh")
        call GroupAddUnit(bj_suspendDecayFleshGroup, bj_lastCreatedUnit)
    elseif (style == bj_CORPSETYPE_BONE) then
        call SetUnitAnimation(bj_lastCreatedUnit, "decay bone")
        call GroupAddUnit(bj_suspendDecayBoneGroup, bj_lastCreatedUnit)
    else
        // Unknown decay style - treat as skeletal.
        call SetUnitAnimation(bj_lastCreatedUnit, "decay bone")
        call GroupAddUnit(bj_suspendDecayBoneGroup, bj_lastCreatedUnit)
    endif
    call TimerStart(bj_delayedSuspendDecayTimer, 0.05, false, null)
    return bj_lastCreatedUnit
endfunctionbj_delayedSuspendDecayTimer вызывает эту функцию.
раскрыть
function DelayedSuspendDecay takes nothing returns nothing
    local group boneGroup
    local group fleshGroup
    // Switch the global unit groups over to local variables and recreate
    // the global versions, so that this function can handle overlapping
    // calls.
    set boneGroup = bj_suspendDecayBoneGroup
    set fleshGroup = bj_suspendDecayFleshGroup
    set bj_suspendDecayBoneGroup = CreateGroup()
    set bj_suspendDecayFleshGroup = CreateGroup()
    call ForGroup(fleshGroup, function DelayedSuspendDecayStopAnimEnum)
    call ForGroup(boneGroup, function DelayedSuspendDecayStopAnimEnum)
    call TriggerSleepAction(bj_CORPSE_MAX_DEATH_TIME)
    call ForGroup(fleshGroup, function DelayedSuspendDecayFleshEnum)
    call ForGroup(boneGroup, function DelayedSuspendDecayBoneEnum)
    call TriggerSleepAction(0.05)
    call ForGroup(fleshGroup, function DelayedSuspendDecayStopAnimEnum)
    call DestroyGroup(boneGroup)
    call DestroyGroup(fleshGroup)
endfunctionЧто происходит.
Через 0.05 после создания "постоянного" трупа его анимация ставится на паузу, через 8 секунд его разложение ставится на паузу, а если его тип разложение есть flesh, то возвращается нужная анимация с ускорением, а через 0.05 анимация опять ставится на паузу.
Попробуй выбрать другой тип разложения.
Через 0.05 после создания "постоянного" трупа его анимация ставится на паузу, через 8 секунд его разложение ставится на паузу, а если его тип разложение есть flesh, то возвращается нужная анимация с ускорением, а через 0.05 анимация опять ставится на паузу.
Попробуй выбрать другой тип разложения.
    
        
            
                `
            
            
                
        
    
    ОЖИДАНИЕ РЕКЛАМЫ...
            
                    
                        Чтобы оставить комментарий, пожалуйста, войдите на сайт.
                    
                
             
                        
                        
                    
 WC3
                                WC3
                            



 
                    
                
Ред. PT153
Через 0.05 после создания "постоянного" трупа его анимация ставится на паузу, через 8 секунд его разложение ставится на паузу, а если его тип разложение есть flesh, то возвращается нужная анимация с ускорением, а через 0.05 анимация опять ставится на паузу.
Попробуй выбрать другой тип разложения.
PS Извини за кривой обьяснение