Насколько это хорошо я сделал оптимизацию? Я читаю все комментарии и советы, но не все понимаю (тупой типа). Я все равно хочу оставить создание именно ГРУППЫ юнитов, что бы они шли как отряд в обычной стратегии (строем).
Группы обнуляю и удаляю, локейнш тоже удаляю.
function Trig_CreepsCenter1_Actions takes nothing returns nothing
    local group deter1
    local group insp1
    local group absorb1  
    local group destr1
    local location detloc1
    local location insploc1
    local location absorbloc1
    local location destrloc1
    set detloc1 = Location(0, 5300)
    set insploc1 = Location(-5300, 0)
    set absorbloc1 = Location(0, -5300)
    set destrloc1 = Location(5300, 0)
call CreateNUnitsAtLoc( 5, 'o000', Player(0), detloc1, 0 )
    set deter1 = GetLastCreatedGroup()
    call CreateNUnitsAtLoc( 2, 'o001', Player(0), detloc1, 0 )
    call GroupAddGroup( GetLastCreatedGroup(), deter1 )
    call GroupPointOrderLocBJ( deter1, "attack", absorbloc1 )
    set deter1 = null
    call DestroyGroup (deter1)  
call CreateNUnitsAtLoc( 5, 'h000', Player(1), insploc1, 0 )
    set insp1 = GetLastCreatedGroup()
    call CreateNUnitsAtLoc( 2, 'h001', Player(1), insploc1, 0 )
    call GroupAddGroup( GetLastCreatedGroup(), insp1 )
    call GroupPointOrderLocBJ( insp1, "attack", destrloc1 )
    set insp1 = null
    call DestroyGroup (insp1)
call CreateNUnitsAtLoc( 5, 'n000', Player(3), absorbloc1, 0 )
    set absorb1 = GetLastCreatedGroup()
    call CreateNUnitsAtLoc( 2, 'n001', Player(3), absorbloc1, 0 )
    call GroupAddGroup( GetLastCreatedGroup(), absorb1 )
    call GroupPointOrderLocBJ( absorb1, "attack", detloc1 )
    set absorb1 = null
    call DestroyGroup (absorb1)      
call CreateNUnitsAtLoc( 5, 'u000', Player(6), destrloc1, 0 )
    set destr1 = GetLastCreatedGroup()
    call CreateNUnitsAtLoc( 2, 'u001', Player(6), destrloc1, 0 )
    call GroupAddGroup( GetLastCreatedGroup(), destr1 )
    call GroupPointOrderLocBJ( destr1, "attack", insploc1 )
    set destr1 = null
    call DestroyGroup (destr1)
set detloc1 = null
set insploc1 = null
set absorbloc1 = null
set destrloc1 = null
call RemoveLocation(detloc1)
call RemoveLocation(insploc1)
call RemoveLocation(absorbloc1)
call RemoveLocation(destrloc1)   
endfunction

//===========================================================================
function InitTrig_CreepsCenter1 takes nothing returns nothing
    set gg_trg_CreepsCenter1 = CreateTrigger(  )
    call TriggerRegisterTimerEventPeriodic( gg_trg_CreepsCenter1, 10.00 )
    call TriggerAddAction( gg_trg_CreepsCenter1, function Trig_CreepsCenter1_Actions )
endfunction 

Принятый ответ

если ты обнулил переменную то в ней ничего нету
а потом пытаешься удалить содержимое переменной т.е. ничто
а объект как был в памяти так там и остался
короче полное незнание матчасти и отсутствие здравого смысла
читай статьи
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
4 комментария удалено
0
8
6 лет назад
0
quq_CCCP:
VVelikolepniy, я хз как сказать, но по мне дурь. Дело не только в утечках а в подходе в целом. Куча мусора и ненужных действий.
То есть ты гоовришь что код дурь, но сам понятия не имеешь как сделать лучше, я правильно все понял?
Extremator:
. . . а ещё, можно не использовать точки
. . . а ещё, сначала нужно удалять точки ссылаясь на переменные, а только потом обнулять ссылки этих переменных, а не наоборот
set detloc1 = null
set insploc1 = null
set absorbloc1 = null
set destrloc1 = null
call RemoveLocation(detloc1)
call RemoveLocation(insploc1)
call RemoveLocation(absorbloc1)
call RemoveLocation(destrloc1)
. . . а ещё это касается и групп
set destr1 = null
call DestroyGroup (destr1)
а вот это полезно, спасибо!
ledoed:
супер у тебя код,они просто непонимают
почему тебе до сих пор бан не дали детка? я вроде отправил сообщение
0
28
6 лет назад
0
если ты обнулил переменную то в ней ничего нету
а потом пытаешься удалить содержимое переменной т.е. ничто
а объект как был в памяти так там и остался
короче полное незнание матчасти и отсутствие здравого смысла
читай статьи
Принятый ответ
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.