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
-
-
-
-------- 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)
-
-
-
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
-
-
-
-
-
-
Last edited: