1. Are you planning to upload your awesome spell or system to Hive? Please review the rules here.
    Dismiss Notice
  2. The heavens smile on the old faithful. The 16th Techtree Contest has begun.
    Dismiss Notice
  3. The die is cast - the 6th Melee Mapping Contest results have been announced. Onward to the Hive Cup!
    Dismiss Notice
  4. The glory of the 20th Icon Contest is yours for the taking!
    Dismiss Notice
  5. Shoot to thrill, play to kill. Sate your hunger with the 33rd Modeling Contest!
    Dismiss Notice
  6. Do you hear boss music? It's the 17th Mini Mapping Contest!
    Dismiss Notice
  7. Check out the Staff job openings thread.
    Dismiss Notice
Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

Trigger Viewer

Gogonnash - Darkslayer.w3x
Variables
DoNotCopy
DoNotCopy 1
DoNotCopy 2
DoNotCopy 3 Setup
DoNotCopy 3
DoNotCopy 4
Skill1
Skill1 Setup
Skill1 Cast
Skill1 Work
Skill2
Skill2 Setup
Skill2 Cast
Skill2 Work
Skill3
Skill3 Setup
Skill3 Cast
Skill3 Work
Skill4
Skill4 Setup
Skill4 Cast
Skill4 Work
Enter map-specific custom script code below. This text will be included in the map script after variables are declared and before any trigger code.

		
Name Type Is Array Initial Value
DoNotCopy_Angles real Yes
DoNotCopy_Loop integer No
DoNotCopy_Positions location Yes
DoNotCopy_Revive_Time integer No
DoNotCopy_Types unitcode Yes
Skill1_Ability abilcode No
Skill1_Ability_DarkConversion abilcode No
Skill1_Ability_Level integer No
Skill1_Caster unit No
Skill1_Caster_Agility integer No
Skill1_Caster_Group group No
Skill1_Damage_Per_Level real No
Skill1_Damage_Total real No
Skill1_E_Caster unit No
Skill1_E_Damage_Total real No
Skill1_E_Progress_Current real No
Skill1_E_Progress_Max real No
Skill1_E_Progress_Min real No
Skill1_E_Target unit No
Skill1_E_Target_Loc location No
Skill1_E_Target_Loc2 location No
Skill1_Hashtable hashtable No
Skill1_Progress_Current real No
Skill1_Progress_Max real No
Skill1_Progress_Min real No
Skill1_Target unit No
Skill2_Ability abilcode No
Skill2_Ability_Level integer No
Skill2_Ability_MagicalSeal abilcode No
Skill2_Caster unit No
Skill2_Count integer No
Skill2_Damage real No
Skill2_E_Caster unit No
Skill2_E_Count integer No
Skill2_E_Damage real No
Skill2_E_Target unit No
Skill2_E_Target_Loc location No
Skill2_Hashtable hashtable No
Skill2_Seal effect No
Skill2_Target unit No
Skill2_Target_Group group No
Skill3_Ability_Chance integer No
Skill3_Ability_FastHands abilcode No
Skill3_Ability_Level integer No
Skill3_Ability_MagicalSeal abilcode No
Skill3_Caster unit No
Skill3_Count integer No
Skill3_Damage real No
Skill3_E_Caster unit No
Skill3_E_Count integer No
Skill3_E_Damage real No
Skill3_E_Target unit No
Skill3_E_Target_Loc location No
Skill3_Hashtable hashtable No
Skill3_Seal effect No
Skill3_Target unit No
Skill3_Target_Group group No
Skill4_Ability abilcode No
Skill4_Ability_ForceofPain abilcode No
Skill4_Ability_Level integer No
Skill4_Caster unit No
Skill4_Caster_Group group No
Skill4_Caster_Loc location No
Skill4_Count_Current integer No
Skill4_Count_Limit integer No
Skill4_Damage real No
Skill4_E_Caster unit No
Skill4_E_Caster_Loc location No
Skill4_E_Count_Current integer No
Skill4_E_Count_Limit integer No
Skill4_E_Damage real No
Skill4_E_Floating texttag No
Skill4_E_Light lightning No
Skill4_E_Target unit No
Skill4_E_Target_Loc location No
Skill4_Floating texttag No
Skill4_Hashtable hashtable No
Skill4_Light lightning No
Skill4_Target unit No
Skill4_Target_Loc location No
DoNotCopy 1
  Events
    Map initialization
  Conditions
  Actions
    Visibility - Disable black mask
    Game - Set the time of day to 6.00
    Game - Display to (All players) the text: Press ESC to refresh ability cooldowns and restore hero.Marcos DAB presents.
DoNotCopy 2
  Events
    Player - Player 1 (Red) skips a cinematic sequence
  Conditions
  Actions
    Unit Group - Pick every unit in (Units in (Playable map area) matching ((Owner of (Matching unit)) Not equal to Neutral Hostile)) and do (Actions)
      Loop - Actions
        Unit - Set life of (Picked unit) to 100%
        Unit - Set mana of (Picked unit) to 100%
        Unit - Reset ability cooldowns for (Picked unit).
DoNotCopy 3 Setup
  Events
    Map initialization
  Conditions
  Actions
    Set VariableSet DoNotCopy_Revive_Time = 35
    Set VariableSet DoNotCopy_Loop = 0
    Unit Group - Pick every unit in (Units owned by Neutral Hostile.) and do (Actions)
      Loop - Actions
        Set VariableSet DoNotCopy_Types[DoNotCopy_Loop] = (Unit-type of (Picked unit))
        Set VariableSet DoNotCopy_Positions[DoNotCopy_Loop] = (Position of (Picked unit))
        Set VariableSet DoNotCopy_Angles[DoNotCopy_Loop] = (Facing of (Picked unit))
        Unit - Set the custom value of (Picked unit) to DoNotCopy_Loop
        Set VariableSet DoNotCopy_Loop = (DoNotCopy_Loop + 1)
    Custom script: call DestroyGroup(bj_lastCreatedGroup)
    Trigger - Turn off (This trigger)
function Trig_Revive_Creeps_Actions takes nothing returns nothing
    local integer CUSTOM
    set CUSTOM = GetUnitUserData(GetDyingUnit())
    call TriggerSleepAction( udg_DoNotCopy_Revive_Time )
    call CreateNUnitsAtLoc( 1, udg_DoNotCopy_Types[CUSTOM], Player(PLAYER_NEUTRAL_AGGRESSIVE), udg_DoNotCopy_Positions[CUSTOM], udg_DoNotCopy_Angles[CUSTOM] )
    call SetUnitUserData( GetLastCreatedUnit(), CUSTOM )
endfunction

//===========================================================================
function InitTrig_DoNotCopy_3 takes nothing returns nothing
    set gg_trg_DoNotCopy_3 = CreateTrigger(  )
    call TriggerRegisterPlayerUnitEventSimple( gg_trg_DoNotCopy_3, Player(PLAYER_NEUTRAL_AGGRESSIVE), EVENT_PLAYER_UNIT_DEATH )
    call TriggerAddAction( gg_trg_DoNotCopy_3, function Trig_Revive_Creeps_Actions )
endfunction

 
DoNotCopy 4
  Events
  Conditions
  Actions
    Custom script: local destructable BADTREE = GetDyingDestructable()
    Wait 30.00 seconds
    Custom script: call DestructableRestoreLife( BADTREE, GetDestructableMaxLife(BADTREE), true )
Skill1 Setup
  Events
    Map initialization
  Conditions
  Actions
    Hashtable - Create a hashtable
    Set VariableSet Skill1_Hashtable = (Last created hashtable)
    Set VariableSet Skill1_Ability_DarkConversion = Dark Conversion (Darkslayer)
Skill1 Cast
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Skill1_Ability_DarkConversion
  Actions
    -------- Target config --------
    Set VariableSet Skill1_Target = (Target unit of ability being cast)
    -------- ### Hashtable value 0 ### --------
    -------- Caster config --------
    Set VariableSet Skill1_Caster = (Triggering unit)
    Set VariableSet Skill1_Caster_Agility = (Agility of (Triggering unit) (Include bonuses))
    Unit Group - Add (Triggering unit) to Skill1_Caster_Group
    Unit - Pause (Triggering unit)
    -------- Ability config --------
    Set VariableSet Skill1_Ability = (Ability being cast)
    Set VariableSet Skill1_Ability_Level = (Level of Skill1_Ability for (Triggering unit))
    -------- Percentage of damage --------
    -------- 75% of agility as damage per level --------
    Set VariableSet Skill1_Damage_Per_Level = 75.00
    -------- ### Hashtable value 1 ### --------
    -------- Final damage configuration --------
    Set VariableSet Skill1_Damage_Total = (((Real(Skill1_Ability_Level)) x Skill1_Damage_Per_Level) x ((Real(Skill1_Caster_Agility)) / 100.00))
    -------- ### Hashtable value 2 ### --------
    -------- Progress maximum --------
    Set VariableSet Skill1_Progress_Max = 0.00
    -------- ### Hashtable value 3 ### --------
    -------- Progress minimum --------
    Set VariableSet Skill1_Progress_Min = 100.00
    -------- ### Hashtable value 4 ### --------
    -------- Progress counter --------
    Set VariableSet Skill1_Progress_Current = 0.00
    -------- Hashtable saving values --------
    Hashtable - Save Handle OfSkill1_Target as 0 of (Key (Triggering unit).) in Skill1_Hashtable.
    Hashtable - Save Skill1_Damage_Total as 1 of (Key (Triggering unit).) in Skill1_Hashtable.
    Hashtable - Save Skill1_Progress_Max as 2 of (Key (Triggering unit).) in Skill1_Hashtable.
    Hashtable - Save Skill1_Progress_Min as 3 of (Key (Triggering unit).) in Skill1_Hashtable.
    Hashtable - Save Skill1_Progress_Current as 4 of (Key (Triggering unit).) in Skill1_Hashtable.
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Number of units in Skill1_Caster_Group) Greater than 0
      Then - Actions
        Trigger - Turn on Skill1_Work <gen>
      Else - Actions
Skill1 Work
  Events
    Time - Every 0.03 seconds of game time
  Conditions
  Actions
    Unit Group - Pick every unit in Skill1_Caster_Group and do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            ((Picked unit) is alive) Equal to True
          Then - Actions
            -------- ### Hashtable load 0 ### --------
            Set VariableSet Skill1_E_Caster = (Picked unit)
            Set VariableSet Skill1_E_Target = (Load 0 of (Key (Picked unit).) in Skill1_Hashtable.)
            Set VariableSet Skill1_E_Target_Loc = (Position of Skill1_E_Target)
            Set VariableSet Skill1_E_Target_Loc2 = ((Position of Skill1_E_Target) offset by 128.00 towards ((Facing of Skill1_E_Target) + 180.00) degrees.)
            -------- ### Hashtable load 1 ### --------
            Set VariableSet Skill1_E_Damage_Total = (Load 1 of (Key (Picked unit).) from Skill1_Hashtable.)
            -------- ### Hashtable load 2,3,4 ### --------
            Set VariableSet Skill1_E_Progress_Max = (Load 2 of (Key (Picked unit).) from Skill1_Hashtable.)
            Set VariableSet Skill1_E_Progress_Min = (Load 3 of (Key (Picked unit).) from Skill1_Hashtable.)
            Set VariableSet Skill1_E_Progress_Current = (Load 4 of (Key (Picked unit).) from Skill1_Hashtable.)
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                Skill1_E_Progress_Current Greater than or equal to Skill1_E_Progress_Max
              Then - Actions
                Set VariableSet Skill1_E_Progress_Current = ((Load 4 of (Key (Picked unit).) from Skill1_Hashtable.) + 1.00)
                Hashtable - Save Skill1_E_Progress_Current as 4 of (Key (Picked unit).) in Skill1_Hashtable.
                Animation - Change (Picked unit)'s vertex coloring to (100%, 100%, 100%) with Skill1_E_Progress_Current% transparency
                Animation - Play (Picked unit)'s walk (animationname) animation
              Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                Skill1_E_Progress_Current Greater than or equal to Skill1_E_Progress_Min
              Then - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    (Skill1_E_Target belongs to an ally of (Owner of (Picked unit)).) Equal to True
                  Then - Actions
                    Set VariableSet Skill1_E_Progress_Current = 0.00
                    Hashtable - Save Skill1_E_Progress_Current as 4 of (Key (Picked unit).) in Skill1_Hashtable.
                    Animation - Change (Picked unit)'s vertex coloring to (100%, 100%, 100%) with Skill1_E_Progress_Current% transparency
                    Animation - Play (Picked unit)'s spell (animationname) animation
                    Unit - Move (Picked unit) instantly to Skill1_E_Target_Loc2, facing Skill1_E_Target_Loc
                    Unit - Unpause (Picked unit)
                    Unit Group - Remove (Picked unit) from Skill1_Caster_Group.
                    Hashtable - Clear all child hashtables of child (Key (Picked unit).) in Skill1_Hashtable.
                  Else - Actions
                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                      If - Conditions
                        (Skill1_E_Target is alive) Equal to True
                      Then - Actions
                        Set VariableSet Skill1_E_Progress_Current = 0.00
                        Hashtable - Save Skill1_E_Progress_Current as 4 of (Key (Picked unit).) in Skill1_Hashtable.
                        Animation - Change (Picked unit)'s vertex coloring to (100%, 100%, 100%) with Skill1_E_Progress_Current% transparency
                        Unit - Move (Picked unit) instantly to Skill1_E_Target_Loc2, facing Skill1_E_Target_Loc
                        Unit - Cause (Picked unit) to damage Skill1_E_Target, dealing Skill1_E_Damage_Total damage of attack type Spells and damage type Normal
                        Special Effect - Create a special effect at Skill1_E_Target_Loc using units\nightelf\SpiritOfVengeance\SpiritOfVengeance.mdl
                        Special Effect - Destroy (Last created special effect)
                        Floating Text - Create floating text that reads (- + (String((Integer(Skill1_E_Damage_Total))))) at Skill1_E_Target_Loc with Z offset 0, using font size 12.00, color (100.00%, 0.00%, 0.00%), and 0% transparency
                        Floating Text - Set the velocity of (Last created floating text) to 64 towards 90 degrees
                        Floating Text - Change (Last created floating text): Disable permanence
                        Floating Text - Change the fading age of (Last created floating text) to 2.00 seconds
                        Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                        Unit - Unpause (Picked unit)
                        Unit - Order (Picked unit) to Attack.Skill1_E_Target
                        Unit Group - Remove (Picked unit) from Skill1_Caster_Group.
                        Hashtable - Clear all child hashtables of child (Key (Picked unit).) in Skill1_Hashtable.
                      Else - Actions
                        Set VariableSet Skill1_E_Progress_Current = 0.00
                        Hashtable - Save Skill1_E_Progress_Current as 4 of (Key (Picked unit).) in Skill1_Hashtable.
                        Animation - Change (Picked unit)'s vertex coloring to (100%, 100%, 100%) with Skill1_E_Progress_Current% transparency
                        Animation - Play (Picked unit)'s spell (animationname) animation
                        Unit - Move (Picked unit) instantly to Skill1_E_Target_Loc2, facing Skill1_E_Target_Loc
                        Unit - Unpause (Picked unit)
                        Unit Group - Remove (Picked unit) from Skill1_Caster_Group.
                        Hashtable - Clear all child hashtables of child (Key (Picked unit).) in Skill1_Hashtable.
              Else - Actions
            Custom script: call RemoveLocation(udg_Skill1_E_Target_Loc)
            Custom script: call RemoveLocation(udg_Skill1_E_Target_Loc2)
          Else - Actions
            Set VariableSet Skill1_E_Progress_Current = 0.00
            Hashtable - Save Skill1_E_Progress_Current as 4 of (Key (Picked unit).) in Skill1_Hashtable.
            Animation - Change (Picked unit)'s vertex coloring to (100%, 100%, 100%) with Skill1_E_Progress_Current% transparency
            Unit - Unpause (Picked unit)
            Unit Group - Remove (Picked unit) from Skill1_Caster_Group.
            Hashtable - Clear all child hashtables of child (Key (Picked unit).) in Skill1_Hashtable.
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Number of units in Skill1_Caster_Group) Equal to 0
      Then - Actions
        Trigger - Turn off (This trigger)
      Else - Actions
Skill2 Setup
  Events
    Map initialization
  Conditions
  Actions
    Hashtable - Create a hashtable
    Set VariableSet Skill2_Hashtable = (Last created hashtable)
    Set VariableSet Skill2_Ability_MagicalSeal = Magical Seal (Darkslayer)
Skill2 Cast
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Skill2_Ability_MagicalSeal
  Actions
    Special Effect - Destroy (Load 1 of (Key (Target unit of ability being cast).) in Skill2_Hashtable.)
    -------- ### Hashtable value 0 ### --------
    -------- Target config --------
    Set VariableSet Skill2_Target = (Target unit of ability being cast)
    Unit Group - Add Skill2_Target to Skill2_Target_Group
    -------- Caster config --------
    Set VariableSet Skill2_Caster = (Triggering unit)
    Unit - Grant shared vision of Skill2_Target to (Owner of (Triggering unit))
    -------- Ability config --------
    Set VariableSet Skill2_Ability = (Ability being cast)
    Set VariableSet Skill2_Ability_Level = (Level of (Ability being cast) for (Triggering unit))
    -------- ### Hashtable value 1 ### --------
    -------- Special effect of seal --------
    Special Effect - Create a special effect attached to the chest (attachpoint) of Skill2_Target using Abilities\Weapons\DruidoftheTalonMissile\DruidoftheTalonMissile.mdl
    Set VariableSet Skill2_Seal = (Last created special effect)
    -------- ### Hashtable value 2 ### --------
    -------- Count sealed time --------
    Set VariableSet Skill2_Count = (1 + (Skill2_Ability_Level x 2))
    -------- ### Hashtable value 3 ### --------
    -------- Damage based on hitpoints --------
    Set VariableSet Skill2_Damage = (((Max life of (Triggering unit)) / 100.00) x (Real(Skill2_Count)))
    -------- Hashtable saving values --------
    Hashtable - Save Handle OfSkill2_Caster as 0 of (Key (Target unit of ability being cast).) in Skill2_Hashtable.
    Hashtable - Save Handle OfSkill2_Seal as 1 of (Key (Target unit of ability being cast).) in Skill2_Hashtable.
    Hashtable - Save Skill2_Count as 2 of (Key (Target unit of ability being cast).) in Skill2_Hashtable.
    Hashtable - Save Skill2_Damage as 3 of (Key (Target unit of ability being cast).) in Skill2_Hashtable.
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Number of units in Skill2_Target_Group) Greater than 0
      Then - Actions
        Trigger - Turn on Skill2_Work <gen>
      Else - Actions
Skill2 Work
  Events
    Time - Every 1.00 seconds of game time
  Conditions
  Actions
    Unit Group - Pick every unit in Skill2_Target_Group and do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            ((Picked unit) is alive) Equal to True
          Then - Actions
            -------- ### Hashtable load 0 ### --------
            Set VariableSet Skill2_E_Caster = (Load 0 of (Key (Picked unit).) in Skill2_Hashtable.)
            Set VariableSet Skill2_E_Target = (Picked unit)
            Set VariableSet Skill2_E_Target_Loc = (Position of Skill2_E_Target)
            -------- ### Hashtable load 2 ### --------
            Set VariableSet Skill2_E_Count = (Load 2 of (Key (Picked unit).) from Skill2_Hashtable.)
            -------- ### Hashtable load 3 ### --------
            Set VariableSet Skill2_E_Damage = (Load 3 of (Key (Picked unit).) from Skill2_Hashtable.)
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                Skill2_E_Count Greater than or equal to 0
              Then - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    Skill2_E_Count Not equal to 0
                  Then - Actions
                    Floating Text - Create floating text that reads (String(Skill2_E_Count)) at Skill2_E_Target_Loc with Z offset 0, using font size 12.00, color (100.00%, 0.00%, 100.00%), and 0% transparency
                    Floating Text - Set the velocity of (Last created floating text) to 64 towards 90 degrees
                    Floating Text - Change (Last created floating text): Disable permanence
                    Floating Text - Change the fading age of (Last created floating text) to 2.00 seconds
                    Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                  Else - Actions
                Set VariableSet Skill2_E_Count = ((Load 2 of (Key (Picked unit).) from Skill2_Hashtable.) - 1)
                Hashtable - Save Skill2_E_Count as 2 of (Key (Picked unit).) in Skill2_Hashtable.
              Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                Skill2_E_Count Less than 0
              Then - Actions
                Unit - Deny shared vision of (Picked unit) to (Owner of Skill2_E_Caster)
                Special Effect - Destroy (Load 1 of (Key (Picked unit).) in Skill2_Hashtable.)
                Special Effect - Create a special effect at Skill2_E_Target_Loc using units\nightelf\SpiritOfVengeance\SpiritOfVengeance.mdl
                Special Effect - Destroy (Last created special effect)
                Unit - Cause Skill2_E_Caster to damage Skill2_E_Target, dealing Skill2_E_Damage damage of attack type Spells and damage type Normal
                Floating Text - Create floating text that reads (- + (String((Integer(Skill2_E_Damage))))) at Skill2_E_Target_Loc with Z offset 0, using font size 12.00, color (100.00%, 0.00%, 0.00%), and 0% transparency
                Floating Text - Set the velocity of (Last created floating text) to 64 towards 90 degrees
                Floating Text - Change (Last created floating text): Disable permanence
                Floating Text - Change the fading age of (Last created floating text) to 2.00 seconds
                Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                Unit Group - Remove (Picked unit) from Skill2_Target_Group.
                Hashtable - Clear all child hashtables of child (Key (Picked unit).) in Skill2_Hashtable.
              Else - Actions
            Custom script: call RemoveLocation(udg_Skill2_E_Target_Loc)
          Else - Actions
            Unit - Deny shared vision of (Picked unit) to (Owner of Skill2_E_Caster)
            Special Effect - Destroy (Load 1 of (Key (Picked unit).) in Skill2_Hashtable.)
            Unit Group - Remove (Picked unit) from Skill2_Target_Group.
            Hashtable - Clear all child hashtables of child (Key (Picked unit).) in Skill2_Hashtable.
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Number of units in Skill2_Target_Group) Equal to 0
      Then - Actions
        Trigger - Turn off (This trigger)
      Else - Actions
Skill3 Setup
  Events
    Map initialization
  Conditions
  Actions
    Hashtable - Create a hashtable
    Set VariableSet Skill3_Hashtable = (Last created hashtable)
    Set VariableSet Skill3_Ability_FastHands = Fast Hands (Darkslayer)
    Set VariableSet Skill3_Ability_MagicalSeal = Magical Seal (Darkslayer)
Skill3 Cast
  Events
    Unit - A unit Is attacked
  Conditions
    (Level of Skill3_Ability_FastHands for (Attacking unit)) Greater than 0
    (Level of Skill3_Ability_MagicalSeal for (Attacking unit)) Greater than 0
  Actions
    Special Effect - Destroy (Load 1 of (Key (Attacked unit).) in Skill3_Hashtable.)
    Set VariableSet Skill3_Ability_Level = (Level of Skill3_Ability_FastHands for (Attacking unit))
    Set VariableSet Skill3_Ability_Chance = (Skill3_Ability_Level x 5)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Random integer number between 1 and 100) Less than or equal to Skill3_Ability_Chance
      Then - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            ((Attacked unit) belongs to an enemy of (Owner of (Attacking unit)).) Equal to True
          Then - Actions
            -------- ### Hashtable value 0 ### --------
            Set VariableSet Skill3_Caster = (Attacking unit)
            Set VariableSet Skill3_Target = (Attacked unit)
            Unit Group - Add (Attacked unit) to Skill3_Target_Group
            Unit - Grant shared vision of (Attacked unit) to (Owner of (Attacking unit))
            -------- ### Hashtable value 1 ### --------
            Special Effect - Create a special effect attached to the chest (attachpoint) of (Attacked unit) using Abilities\Weapons\DruidoftheTalonMissile\DruidoftheTalonMissile.mdl
            Set VariableSet Skill3_Seal = (Last created special effect)
            -------- ### Hashtable value 2 ### --------
            Set VariableSet Skill3_Count = (1 + (2 x (Level of Skill3_Ability_MagicalSeal for (Attacking unit))))
            -------- ### Hashtable value 3 ### --------
            Set VariableSet Skill3_Damage = (((Max life of (Attacking unit)) / 100.00) x (Real(Skill3_Count)))
            -------- Hashtable saving values --------
            Hashtable - Save Handle OfSkill3_Caster as 0 of (Key (Attacked unit).) in Skill3_Hashtable.
            Hashtable - Save Handle OfSkill3_Seal as 1 of (Key (Attacked unit).) in Skill3_Hashtable.
            Hashtable - Save Skill3_Count as 2 of (Key (Attacked unit).) in Skill3_Hashtable.
            Hashtable - Save Skill3_Damage as 3 of (Key (Attacked unit).) in Skill3_Hashtable.
          Else - Actions
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Number of units in Skill3_Target_Group) Greater than 0
      Then - Actions
        Trigger - Turn on Skill3_Work <gen>
      Else - Actions
Skill3 Work
  Events
    Time - Every 1.00 seconds of game time
  Conditions
  Actions
    Unit Group - Pick every unit in Skill3_Target_Group and do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            ((Picked unit) is alive) Equal to True
          Then - Actions
            -------- ### Hashtable load 0 ### --------
            Set VariableSet Skill3_E_Caster = (Load 0 of (Key (Picked unit).) in Skill3_Hashtable.)
            Set VariableSet Skill3_E_Target = (Picked unit)
            Set VariableSet Skill3_E_Target_Loc = ((Position of Skill3_E_Target) offset by 32.00 towards 0 degrees.)
            -------- ### Hashtable load 2 ### --------
            Set VariableSet Skill3_E_Count = (Load 2 of (Key (Picked unit).) from Skill3_Hashtable.)
            -------- ### Hashtable load 3 ### --------
            Set VariableSet Skill3_E_Damage = (Load 3 of (Key (Picked unit).) from Skill3_Hashtable.)
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                Skill3_E_Count Greater than or equal to 0
              Then - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    Skill3_E_Count Not equal to 0
                  Then - Actions
                    Floating Text - Create floating text that reads (String(Skill3_E_Count)) at Skill3_E_Target_Loc with Z offset 0, using font size 8.00, color (100.00%, 0.00%, 100.00%), and 0% transparency
                    Floating Text - Set the velocity of (Last created floating text) to 64 towards 90 degrees
                    Floating Text - Change (Last created floating text): Disable permanence
                    Floating Text - Change the fading age of (Last created floating text) to 2.00 seconds
                    Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                  Else - Actions
                Set VariableSet Skill3_E_Count = ((Load 2 of (Key (Picked unit).) from Skill3_Hashtable.) - 1)
                Hashtable - Save Skill3_E_Count as 2 of (Key (Picked unit).) in Skill3_Hashtable.
              Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                Skill3_E_Count Less than 0
              Then - Actions
                Unit - Deny shared vision of Skill3_E_Target to (Owner of Skill3_E_Caster)
                Special Effect - Destroy (Load 1 of (Key (Picked unit).) in Skill3_Hashtable.)
                Special Effect - Create a special effect at Skill3_E_Target_Loc using units\nightelf\SpiritOfVengeance\SpiritOfVengeance.mdl
                Special Effect - Destroy (Last created special effect)
                Unit - Cause Skill3_E_Caster to damage Skill3_E_Target, dealing Skill3_E_Damage damage of attack type Spells and damage type Normal
                Floating Text - Create floating text that reads (- + (String((Integer(Skill3_E_Damage))))) at Skill3_E_Target_Loc with Z offset 0, using font size 12.00, color (100.00%, 0.00%, 0.00%), and 0% transparency
                Floating Text - Set the velocity of (Last created floating text) to 64 towards 90 degrees
                Floating Text - Change (Last created floating text): Disable permanence
                Floating Text - Change the fading age of (Last created floating text) to 2.00 seconds
                Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                Unit Group - Remove (Picked unit) from Skill3_Target_Group.
                Hashtable - Clear all child hashtables of child (Key (Picked unit).) in Skill3_Hashtable.
              Else - Actions
            Custom script: call RemoveLocation(udg_Skill3_E_Target_Loc)
          Else - Actions
            Special Effect - Destroy (Load 1 of (Key (Picked unit).) in Skill3_Hashtable.)
            Unit Group - Remove (Picked unit) from Skill3_Target_Group.
            Hashtable - Clear all child hashtables of child (Key (Picked unit).) in Skill3_Hashtable.
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Number of units in Skill3_Target_Group) Equal to 0
      Then - Actions
        Trigger - Turn off (This trigger)
      Else - Actions
Skill4 Setup
  Events
    Map initialization
  Conditions
  Actions
    Hashtable - Create a hashtable
    Set VariableSet Skill4_Hashtable = (Last created hashtable)
    Set VariableSet Skill4_Ability_ForceofPain = Force of Pain (Darkslayer)
Skill4 Cast
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Skill4_Ability_ForceofPain
  Actions
    Floating Text - Destroy (Load 5 of (Key (Triggering unit).) in Skill4_Hashtable)
    Lightning - Destroy (Load 1 of (Key (Triggering unit).) in Skill4_Hashtable.)
    -------- ### Hashtable value 0 ### --------
    -------- Caster config --------
    Set VariableSet Skill4_Caster = (Triggering unit)
    Set VariableSet Skill4_Target = (Target unit of ability being cast)
    Set VariableSet Skill4_Caster_Loc = (Position of (Triggering unit))
    Set VariableSet Skill4_Target_Loc = (Position of (Target unit of ability being cast))
    Unit Group - Add (Triggering unit) to Skill4_Caster_Group
    -------- Ability config --------
    Set VariableSet Skill4_Ability = (Ability being cast)
    Set VariableSet Skill4_Ability_Level = (Level of (Ability being cast) for (Triggering unit))
    -------- ### Hashtable value 1 ### --------
    Lightning - Create a Drain lightning effect from source Skill4_Target_Loc to target Skill4_Caster_Loc
    Lightning - Change color of (Last created lightning effect) to (1 0.00 1) with 1 alpha
    Set VariableSet Skill4_Light = (Last created lightning effect)
    -------- ### Hashtable value 2 ### --------
    Set VariableSet Skill4_Count_Current = 0
    -------- ### Hashtable value 3 ### --------
    -------- Count damage and distance --------
    Set VariableSet Skill4_Count_Limit = (100 + (200 x Skill4_Ability_Level))
    -------- ### Hashtable value 4 ### --------
    -------- Damage based on cap --------
    Set VariableSet Skill4_Damage = (Real(Skill4_Count_Current))
    -------- ### Hashtable value 5 ### --------
    Floating Text - Create floating text that reads (String(Skill4_Count_Current)) at Skill4_Caster_Loc with Z offset 0, using font size 12.00, color (100.00%, 0.00%, 100.00%), and 0% transparency
    Set VariableSet Skill4_Floating = (Last created floating text)
    -------- Hashtable saving values --------
    Hashtable - Save Handle OfSkill4_Target as 0 of (Key (Triggering unit).) in Skill4_Hashtable.
    Hashtable - Save Handle OfSkill4_Light as 1 of (Key (Triggering unit).) in Skill4_Hashtable.
    Hashtable - Save Skill4_Count_Current as 2 of (Key (Triggering unit).) in Skill4_Hashtable.
    Hashtable - Save Skill4_Count_Limit as 3 of (Key (Triggering unit).) in Skill4_Hashtable.
    Hashtable - Save Skill4_Damage as 4 of (Key (Triggering unit).) in Skill4_Hashtable.
    Hashtable - Save Handle OfSkill4_Floating as 5 of (Key (Triggering unit).) in Skill4_Hashtable.
    Custom script: call RemoveLocation(udg_Skill4_Target_Loc)
    Custom script: call RemoveLocation(udg_Skill4_Caster_Loc)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Number of units in Skill4_Caster_Group) Greater than 0
      Then - Actions
        Trigger - Turn on Skill4_Work <gen>
      Else - Actions
Skill4 Work
  Events
    Time - Every 0.03 seconds of game time
  Conditions
  Actions
    Unit Group - Pick every unit in Skill4_Caster_Group and do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            ((Picked unit) is alive) Equal to True
            ((Load 0 of (Key (Picked unit).) in Skill4_Hashtable.) is alive) Equal to True
          Then - Actions
            -------- ### Hashtable load 0 ### --------
            Set VariableSet Skill4_E_Caster = (Picked unit)
            Set VariableSet Skill4_E_Caster_Loc = (Position of (Picked unit))
            Set VariableSet Skill4_E_Target = (Load 0 of (Key (Picked unit).) in Skill4_Hashtable.)
            Set VariableSet Skill4_E_Target_Loc = (Position of Skill4_E_Target)
            -------- ### Hashtable load 1 ### --------
            Set VariableSet Skill4_E_Light = (Load 1 of (Key (Picked unit).) in Skill4_Hashtable.)
            -------- ### Hashtable load 2 ### --------
            Set VariableSet Skill4_E_Count_Current = (Load 2 of (Key (Picked unit).) from Skill4_Hashtable.)
            -------- ### Hashtable load 3 ### --------
            Set VariableSet Skill4_E_Count_Limit = (Load 3 of (Key (Picked unit).) from Skill4_Hashtable.)
            -------- ### Hashtable load 4 ### --------
            Set VariableSet Skill4_E_Damage = (Load 4 of (Key (Picked unit).) from Skill4_Hashtable.)
            -------- ### Hashtable load 5 ### --------
            Set VariableSet Skill4_E_Floating = (Load 5 of (Key (Picked unit).) in Skill4_Hashtable)
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                Skill4_E_Count_Current Less than Skill4_E_Count_Limit
              Then - Actions
                Set VariableSet Skill4_E_Count_Current = (Skill4_E_Count_Current + 1)
                Hashtable - Save Skill4_E_Count_Current as 2 of (Key (Picked unit).) in Skill4_Hashtable.
                Set VariableSet Skill4_E_Damage = (Real(Skill4_E_Count_Current))
                Hashtable - Save Skill4_E_Damage as 4 of (Key (Picked unit).) in Skill4_Hashtable.
                Floating Text - Change the position of Skill4_E_Floating to Skill4_E_Caster_Loc with Z offset 0
                Floating Text - Change text of Skill4_E_Floating to (String(Skill4_E_Count_Current)) using font size 12.00
                Lightning - Move Skill4_E_Light to source Skill4_E_Target_Loc and target Skill4_E_Caster_Loc
                Special Effect - Create a special effect at Skill4_E_Target_Loc using Abilities\Weapons\BlackKeeperMissile\BlackKeeperMissile.mdl
                Special Effect - Destroy (Last created special effect)
                Special Effect - Create a special effect at Skill4_E_Caster_Loc using Abilities\Weapons\BlackKeeperMissile\BlackKeeperMissile.mdl
                Special Effect - Destroy (Last created special effect)
              Else - Actions
                Floating Text - Destroy Skill4_E_Floating
                Floating Text - Destroy (Load 5 of (Key (Picked unit).) in Skill4_Hashtable)
                Lightning - Destroy Skill4_E_Light
                Lightning - Destroy (Load 1 of (Key (Picked unit).) in Skill4_Hashtable.)
                Special Effect - Create a special effect at Skill4_E_Target_Loc using units\nightelf\SpiritOfVengeance\SpiritOfVengeance.mdl
                Special Effect - Destroy (Last created special effect)
                Unit - Cause Skill4_E_Caster to damage Skill4_E_Target, dealing Skill4_E_Damage damage of attack type Spells and damage type Normal
                Floating Text - Create floating text that reads (- + (String((Integer(Skill4_E_Damage))))) at Skill4_E_Target_Loc with Z offset 0, using font size 12.00, color (100.00%, 0.00%, 0.00%), and 0% transparency
                Floating Text - Set the velocity of (Last created floating text) to 64 towards 90 degrees
                Floating Text - Change (Last created floating text): Disable permanence
                Floating Text - Change the fading age of (Last created floating text) to 2.00 seconds
                Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                Unit Group - Remove (Picked unit) from Skill4_Caster_Group.
                Hashtable - Clear all child hashtables of child (Key (Picked unit).) in Skill4_Hashtable.
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Distance between Skill4_E_Target_Loc and Skill4_E_Caster_Loc) Greater than or equal to (Real(Skill4_E_Count_Limit))
              Then - Actions
                Floating Text - Destroy Skill4_E_Floating
                Floating Text - Destroy (Load 5 of (Key (Picked unit).) in Skill4_Hashtable)
                Lightning - Destroy Skill4_E_Light
                Lightning - Destroy (Load 1 of (Key (Picked unit).) in Skill4_Hashtable.)
                Special Effect - Create a special effect at Skill4_E_Target_Loc using units\nightelf\SpiritOfVengeance\SpiritOfVengeance.mdl
                Special Effect - Destroy (Last created special effect)
                Unit - Cause Skill4_E_Caster to damage Skill4_E_Target, dealing Skill4_E_Damage damage of attack type Spells and damage type Normal
                Floating Text - Create floating text that reads (- + (String((Integer(Skill4_E_Damage))))) at Skill4_E_Target_Loc with Z offset 0, using font size 12.00, color (100.00%, 0.00%, 0.00%), and 0% transparency
                Floating Text - Set the velocity of (Last created floating text) to 64 towards 90 degrees
                Floating Text - Change (Last created floating text): Disable permanence
                Floating Text - Change the fading age of (Last created floating text) to 2.00 seconds
                Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                Unit Group - Remove (Picked unit) from Skill4_Caster_Group.
                Hashtable - Clear all child hashtables of child (Key (Picked unit).) in Skill4_Hashtable.
              Else - Actions
            Custom script: call RemoveLocation(udg_Skill4_E_Target_Loc)
            Custom script: call RemoveLocation(udg_Skill4_E_Caster_Loc)
          Else - Actions
            Floating Text - Destroy Skill4_E_Floating
            Floating Text - Destroy (Load 5 of (Key (Picked unit).) in Skill4_Hashtable)
            Lightning - Destroy Skill4_E_Light
            Lightning - Destroy (Load 1 of (Key (Picked unit).) in Skill4_Hashtable.)
            Special Effect - Create a special effect at Skill4_E_Target_Loc using units\nightelf\SpiritOfVengeance\SpiritOfVengeance.mdl
            Special Effect - Destroy (Last created special effect)
            Unit - Cause Skill4_E_Caster to damage Skill4_E_Target, dealing Skill4_E_Damage damage of attack type Spells and damage type Normal
            Floating Text - Create floating text that reads (- + (String((Integer(Skill4_E_Damage))))) at Skill4_E_Target_Loc with Z offset 0, using font size 12.00, color (100.00%, 0.00%, 0.00%), and 0% transparency
            Floating Text - Set the velocity of (Last created floating text) to 64 towards 90 degrees
            Floating Text - Change (Last created floating text): Disable permanence
            Floating Text - Change the fading age of (Last created floating text) to 2.00 seconds
            Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
            Unit Group - Remove (Picked unit) from Skill4_Caster_Group.
            Hashtable - Clear all child hashtables of child (Key (Picked unit).) in Skill4_Hashtable.
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Number of units in Skill4_Caster_Group) Equal to 0
      Then - Actions
        Trigger - Turn off (This trigger)
      Else - Actions