Hi everyone. So yeah, I'm trying to learn how to use hashtables and I was wondering if you could please look at my triggers and tell me if I'm actually succeeding in transforming them from arrays to a hashtabe. Thank you in advance.
-
Cast Array
-

Events
-


Unit - A unit Starts the effect of an ability
-
-

Conditions
-


(Ability being cast) Equal to Life Transfer (ivo)
-
-

Actions
-


Set LT_Index = (LT_Index + 1)
-


Set LT_Caster[LT_Index] = (Triggering unit)
-


Set LT_Target[LT_Index] = (Target unit of ability being cast)
-


Set LT_Counter[LT_Index] = 0.00
-


If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-



If - Conditions
-




LT_Index Equal to 1
-
-



Then - Actions
-




Trigger - Turn on Loop Array <gen>
-
-



Else - Actions
-
-
-
-
Cast Hastable
-

Events
-


Unit - A unit Starts the effect of an ability
-
-

Conditions
-


(Ability being cast) Equal to Life Transfer (ivo)
-
-

Actions
-


Hashtable - Save Handle Of(Target unit of ability being cast) as (Integer(target)) of (Key (Triggering unit)) in LT_Hashtable
-


Hashtable - Save 0.00 as (Integer(counter)) of (Key (Triggering unit)) in LT_Hashtable
-


Unit Group - Add (Triggering unit) to LT_Hashtable_Group
-


If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-



If - Conditions
-




(Loop Hashtable <gen> is on) Equal to False
-
-



Then - Actions
-




Trigger - Turn on Loop Hashtable <gen>
-
-



Else - Actions
-




Do nothing
-
-
-
-
-
Loop Array
-

Events
-


Time - Every 0.50 seconds of game time
-
-

Conditions
-

Actions
-


For each (Integer LT_Loop) from 1 to LT_Index, do (Actions)
-



Loop - Actions
-




If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-





If - Conditions
-






LT_Counter[LT_Loop] Less than 1.50
-






(LT_Target[LT_Loop] is alive) Equal to True
-






(Life of LT_Target[LT_Loop]) Greater than or equal to 50.00
-
-





Then - Actions
-






Unit - Set life of LT_Caster[LT_Loop] to ((Life of LT_Caster[LT_Loop]) + 50.00)
-






Unit - Cause LT_Caster[LT_Loop] to damage LT_Target[LT_Loop], dealing 50.00 damage of attack type Chaos and damage type Universal
-






Set LT_Counter[LT_Loop] = (LT_Counter[LT_Loop] + 0.50)
-
-





Else - Actions
-






If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-







If - Conditions
-








LT_Counter[LT_Loop] Less than 1.50
-








(LT_Target[LT_Loop] is alive) Equal to True
-








(Life of LT_Target[LT_Loop]) Less than 50.00
-
-







Then - Actions
-








Unit - Set life of LT_Caster[LT_Loop] to ((Life of LT_Caster[LT_Loop]) + (Life of LT_Target[LT_Loop]))
-








Unit - Cause LT_Caster[LT_Loop] to damage LT_Target[LT_Loop], dealing (Life of LT_Target[LT_Loop]) damage of attack type Chaos and damage type Universal
-








Set LT_Counter[LT_Loop] = (LT_Counter[LT_Loop] + 0.50)
-
-







Else - Actions
-








If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-









If - Conditions
-










Or - Any (Conditions) are true
-











Conditions
-












(LT_Target[LT_Loop] is alive) Equal to False
-












LT_Counter[LT_Loop] Greater than or equal to 1.50
-
-
-
-









Then - Actions
-










Set LT_Caster[LT_Loop] = LT_Caster[LT_Index]
-










Set LT_Target[LT_Loop] = LT_Target[LT_Index]
-










Set LT_Counter[LT_Loop] = LT_Counter[LT_Index]
-










Set LT_Index = (LT_Index - 1)
-










Set LT_Loop = (LT_Loop - 1)
-










If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-











If - Conditions
-












LT_Index Equal to 0
-
-











Then - Actions
-












Trigger - Turn off (This trigger)
-
-











Else - Actions
-
-
-









Else - Actions
-
-
-
-
-
-
-
-
-
-
Loop Hashtable
-

Events
-


Time - Every 0.50 seconds of game time
-
-

Conditions
-

Actions
-


Unit Group - Pick every unit in LT_Hashtable_Group and do (Actions)
-



Loop - Actions
-




If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-





If - Conditions
-






(Load (Integer(counter)) of (Key (Picked unit)) from LT_Hashtable) Less than 1.50
-






((Load (Integer(target)) of (Key (Picked unit)) in LT_Hashtable) is alive) Equal to True
-






(Life of (Load (Integer(target)) of (Key (Picked unit)) in LT_Hashtable)) Greater than or equal to 50.00
-
-





Then - Actions
-






Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + 50.00)
-






Unit - Cause (Picked unit) to damage (Load (Integer(target)) of (Key (Picked unit)) in LT_Hashtable), dealing 50.00 damage of attack type Chaos and damage type Universal
-






Hashtable - Save ((Load (Integer(counter)) of (Key (Picked unit)) from LT_Hashtable) + 0.50) as (Integer(counter)) of (Key (Picked unit)) in LT_Hashtable
-
-





Else - Actions
-






If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-







If - Conditions
-








(Load (Integer(counter)) of (Key (Picked unit)) from LT_Hashtable) Less than 1.50
-








((Load (Integer(target)) of (Key (Picked unit)) in LT_Hashtable) is alive) Equal to True
-








(Life of (Load (Integer(target)) of (Key (Picked unit)) in LT_Hashtable)) Less than 50.00
-
-







Then - Actions
-








Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + (Life of (Load (Integer(target)) of (Key (Picked unit)) in LT_Hashtable)))
-








Unit - Cause (Picked unit) to damage (Load (Integer(target)) of (Key (Picked unit)) in LT_Hashtable), dealing (Life of (Load (Integer(target)) of (Key (Picked unit)) in LT_Hashtable)) damage of attack type Chaos and damage type Universal
-








Hashtable - Save ((Load (Integer(counter)) of (Key (Picked unit)) from LT_Hashtable) + 0.50) as (Integer(counter)) of (Key (Picked unit)) in LT_Hashtable
-
-







Else - Actions
-








If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-









If - Conditions
-










Or - Any (Conditions) are true
-











Conditions
-












(Load (Integer(counter)) of (Key (Picked unit)) from LT_Hashtable) Greater than or equal to 1.50
-












((Load (Integer(target)) of (Key (Picked unit)) in LT_Hashtable) is alive) Equal to False
-
-
-
-









Then - Actions
-










Hashtable - Clear all child hashtables of child (Key (Picked unit)) in LT_Hashtable
-










Unit Group - Remove (Picked unit) from LT_Hashtable_Group
-










If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-











If - Conditions
-












(LT_Hashtable_Group is empty) Equal to True
-
-











Then - Actions
-












Trigger - Turn off (This trigger)
-
-











Else - Actions
-












Do nothing
-
-
-
-









Else - Actions
-










Do nothing
-
-
-
-
-
-
-
-
-
-
-
Cancel Array
-

Events
-


Unit - A unit Stops casting an ability
-
-

Conditions
-


(Ability being cast) Equal to Life Transfer (ivo)
-
-

Actions
-


For each (Integer LT_Loop) from 1 to LT_Index, do (Actions)
-



Loop - Actions
-




If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-





If - Conditions
-






LT_Caster[LT_Loop] Equal to (Triggering unit)
-
-





Then - Actions
-






Set LT_Counter[LT_Loop] = 1.50
-
-





Else - Actions
-
-
-
-
-
-
Cancel Hashtable
-

Events
-


Unit - A unit Stops casting an ability
-
-

Conditions
-


(Ability being cast) Equal to Life Transfer (ivo)
-
-

Actions
-


Unit Group - Pick every unit in LT_Hashtable_Group and do (Actions)
-



Loop - Actions
-




If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-





If - Conditions
-






(Triggering unit) Equal to (Picked unit)
-
-





Then - Actions
-






Hashtable - Save 1.50 as (Integer(counter)) of (Key (Picked unit)) in LT_Hashtable
-
-





Else - Actions
-






Do nothing
-
-
-
-
-
-
Last edited:


