Please tell me where the code leacks

JJooKKoo

New Member
Reaction score
0
this is the code
Code:
 private function moveMe4 takes nothing returns nothing
        local location tempLoc
        local location tempLoc1
 
 
        //call BJDebugMsg("me4")
 
     
        set tempLoc = GetUnitLoc(GetEnumUnit())
        set tempLoc1 = PolarProjectionBJ(tempLoc, 4.50, GetUnitFacing(GetEnumUnit()))
        call SetUnitPositionLoc( GetEnumUnit(), tempLoc1 )
        call RemoveLocation(tempLoc)
        call RemoveLocation(tempLoc1)
     
        //call GroupRemoveUnit(GetEnumUnit())
 
    endfunction
 
 
 
    private function add_and_move_Letq6tMe4Timer takes nothing returns boolean
        local SpiningUltS SU = KT_GetData()
        local MyUnitStruct uData
        local unit me4
        local location tempLoc
 
        if(GetRandomInt(1, 100) <= 40) then
            set tempLoc = GetUnitLoc(SU.caster)
            set me4 = CreateUnitAtLoc( SU.p,'h002',  tempLoc, GetRandomDirectionDeg() )
            set uData = GetUnitUserData(me4)
            call RemoveLocation(tempLoc)
 
 
            call UnitApplyTimedLife(me4,'BTLF',1.0)
            set uData.needRemove = true
            set uData.removeFromGroup = SU.me4oveG         
            call SetUnitUserData(me4, uData )
            if(SU.test == 0) then
                call GroupAddUnit(SU.me4oveG, me4)
             
                set SU.test = 0
            endif
        endif
     
        //call KillUnit(me4)
        call ForGroup( SU.me4oveG, function moveMe4 )   
     
     
        return false
 
 
    endfunction

the problem apears to be in call ForGroup( SU.me4oveG, function moveMe4 ) i found one tutorial and used global group with this function -
Code:
call GroupEnumUnitsInRect(EnumGroup, bj_mapInitialPlayableArea, Filter(function moveMe4))
. but the map still lags after short time .When i comment the
Code:
call ForGroup( SU.me4oveG, function moveMe4 )
.The lag stops.Help with solution please
 

Tyrulan

Ultra Cool Member
Reaction score
37
A couple of things.

You should assign GetEnumUnit() to a local variable at the top of moveMe4 so you don't have to keep grabbing it.

Second, you should remove any and all bj's out of moveMe4 (PolarProjectionBJ). To do this, you should replace the BJ with the wrapped functions that it is calling. (If you don't know how to do this, I can show you.)

Further, you should set all local variables to null (even after using RemoveLocation).
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top