does this spell leak? and how to fix? [solved]
Just wondering if this spell leaks. and how do i fix it?
And also what does it means the distance 20 + 10?
Just wondering if this spell leaks. and how do i fix it?
And also what does it means the distance 20 + 10?
-
Set PH_Distance = (20 + (10 x (Level of (Ability being cast) for PH_Caster[PH_Index[2]])))
-
Hook Table
-
Events
-
Map initialization
-
-
Conditions
-
Actions
-
Hashtable - Create a hashtable
-
Set PH_Table = (Last created hashtable)
-
-
-
Hook
-
Events
-
Unit - A unit Starts the effect of an ability
-
-
Conditions
-
(Ability being cast) Equal to Meat Hook Advanced
-
-
Actions
-
-------- ----------------------- --------
-
-------- Index System --------
-
-------- ----------------------- --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
PH_Index[1] Equal to 0
-
-
Then - Actions
-
Trigger - Turn on Hook Loop <gen>
-
-
Else - Actions
-
-
Set PH_Index[1] = (PH_Index[1] + 1)
-
Set PH_Index[2] = (PH_Index[2] + 1)
-
-------- ----------------------- --------
-
-------- Spell Settings --------
-
-------- ----------------------- --------
-
Set PH_Counter[PH_Index[2]] = 0
-
-------- ----------------------- --------
-
-------- Points for angle --------
-
Set PH_Cast_Point = (Position of (Triggering unit))
-
Set PH_Target_Point = (Target point of ability being cast)
-
-------- ----------------------- --------
-
-------- Caster --------
-
Set PH_Caster[PH_Index[2]] = (Triggering unit)
-
Unit - Pause PH_Caster[PH_Index[2]]
-
Animation - Play PH_Caster[PH_Index[2]]'s attack animation
-
-------- ----------------------- --------
-
-------- Angle for hook --------
-
Set PH_Hook_Angle[PH_Index[2]] = (Angle from PH_Cast_Point to PH_Target_Point)
-
-------- ----------------------- --------
-
-------- Hook (Dummy) --------
-
Set PH_Near_Point = (PH_Cast_Point offset by 100.00 towards PH_Hook_Angle[PH_Index[2]] degrees)
-
Unit - Create 1 Hook for (Owner of PH_Caster[PH_Index[2]]) at PH_Near_Point facing Default building facing degrees
-
Set PH_Dummy[PH_Index[2]] = (Last created unit)
-
-------- ----------------------- --------
-
-------- Things needed for spell to work fine --------
-
Set PH_Hooked_Is[PH_Index[2]] = False
-
Set PH_Hooked_Unit[PH_Index[2]] = No unit
-
-------- ----------------------- --------
-
-------- Removing leaks --------
-
Custom script: call RemoveLocation(udg_PH_Near_Point)
-
Custom script: call RemoveLocation(udg_PH_Cast_Point)
-
Custom script: call RemoveLocation(udg_PH_Target_Point)
-
-------- ----------------------- --------
-
-------- Adjustable settings --------
-
-------- ----------------------- --------
-
-------- Damage and Hook Distance --------
-
Set PH_Damage = (250 x (Level of (Ability being cast) for PH_Caster[PH_Index[2]]))
-
Set PH_Distance = (20 + (10 x (Level of (Ability being cast) for PH_Caster[PH_Index[2]])))
-
-------- ----------------------- --------
-
-------- ----------------------- --------
-
-
-
Hook Loop
-
Events
-
Time - Every 0.02 seconds of game time
-
-
Conditions
-
Actions
-
For each (Integer PH_Index[3]) from 1 to PH_Index[2], do (Actions)
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
PH_Counter[PH_Index[3]] Less than PH_Distance
-
-
Then - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
PH_Hooked_Is[PH_Index[3]] Equal to False
-
-
Then - Actions
-
-------- ----------------------- --------
-
-------- Moving hook and creating effects --------
-
-------- ----------------------- --------
-
-------- Counter incrasing --------
-
Set PH_Counter[PH_Index[3]] = (PH_Counter[PH_Index[3]] + 1)
-
-------- ----------------------- --------
-
-------- Set Locations and move Hook dummy --------
-
Set PH_Dummy_Point[PH_Index[3]] = (Position of PH_Dummy[PH_Index[3]])
-
Set PH_Hook_Point[PH_Index[3]] = (PH_Dummy_Point[PH_Index[3]] offset by 30.00 towards PH_Hook_Angle[PH_Index[3]] degrees)
-
-------- ----------------------- --------
-
Unit - Move PH_Dummy[PH_Index[3]] instantly to PH_Hook_Point[PH_Index[3]]
-
Unit - Create 1 Effect for (Owner of PH_Caster[PH_Index[3]]) at PH_Dummy_Point[PH_Index[3]] facing PH_Hook_Angle[PH_Index[3]] degrees
-
Unit - Turn collision for (Last created unit) Off
-
Hashtable - Save Handle Of(Last created unit) as PH_Counter[PH_Index[3]] of PH_Index[3] in PH_Table
-
-------- ----------------------- --------
-
-------- Hooking enemy unit --------
-
-------- ----------------------- --------
-
Custom script: set bj_wantDestroyGroup = true
-
Unit Group - Pick every unit in (Units within 100.00 of PH_Hook_Point[PH_Index[3]] matching ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of PH_Caster[PH_Index[3]])) Equal to True))) and do (Actions)
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
((Picked unit) is Magic Immune) Equal to False
-
PH_Hooked_Is[PH_Index[3]] Equal to False
-
-
Then - Actions
-
Set PH_Hooked_Unit[PH_Index[3]] = (Picked unit)
-
Set PH_Hooked_Is[PH_Index[3]] = True
-
Unit - Pause (Picked unit)
-
Unit - Turn collision for (Picked unit) Off
-
-------- ----------------------- --------
-
-------- Deal damage --------
-
Unit - Cause PH_Caster[PH_Index[3]] to damage (Picked unit), dealing (Real(PH_Damage)) damage of attack type Spells and damage type Lightning
-
-------- ----------------------- --------
-
-
Else - Actions
-
-
-
-
Custom script: call RemoveLocation(udg_PH_Dummy_Point[udg_PH_Index[3]])
-
Custom script: call RemoveLocation(udg_PH_Hook_Point[udg_PH_Index[3]])
-
-------- Leaks Removed --------
-
-------- ----------------------- --------
-
-------- ----------------------- --------
-
-------- No unit hooked? --------
-
-------- ----------------------- --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
PH_Counter[PH_Index[3]] Equal to PH_Distance
-
-
Then - Actions
-
Set PH_Hooked_Is[PH_Index[3]] = True
-
Unit - Unpause PH_Caster[PH_Index[3]]
-
-
Else - Actions
-
-
-------- ----------------------- --------
-
-------- ----------------------- --------
-
-------- ----------------------- --------
-
-
Else - Actions
-
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
PH_Hooked_Is[PH_Index[3]] Equal to True
-
-
Then - Actions
-
-------- ----------------------- --------
-
-------- Moving Hook back --------
-
-------- ----------------------- --------
-
-------- Counter decrasing --------
-
Set PH_Counter[PH_Index[3]] = (PH_Counter[PH_Index[3]] - 1)
-
-------- ----------------------- --------
-
-------- Setting locations to move Hook dummy and hooked unit --------
-
Set PH_Dummy_Point[PH_Index[3]] = (Position of PH_Dummy[PH_Index[3]])
-
Set PH_Hook_Point[PH_Index[3]] = (PH_Dummy_Point[PH_Index[3]] offset by 30.00 towards (PH_Hook_Angle[PH_Index[3]] - 180.00) degrees)
-
-------- ----------------------- --------
-
-------- Destroy effect of hook --------
-
Set PH_Effect = (Load (PH_Counter[PH_Index[3]] + 1) of PH_Index[3] in PH_Table)
-
Unit - Kill PH_Effect
-
Unit - Remove PH_Effect from the game
-
-------- ----------------------- --------
-
-------- ----------------------- --------
-
Unit - Move PH_Dummy[PH_Index[3]] instantly to PH_Hook_Point[PH_Index[3]]
-
-------- ----------------------- --------
-
-------- Moving hooked unit --------
-
-------- ----------------------- --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
PH_Hooked_Unit[PH_Index[3]] Not equal to No unit
-
-
Then - Actions
-
Unit - Move PH_Hooked_Unit[PH_Index[3]] instantly to PH_Dummy_Point[PH_Index[3]]
-
-
Else - Actions
-
-
Custom script: call RemoveLocation(udg_PH_Dummy_Point[udg_PH_Index[3]])
-
Custom script: call RemoveLocation(udg_PH_Hook_Point[udg_PH_Index[3]])
-
-------- ----------------------- --------
-
-------- Leaks Removed --------
-
-------- ----------------------- --------
-
-
Else - Actions
-
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
PH_Counter[PH_Index[3]] Equal to 0
-
-
Then - Actions
-
-------- ----------------------- --------
-
-------- Removing hook and unpause caster --------
-
-------- ----------------------- --------
-
Unit - Kill PH_Dummy[PH_Index[3]]
-
Unit - Remove PH_Dummy[PH_Index[3]] from the game
-
Unit - Unpause PH_Caster[PH_Index[3]]
-
Animation - Reset PH_Caster[PH_Index[3]]'s animation
-
-------- ----------------------- --------
-
-------- Unpause Hooked unit --------
-
-------- ----------------------- --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
PH_Hooked_Unit[PH_Index[3]] Not equal to No unit
-
-
Then - Actions
-
Unit - Unpause PH_Hooked_Unit[PH_Index[3]]
-
Unit - Turn collision for PH_Hooked_Unit[PH_Index[3]] On
-
-
Else - Actions
-
-
-------- ----------------------- --------
-
-------- Spell Ending --------
-
-------- ----------------------- --------
-
Set PH_Index[1] = (PH_Index[1] - 1)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
PH_Index[1] Equal to 0
-
-
Then - Actions
-
Set PH_Index[2] = 0
-
Trigger - Turn off (This trigger)
-
-
Else - Actions
-
-
-
Else - Actions
-
-
-
Else - Actions
-
-
-
-
-
Last edited: