Hi, I'm having a hard time figuring out where the lag in my map is coming from. Everytime I test it, lag starts to occur after 20 - 30 minutes then it gets worse every after 20 - 30 minutes. So I'm gonna try to post all the most frequently running triggers in my map. Please tell me if these triggers have memory leaks or will they cause any lag?
camera
    Events
        Time - Every 0.08 seconds of game time
    Conditions
    Actions
        Player Group - Pick every player in (All players) and do (Camera - Set (Picked player)'s camera Distance to target to 2000.00 over 0.00 seconds)
these next two triggers are executed together and there are many more like this in my map.
dash attack
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Harpy Claws 
        (Unit-type of (Triggering unit)) Equal to Harpy
    Actions
        Unit - Make (Triggering unit) Invulnerable
        Set harpyunit = (Triggering unit)
        Set harpytarget = (Target point of ability being cast)
        Set dashattacktime = 0.80
        Unit - Hide harpyunit
        Unit - Unhide harpyunit
        Selection - Add harpyunit to selection for (Owner of harpyunit)
        Animation - Play harpyunit's attack animation
        Trigger - Turn on dash attack 2 Copy <gen>
        Hashtable - Save dashattacktime as 1 of (Key (Triggering unit)) in dashattackhashtable
        Unit Group - Add (Triggering unit) to dashattackgroup
dash attack 2 Copy
    Events
        Time - Every 0.03 seconds of game time
    Conditions
    Actions
        Unit Group - Pick every unit in dashattackgroup and do (Actions)
            Loop - Actions
                Set dashattacktime = (Load 1 of (Key (Picked unit)) from dashattackhashtable)
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        dashattacktime Greater than 0.00
                    Then - Actions
                        Set harpyunit = (Picked unit)
                        Set harpypoint = (Position of harpyunit)
                        Set harpypoint2 = (harpypoint offset by 28.00 towards (Facing of harpyunit) degrees)
                        Special Effect - Create a special effect attached to the origin of harpyunit using Abilities\Spells\Human\FlakCannons\FlakTarget.mdl
                        Special Effect - Destroy (Last created special effect)
                        Unit - Move harpyunit instantly to harpypoint2, facing (Facing of harpyunit) degrees
                        Set harpytargetz = (Units within 175.00 of harpypoint matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) and ((((Matching unit) belongs to an ally of (Owner of harpyunit)) Equal to False) and ((((Matching unit) is dead) E
                        Unit Group - Pick every unit in harpytargetz and do (Actions)
                            Loop - Actions
                                If ((Unit-type of harpyunit) Equal to Harpy) then do (Unit - Cause harpyunit to damage (Picked unit), dealing 37.50 damage of attack type Chaos and damage type Normal) else do (Do nothing)
                        Custom script:   call RemoveLocation(udg_harpypoint)
                        Custom script:   call RemoveLocation(udg_harpypoint2)
                        Custom script:   call DestroyGroup (udg_harpytargetz)
                        Hashtable - Save (dashattacktime - 0.03) as 1 of (Key (Picked unit)) in dashattackhashtable
                    Else - Actions
                        Hashtable - Clear all child hashtables of child (Key (Picked unit)) in dashattackhashtable
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        dashattacktime Equal to 0.00
                    Then - Actions
                        Animation - Reset (Picked unit)'s animation
                        Unit - Make (Picked unit) Vulnerable
                        Custom script:   call RemoveLocation (udg_harpytarget)
                        Unit Group - Remove (Picked unit) from dashattackgroup
                    Else - Actions
			
			
									
						Lag Eliminating Mission
Moderator: Cheaters
- 
				naturesfury
- Forum Spammer
- Posts: 610
- Joined: March 30th, 2009, 9:02 pm
Re: Lag Eliminating Mission
Lots of things leak o.o
Pretty much local vars that extend a handle i believe
most common ones are units, groups, forces, locs, effects, etc
			
			
									
						Pretty much local vars that extend a handle i believe
most common ones are units, groups, forces, locs, effects, etc
- 
				colinjames12
- Newcomer
- Posts: 2
- Joined: April 13th, 2012, 7:00 am
Re: Lag Eliminating Mission
for the nth time, I already know what a memory leak is. Please take a look at my triggers first.
Here's my map if someone wants to check it out. The amount of variables and triggers may give you a headache but at least take a look at the ones with periodic events.
			
			
						Here's my map if someone wants to check it out. The amount of variables and triggers may give you a headache but at least take a look at the ones with periodic events.
You do not have the required permissions to view the files attached to this post.
			
						- 
				Nuuby  
- Forum Staff
- Posts: 519
- Joined: October 18th, 2010, 8:43 am
Re: Lag Eliminating Mission
That's at least 30+ periodic triggers with 0.03 second intervals. If you compare that with DotA, which has 6 periodic triggers and the shortest interval is 0.5 seconds and those which have intervals below 2 seconds are local triggers and are destroyed at the end of the function.colinjames12 wrote:for the nth time, I already know what a memory leak is. Please take a look at my triggers first.
Here's my map if someone wants to check it out. The amount of variables and triggers may give you a headache but at least take a look at the ones with periodic events.
You don't say.
