this is the triggers.
somethign is wrong because when i hook a dead unit/hero he comes alive O:
[
-
Hook Table
-
Events
- Map initialization
- Conditions
-
Actions
- Hashtable - Create a hashtable
- Set PH_Table = (Last created hashtable)
-
Events
-
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
-
If - Conditions
- 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]])))
- -------- ----------------------- --------
- -------- ----------------------- --------
-
Events
-
Hook Loop
-
Events
- Time - Every 0.01 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
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Loop - 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
-
If - Conditions
- -------- ----------------------- --------
- -------- ----------------------- --------
- -------- ----------------------- --------
- Else - Actions
-
If - Conditions
-
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
-
If - Conditions
- 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 - Conditions
-
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
-
If - Conditions
- -------- ----------------------- --------
- -------- 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
-
If - Conditions
- Else - Actions
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- Else - Actions
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Loop - Actions
-
For each (Integer PH_Index[3]) from 1 to PH_Index[2], do (Actions)
-
Events
somethign is wrong because when i hook a dead unit/hero he comes alive O: