D.O.T. A.O.E. bug [HASHTABLE]
i am new 2 hashtable i read tutorial but i think its miss few things so im bugged here!!
im tryng to do a damage over time into a aoe of the caster when he cast thunder clap.... but nothing going on
edit : i think i set some key wrong
p.s.yes i did created hashtable in the int
i am new 2 hashtable i read tutorial but i think its miss few things so im bugged here!!
im tryng to do a damage over time into a aoe of the caster when he cast thunder clap.... but nothing going on
edit : i think i set some key wrong
p.s.yes i did created hashtable in the int
-
DOT AOE
-
Events
- Unit - A unit Starts the effect of an ability
-
Conditions
- (Ability being cast) Equal to DOT AOE
-
Actions
- -------- here we prepare variable to be add in hashtable --------
- Set Trigger_Unit = (Triggering unit)
- Set DOT_Dmg = 2000.00
- Set DOT_AOE = 400.00
- Set DOT_Duration = 10.00
- Set DOT_PointTrigger = (Position of Trigger_Unit)
- Set DamageOverTimeUnits = (Units within 600.00 of DOT_PointTrigger matching ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of Trigger_Unit)) Equal to True)))
-
Unit Group - Pick every unit in DamageOverTimeUnits and do (Actions)
-
Loop - Actions
- Hashtable - Save Handle OfTrigger_Unit as (Key unit) of (Key (Picked unit)) in DamageOverTime
- Unit Group - Add (Picked unit) to DamageOverTimeUnits
-
Loop - Actions
- -------- BELOW we are storing variable in hashtable :) --------
- Hashtable - Save DOT_AOE as (Key aoe) of (Key (Picked unit)) in DamageOverTime
- Hashtable - Save DOT_Dmg as (Key damage) of (Key (Picked unit)) in DamageOverTime
- -------- Store the duration in the Hashtable under the Picked unit's Handle ID --------
- Hashtable - Save DOT_Duration as 0 of (Key (Picked unit)) in DamageOverTime
- -------- - --------
- -------- removing leak location becuz its useless --------
- Custom script: call RemoveLocation(udg_DOT_PointTrigger)
- Custom script: call DestroyGroup(udg_DamageOverTimeUnits)
-
Events
-
DOT AOE loop
-
Events
- Time - Every 1.00 seconds of game time
- Conditions
-
Actions
- Set DamageOverTimeUnits = (Load (Key group) of (Key (Picked unit)) in DamageOverTime)
-
Unit Group - Pick every unit in DamageOverTimeUnits and do (Actions)
-
Loop - Actions
- Set Trigger_Unit = (Load (Key unit) of (Key (Picked unit)) in DamageOverTime)
- Set DOT_AOE = (Load (Key aoe) of (Key (Picked unit)) from DamageOverTime)
- Set DOT_Dmg = (Load (Key damage) of (Key (Picked unit)) from DamageOverTime)
- -------- Get the remaining time in seconds --------
- Set RemainingTime = (Load 0 of (Key (Picked unit)) from DamageOverTime)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- RemainingTime Greater than 0.00
-
Then - Actions
- -------- Heal the unit and update the time remaining --------
- Hashtable - Save (RemainingTime - 1.00) as 0 of (Key (Picked unit)) in DamageOverTime
- Unit - Cause Trigger_Unit to damage (Picked unit), dealing DOT_Dmg damage of attack type Spells and damage type Magic
-
Else - Actions
- -------- The healing is done, clean up --------
- Unit Group - Remove (Picked unit) from DamageOverTimeUnits
- Hashtable - Clear all child hashtables of child (Key (Picked unit)) in DamageOverTime
-
If - Conditions
-
Loop - Actions
-
Events
Last edited: