- Joined
- Aug 20, 2004
- Messages
- 65
I just copied a GUI Wild Axes from a DotA spell pack into another map but after one use there was a drop in the FPS. More uses = more lag, so I'm guessing there are memory leaks. I'm on a mac, so no leak dectecting software for me. Can some one give this the once-over?
-
Wild Axe Initialisation
-
Events
-
Unit - A unit Starts the effect of an ability
-
-
Conditions
-
(Ability being cast) Equal to Wild Axe
-
-
Actions
-
Set WildAxe_Caster = (Triggering unit)
-
Set WildAxe_Caster_Loc = (Position of WildAxe_Caster)
-
Set WildAxe_Target_Loc = (Target point of ability being cast)
-
Set WildAxe_Angle = (Angle from WildAxe_Caster_Loc to WildAxe_Target_Loc)
-
Set WildAxe_Distance = (Distance between WildAxe_Caster_Loc and WildAxe_Target_Loc)
-
Set WildAxe_Interval = ((WildAxe_Distance / 25.00) + ((15.00 / 1000.00) x WildAxe_Distance))
-
Unit - Create 1 Wild Axe Dummy (Level 1) for (Owner of WildAxe_Caster) at WildAxe_Caster_Loc facing WildAxe_Angle degrees
-
Set WildAxe_Dummy[1] = (Last created unit)
-
Unit - Create 1 Wild Axe Dummy (Level 1) for (Owner of WildAxe_Caster) at WildAxe_Caster_Loc facing WildAxe_Angle degrees
-
Set WildAxe_Dummy[2] = (Last created unit)
-
Countdown Timer - Start WildAxe_Timer as a Repeating timer that will expire in 0.04 seconds
-
-
-
Wild Axe Movement
-
Events
-
Time - WildAxe_Timer expires
-
-
Conditions
-
Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
WildAxe_Counter Less than or equal to 10
-
-
Then - Actions
-
Set WildAxe_Counter = (WildAxe_Counter + 1)
-
Set WildAxe_Dummy_Loc_1 = (Position of WildAxe_Dummy[1])
-
Set WildAxe_Dummy_Loc_2 = (Position of WildAxe_Dummy[2])
-
Unit - Move WildAxe_Dummy[1] instantly to (WildAxe_Dummy_Loc_1 offset by WildAxe_Interval towards ((WildAxe_Angle + 40.00) - (4.00 x WildAxe_Tilt[1])) degrees)
-
Custom script: set bj_wantDestroyGroup = true
-
Unit Group - Pick every unit in (Units within 88.00 of WildAxe_Dummy_Loc_1 matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) belongs to an enemy of (Owner of WildAxe_Caster)) Equal to True) and ((((Matching unit) is alive) Equal to True) and (((Matching unit and do (Actions)
-
Loop - Actions
-
Unit - Cause WildAxe_Caster to damage (Picked unit), dealing (30.00 + (30.00 x (Real((Level of Wild Axe for WildAxe_Caster))))) damage of attack type Chaos and damage type Normal
-
Unit Group - Add (Picked unit) to WildAxe_Group
-
Special Effect - Create a special effect attached to the chest of (Picked unit) using Objects\Spawnmodels\Human\HumanBlood\BloodElfSpellThiefBlood.mdl
-
Special Effect - Destroy (Last created special effect)
-
-
-
Destructible - Pick every destructible within 120.00 of WildAxe_Dummy_Loc_1 and do (Actions)
-
Loop - Actions
-
Destructible - Kill (Picked destructible)
-
-
-
Custom script: call RemoveLocation (udg_WildAxe_Dummy_Loc_1)
-
Unit - Move WildAxe_Dummy[2] instantly to (WildAxe_Dummy_Loc_2 offset by WildAxe_Interval towards ((WildAxe_Angle - 40.00) + (4.00 x WildAxe_Tilt[1])) degrees)
-
Custom script: set bj_wantDestroyGroup = true
-
Unit Group - Pick every unit in (Units within 88.00 of WildAxe_Dummy_Loc_2 matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) belongs to an enemy of (Owner of WildAxe_Caster)) Equal to True) and ((((Matching unit) is alive) Equal to True) and (((Matching unit and do (Actions)
-
Loop - Actions
-
Unit - Cause WildAxe_Caster to damage (Picked unit), dealing (30.00 + (30.00 x (Real((Level of Wild Axe for WildAxe_Caster))))) damage of attack type Chaos and damage type Normal
-
Unit Group - Add (Picked unit) to WildAxe_Group
-
Special Effect - Create a special effect attached to the chest of (Picked unit) using Objects\Spawnmodels\Human\HumanBlood\BloodElfSpellThiefBlood.mdl
-
-
-
Destructible - Pick every destructible within 120.00 of WildAxe_Dummy_Loc_2 and do (Actions)
-
Loop - Actions
-
Destructible - Kill (Picked destructible)
-
-
-
Custom script: call RemoveLocation (udg_WildAxe_Dummy_Loc_2)
-
Set WildAxe_Tilt[1] = (WildAxe_Tilt[1] + 1.00)
-
-
Else - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
WildAxe_Counter Less than or equal to 20
-
-
Then - Actions
-
Set WildAxe_Counter = (WildAxe_Counter + 1)
-
Set WildAxe_Dummy_Loc_1 = (Position of WildAxe_Dummy[1])
-
Set WildAxe_Dummy_Loc_2 = (Position of WildAxe_Dummy[2])
-
Unit - Move WildAxe_Dummy[1] instantly to (WildAxe_Dummy_Loc_1 offset by WildAxe_Interval towards ((WildAxe_Angle - 40.00) + (4.00 x WildAxe_Tilt2)) degrees)
-
Custom script: set bj_wantDestroyGroup = true
-
Unit Group - Pick every unit in (Units within 88.00 of WildAxe_Dummy_Loc_1 matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) belongs to an enemy of (Owner of WildAxe_Caster)) Equal to True) and ((((Matching unit) is alive) Equal to True) and (((Matching unit and do (Actions)
-
Loop - Actions
-
Unit - Cause WildAxe_Caster to damage (Picked unit), dealing (30.00 + (30.00 x (Real((Level of Wild Axe for WildAxe_Caster))))) damage of attack type Chaos and damage type Normal
-
Unit Group - Add (Picked unit) to WildAxe_Group
-
Special Effect - Create a special effect attached to the chest of (Picked unit) using Objects\Spawnmodels\Human\HumanBlood\BloodElfSpellThiefBlood.mdl
-
Special Effect - Destroy (Last created special effect)
-
-
-
Destructible - Pick every destructible within 120.00 of WildAxe_Dummy_Loc_1 and do (Actions)
-
Loop - Actions
-
Destructible - Kill (Picked destructible)
-
-
-
Custom script: call RemoveLocation (udg_WildAxe_Dummy_Loc_1)
-
Unit - Move WildAxe_Dummy[2] instantly to (WildAxe_Dummy_Loc_2 offset by WildAxe_Interval towards ((WildAxe_Angle + 40.00) - (4.00 x WildAxe_Tilt2)) degrees)
-
Custom script: set bj_wantDestroyGroup = true
-
Unit Group - Pick every unit in (Units within 88.00 of WildAxe_Dummy_Loc_2 matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) belongs to an enemy of (Owner of WildAxe_Caster)) Equal to True) and ((((Matching unit) is alive) Equal to True) and (((Matching unit and do (Actions)
-
Loop - Actions
-
Unit - Cause WildAxe_Caster to damage (Picked unit), dealing (30.00 + (30.00 x (Real((Level of Wild Axe for WildAxe_Caster))))) damage of attack type Chaos and damage type Normal
-
Unit Group - Add (Picked unit) to WildAxe_Group
-
Special Effect - Create a special effect attached to the chest of (Picked unit) using Objects\Spawnmodels\Human\HumanBlood\BloodElfSpellThiefBlood.mdl
-
Special Effect - Destroy (Last created special effect)
-
-
-
Destructible - Pick every destructible within 120.00 of WildAxe_Dummy_Loc_2 and do (Actions)
-
Loop - Actions
-
Destructible - Kill (Picked destructible)
-
-
-
Custom script: call RemoveLocation (udg_WildAxe_Dummy_Loc_2)
-
Set WildAxe_Tilt2 = (WildAxe_Tilt2 - 1.00)
-
-
Else - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
WildAxe_Counter Less than or equal to 30
-
-
Then - Actions
-
Custom script: call RemoveLocation (udg_WildAxe_Caster_Loc)
-
Set WildAxe_Caster_Loc = (Position of WildAxe_Caster)
-
Set WildAxe_Counter = (WildAxe_Counter + 1)
-
Set WildAxe_Dummy_Loc_1 = (Position of WildAxe_Dummy[1])
-
Set WildAxe_Dummy_Loc_2 = (Position of WildAxe_Dummy[2])
-
Set WildAxe_ReturnDistance_1 = (Distance between WildAxe_Caster_Loc and WildAxe_Dummy_Loc_1)
-
Set WildAxe_ReturnInterval_1 = (WildAxe_ReturnDistance_1 / 20.00)
-
Set WildAxe_ReturnDistance_2 = (Distance between WildAxe_Caster_Loc and WildAxe_Dummy_Loc_2)
-
Set WildAxe_ReturnInterval_2 = (WildAxe_ReturnDistance_2 / 20.00)
-
Set WildAxe_RetunAngle_1 = ((Angle from WildAxe_Caster_Loc to WildAxe_Dummy_Loc_1) - 180.00)
-
Set WildAxe_RetunAngle_2 = ((Angle from WildAxe_Caster_Loc to WildAxe_Dummy_Loc_2) - 180.00)
-
Unit - Move WildAxe_Dummy[1] instantly to (WildAxe_Dummy_Loc_1 offset by WildAxe_ReturnInterval_1 towards ((WildAxe_RetunAngle_1 + 33.00) - (3.00 x WildAxe_Tilt[3])) degrees)
-
Custom script: set bj_wantDestroyGroup = true
-
Unit Group - Pick every unit in (Units within 88.00 of WildAxe_Dummy_Loc_1 matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) belongs to an enemy of (Owner of WildAxe_Caster)) Equal to True) and ((((Matching unit) is alive) Equal to True) and (((Matching unit and do (Actions)
-
Loop - Actions
-
Unit - Cause WildAxe_Caster to damage (Picked unit), dealing (30.00 + (30.00 x (Real((Level of Wild Axe for WildAxe_Caster))))) damage of attack type Chaos and damage type Normal
-
Unit Group - Add (Picked unit) to WildAxe_ReturnGroup
-
Special Effect - Create a special effect attached to the chest of (Picked unit) using Objects\Spawnmodels\Human\HumanBlood\BloodElfSpellThiefBlood.mdl
-
Special Effect - Destroy (Last created special effect)
-
-
-
Destructible - Pick every destructible within 120.00 of WildAxe_Dummy_Loc_1 and do (Actions)
-
Loop - Actions
-
Destructible - Kill (Picked destructible)
-
-
-
Custom script: call RemoveLocation (udg_WildAxe_Dummy_Loc_1)
-
Unit - Move WildAxe_Dummy[2] instantly to (WildAxe_Dummy_Loc_2 offset by WildAxe_ReturnInterval_2 towards ((WildAxe_RetunAngle_2 - 33.00) + (3.00 x WildAxe_Tilt[3])) degrees)
-
Custom script: set bj_wantDestroyGroup = true
-
Unit Group - Pick every unit in (Units within 88.00 of WildAxe_Dummy_Loc_2 matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) belongs to an enemy of (Owner of WildAxe_Caster)) Equal to True) and ((((Matching unit) is alive) Equal to True) and (((Matching unit and do (Actions)
-
Loop - Actions
-
Unit - Cause WildAxe_Caster to damage (Picked unit), dealing (30.00 + (30.00 x (Real((Level of Wild Axe for WildAxe_Caster))))) damage of attack type Chaos and damage type Normal
-
Unit Group - Add (Picked unit) to WildAxe_ReturnGroup
-
Special Effect - Create a special effect attached to the chest of (Picked unit) using Objects\Spawnmodels\Human\HumanBlood\BloodElfSpellThiefBlood.mdl
-
Special Effect - Destroy (Last created special effect)
-
-
-
Destructible - Pick every destructible within 120.00 of WildAxe_Dummy_Loc_2 and do (Actions)
-
Loop - Actions
-
Destructible - Kill (Picked destructible)
-
-
-
Custom script: call RemoveLocation (udg_WildAxe_Dummy_Loc_2)
-
Set WildAxe_Tilt[3] = (WildAxe_Tilt[3] + 1.00)
-
-
Else - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
WildAxe_Counter Greater than 30
-
-
Then - Actions
-
Custom script: call RemoveLocation (udg_WildAxe_Caster_Loc)
-
Set WildAxe_Caster_Loc = (Position of WildAxe_Caster)
-
Set WildAxe_Dummy_Loc_1 = (Position of WildAxe_Dummy[1])
-
Set WildAxe_Dummy_Loc_2 = (Position of WildAxe_Dummy[2])
-
Set WildAxe_Check[1] = (Distance between WildAxe_Caster_Loc and WildAxe_Dummy_Loc_1)
-
Set WildAxe_Check[2] = (Distance between WildAxe_Caster_Loc and WildAxe_Dummy_Loc_2)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(WildAxe_Check[1] Greater than 20.00) or (WildAxe_Check[2] Greater than 20.00)
-
-
Then - Actions
-
Set WildAxe_ReturnInterval_1 = 35.00
-
Set WildAxe_ReturnInterval_2 = 35.00
-
Set WildAxe_RetunAngle_1 = ((Angle from WildAxe_Caster_Loc to WildAxe_Dummy_Loc_1) - 180.00)
-
Set WildAxe_RetunAngle_2 = ((Angle from WildAxe_Caster_Loc to WildAxe_Dummy_Loc_2) - 180.00)
-
Unit - Move WildAxe_Dummy[1] instantly to (WildAxe_Dummy_Loc_1 offset by WildAxe_ReturnInterval_1 towards WildAxe_RetunAngle_1 degrees)
-
Custom script: set bj_wantDestroyGroup = true
-
Unit Group - Pick every unit in (Units within 88.00 of WildAxe_Dummy_Loc_1 matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) belongs to an enemy of (Owner of WildAxe_Caster)) Equal to True) and ((((Matching unit) is alive) Equal to True) and (((Matching unit and do (Actions)
-
Loop - Actions
-
Unit - Cause WildAxe_Caster to damage (Picked unit), dealing (30.00 + (30.00 x (Real((Level of Wild Axe for WildAxe_Caster))))) damage of attack type Chaos and damage type Normal
-
Unit Group - Add (Picked unit) to WildAxe_ReturnGroup
-
Special Effect - Create a special effect attached to the chest of (Picked unit) using Objects\Spawnmodels\Human\HumanBlood\BloodElfSpellThiefBlood.mdl
-
Special Effect - Destroy (Last created special effect)
-
-
-
Destructible - Pick every destructible within 120.00 of WildAxe_Dummy_Loc_1 and do (Actions)
-
Loop - Actions
-
Destructible - Kill (Picked destructible)
-
-
-
Custom script: call RemoveLocation (udg_WildAxe_Dummy_Loc_1)
-
Unit - Move WildAxe_Dummy[2] instantly to (WildAxe_Dummy_Loc_2 offset by WildAxe_ReturnInterval_2 towards WildAxe_RetunAngle_2 degrees)
-
Custom script: set bj_wantDestroyGroup = true
-
Unit Group - Pick every unit in (Units within 88.00 of WildAxe_Dummy_Loc_2 matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) belongs to an enemy of (Owner of WildAxe_Caster)) Equal to True) and ((((Matching unit) is alive) Equal to True) and (((Matching unit and do (Actions)
-
Loop - Actions
-
Unit - Cause WildAxe_Caster to damage (Picked unit), dealing (30.00 + (30.00 x (Real((Level of Wild Axe for WildAxe_Caster))))) damage of attack type Chaos and damage type Normal
-
Unit Group - Add (Picked unit) to WildAxe_ReturnGroup
-
Special Effect - Create a special effect attached to the chest of (Picked unit) using Objects\Spawnmodels\Human\HumanBlood\BloodElfSpellThiefBlood.mdl
-
Special Effect - Destroy (Last created special effect)
-
-
-
Destructible - Pick every destructible within 120.00 of WildAxe_Dummy_Loc_2 and do (Actions)
-
Loop - Actions
-
Destructible - Kill (Picked destructible)
-
-
-
Custom script: call RemoveLocation (udg_WildAxe_Dummy_Loc_2)
-
-
Else - Actions
-
Countdown Timer - Pause WildAxe_Timer
-
Unit - Kill WildAxe_Dummy[1]
-
Unit - Kill WildAxe_Dummy[2]
-
Unit - Remove WildAxe_Dummy[1] from the game
-
Unit - Remove WildAxe_Dummy[2] from the game
-
Custom script: call RemoveLocation (udg_WildAxe_Dummy_Loc_1)
-
Custom script: call RemoveLocation (udg_WildAxe_Dummy_Loc_2)
-
Custom script: call RemoveLocation (udg_WildAxe_Caster_Loc)
-
Custom script: call RemoveLocation (udg_WildAxe_Target_Loc)
-
Unit Group - Remove all units from WildAxe_Group
-
Unit Group - Remove all units from WildAxe_ReturnGroup
-
Set WildAxe_ReturnDistance_1 = 0.00
-
Set WildAxe_ReturnDistance_2 = 0.00
-
Set WildAxe_ReturnInterval_1 = 0.00
-
Set WildAxe_ReturnInterval_2 = 0.00
-
Set WildAxe_Distance = 0.00
-
Set WildAxe_Tilt[1] = 1.00
-
Set WildAxe_Tilt2 = 10.00
-
Set WildAxe_Tilt[3] = 1.00
-
Set WildAxe_Interval = 0.00
-
Set WildAxe_Counter = 1
-
Set WildAxe_Angle = 0.00
-
Set WildAxe_RetunAngle_1 = 0.00
-
Set WildAxe_RetunAngle_2 = 0.00
-
Set WildAxe_Check[1] = 0.00
-
Set WildAxe_Check[2] = 0.00
-
-
-
-
Else - Actions
-
-
-
-
-
-
-
-
-
Last edited: