- Joined
- Feb 15, 2008
- Messages
- 2,174
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:






