I will admit, I do not understand hashtables what so ever. I am trying to use Simple Spell Power system in my map. I am trying to make an AoE ability do extra damage based on spell power. It does not do anything that I can tell, though...I followed a tutorial on how to do this for AoE abilities, but...I dunno...I can't really explain. I will post my triggers, and hopefully someone can help me with my problem.
Edit: For reference, Simple Spell Power System and Hashtables Tutorial that I tried to follow and modify/use.
Edit: For reference, Simple Spell Power System and Hashtables Tutorial that I tried to follow and modify/use.
-
Rain of Fire SP
-
Events
- Unit - A unit Starts the effect of an ability
-
Conditions
-
Or - Any (Conditions) are true
-
Conditions
- (Ability being cast) Equal to Rain of Fire Level 1
- (Ability being cast) Equal to Rain of Fire Level 2
- (Ability being cast) Equal to Rain of Fire Level 3
-
Conditions
-
Or - Any (Conditions) are true
-
Actions
- -------- ////////// --------
- -------- Set SP_Unit --------
- Set SP_Unit = (Triggering unit)
- Hashtable - Save Handle OfSP_Unit as 4 of RoFCaster in SP_Hashtable
- -------- ////////// --------
- -------- Run the SP Get Trigger to get SP_CurrentValue from SP_Unit --------
- Trigger - Run SP Get <gen> (ignoring conditions)
- -------- ////////// --------
- -------- Use the SP_CurrentValue --------
- Set SP_CurrentValue = (SP_CurrentValue / 2.00)
-
Unit Group - Pick every unit in (Units within 600.00 of (Target point of ability being cast) matching (((Matching unit) belongs to an enemy of (Triggering player)) Equal to True)) and do (Actions)
-
Loop - Actions
- Unit Group - Add (Picked unit) to AoEDMG
- Set RemainingTime = 8.00
- Hashtable - Save RemainingTime as 5 of (Key (Picked unit)) in SP_Hashtable
-
Loop - Actions
-
Events
-
Rain of Fire Damage
-
Events
- Time - Elapsed game time is 1.00 seconds
- Conditions
-
Actions
-
Unit Group - Pick every unit in AoEDMG and do (Actions)
-
Loop - Actions
- Set SP_Unit = (Load 4 of RoFCaster in SP_Hashtable)
- Set RemainingTime = (Load 5 of (Key (Picked unit)) from SP_Hashtable)
- Custom script: set udg_SP_Key = GetHandleId(udg_SP_Unit)
- Trigger - Run SP Get <gen> (ignoring conditions)
- Set SP_CurrentValue = (SP_CurrentValue / 2.00)
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- RemainingTime Greater than 0.00
-
Then - Actions
- Unit - Cause SP_Unit to damage (Picked unit), dealing SP_CurrentValue damage of attack type Spells and damage type Normal
- Floating Text - Create floating text that reads (String((Integer(SP_CurrentValue)))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
- Floating Text - Set the velocity of (Last created floating text) to 64.00 towards 90.00 degrees
- Floating Text - Change (Last created floating text): Disable permanence
- Floating Text - Change the lifespan of (Last created floating text) to 1.50 seconds
- Floating Text - Change the fading age of (Last created floating text) to 0.75 seconds
- Set RemainingTime = (RemainingTime - 1.00)
-
Else - Actions
- Hashtable - Clear all child hashtables of child (Key (Picked unit)) in SP_Hashtable
- Unit Group - Remove (Picked unit) from AoEDMG
-
If - Conditions
-
Unit Group - Pick every unit in AoEDMG and do (Actions)
-
Events
-
SP Get
- Events
- Conditions
-
Actions
- Custom script: set udg_SP_Key = GetHandleId(udg_SP_Unit)
- Set SP_CurrentValue = (Load 1 of SP_Key from SP_Hashtable)