- Joined
- May 25, 2021
- Messages
- 407
It's quite fast. How do I change the it's speed?
| Power | Hook |
| Active/Target Point: Trows a giant electric chain which grabs nearby unit damaging it and pulling it over to your hero. 100 damage per level, distance 450 + 150 per level. Manacost: 160/170/180/190 Cooldown: 15/13/11/10 seconds |
Hook

Events


Unit - A unit Starts the effect of an ability

Conditions


(Ability being cast) Equal to Power Hook

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]]


Unit - Add Invulnerable (Neutral) to PH_Caster[PH_Index[2]]


-------- ----------------------- --------


-------- 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


Set PH_Effects[PH_Index[2]] = (Units of type Hook)


-------- ----------------------- --------


-------- 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 = (100 x (Level of (Ability being cast) for PH_Caster[PH_Index[2]]))


Set PH_Distance = (15 + (5 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








Unit Group - Add (Last created unit) to PH_Effects[PH_Index[3]]








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 64.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








Custom script: call DestroyGroup(udg_PH_Effects[udg_PH_Index[3]])








-------- ----------------------- --------








-------- 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