1. Are you planning to upload your awesome spell or system to Hive? Please review the rules here.
    Dismiss Notice
  2. Updated Resource Submission Rules: All model & skin resource submissions must now include an in-game screenshot. This is to help speed up the moderation process and to show how the model and/or texture looks like from the in-game camera.
    Dismiss Notice
  3. DID YOU KNOW - That you can unlock new rank icons by posting on the forums or winning contests? Click here to customize your rank or read our User Rank Policy to see a list of ranks that you can unlock. Have you won a contest and still havn't received your rank award? Then please contact the administration.
    Dismiss Notice
  4. The Lich King demands your service! We've reached the 19th edition of the Icon Contest. Come along and make some chilling servants for the one true king.
    Dismiss Notice
  5. The 4th SFX Contest has started. Be sure to participate and have a fun factor in it.
    Dismiss Notice
  6. The poll for the 21st Terraining Contest is LIVE. Be sure to check out the entries and vote for one.
    Dismiss Notice
  7. The results are out! Check them out.
    Dismiss Notice
  8. Don’t forget to sign up for the Hive Cup. There’s a 555 EUR prize pool. Sign up now!
    Dismiss Notice
  9. The Hive Workshop Cup contest results have been announced! See the maps that'll be featured in the Hive Workshop Cup tournament!
    Dismiss Notice
  10. 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 DoNotCopy_Revive_Time = 35
    Set DoNotCopy_Loop = 0
    Unit Group - Pick every unit in (Units owned by Neutral Hostile) and do (Actions)
      Loop - Actions
        Set DoNotCopy_Types[DoNotCopy_Loop] = (Unit-type of (Picked unit))
        Set DoNotCopy_Positions[DoNotCopy_Loop] = (Position of (Picked unit))
        Set DoNotCopy_Angles[DoNotCopy_Loop] = (Facing of (Picked unit))
        Unit - Set the custom value of (Picked unit) to DoNotCopy_Loop
        Set 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 Skill1_Hashtable = (Last created hashtable)
    Set 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 Skill1_Target = (Target unit of ability being cast)
    -------- ### Hashtable value 0 ### --------
    -------- Caster config --------
    Set Skill1_Caster = (Triggering unit)
    Set 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 Skill1_Ability = (Ability being cast)
    Set Skill1_Ability_Level = (Level of Skill1_Ability for (Triggering unit))
    -------- Percentage of damage --------
    -------- 75% of agility as damage per level --------
    Set Skill1_Damage_Per_Level = 75.00
    -------- ### Hashtable value 1 ### --------
    -------- Final damage configuration --------
    Set 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 Skill1_Progress_Max = 0.00
    -------- ### Hashtable value 3 ### --------
    -------- Progress minimum --------
    Set Skill1_Progress_Min = 100.00
    -------- ### Hashtable value 4 ### --------
    -------- Progress counter --------
    Set 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 Skill1_E_Caster = (Picked unit)
            Set Skill1_E_Target = (Load 0 of (Key (Picked unit)) in Skill1_Hashtable)
            Set Skill1_E_Target_Loc = (Position of Skill1_E_Target)
            Set 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 Skill1_E_Damage_Total = (Load 1 of (Key (Picked unit)) from Skill1_Hashtable)
            -------- ### Hashtable load 2,3,4 ### --------
            Set Skill1_E_Progress_Max = (Load 2 of (Key (Picked unit)) from Skill1_Hashtable)
            Set Skill1_E_Progress_Min = (Load 3 of (Key (Picked unit)) from Skill1_Hashtable)
            Set 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 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 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 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 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 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 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 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 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 Skill2_Hashtable = (Last created hashtable)
    Set 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 Skill2_Target = (Target unit of ability being cast)
    Unit Group - Add Skill2_Target to Skill2_Target_Group
    -------- Caster config --------
    Set Skill2_Caster = (Triggering unit)
    Unit - Grant shared vision of Skill2_Target to (Owner of (Triggering unit))
    -------- Ability config --------
    Set Skill2_Ability = (Ability being cast)
    Set 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 of Skill2_Target using Abilities\Weapons\DruidoftheTalonMissile\DruidoftheTalonMissile.mdl
    Set Skill2_Seal = (Last created special effect)
    -------- ### Hashtable value 2 ### --------
    -------- Count sealed time --------
    Set Skill2_Count = (1 + (Skill2_Ability_Level x 2))
    -------- ### Hashtable value 3 ### --------
    -------- Damage based on hitpoints --------
    Set 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 Skill2_E_Caster = (Load 0 of (Key (Picked unit)) in Skill2_Hashtable)
            Set Skill2_E_Target = (Picked unit)
            Set Skill2_E_Target_Loc = (Position of Skill2_E_Target)
            -------- ### Hashtable load 2 ### --------
            Set Skill2_E_Count = (Load 2 of (Key (Picked unit)) from Skill2_Hashtable)
            -------- ### Hashtable load 3 ### --------
            Set 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 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 Skill3_Hashtable = (Last created hashtable)
    Set Skill3_Ability_FastHands = Fast Hands (Darkslayer)
    Set 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 Skill3_Ability_Level = (Level of Skill3_Ability_FastHands for (Attacking unit))
    Set 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 Skill3_Caster = (Attacking unit)
            Set 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 of (Attacked unit) using Abilities\Weapons\DruidoftheTalonMissile\DruidoftheTalonMissile.mdl
            Set Skill3_Seal = (Last created special effect)
            -------- ### Hashtable value 2 ### --------
            Set Skill3_Count = (1 + (2 x (Level of Skill3_Ability_MagicalSeal for (Attacking unit))))
            -------- ### Hashtable value 3 ### --------
            Set 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 Skill3_E_Caster = (Load 0 of (Key (Picked unit)) in Skill3_Hashtable)
            Set Skill3_E_Target = (Picked unit)
            Set Skill3_E_Target_Loc = ((Position of Skill3_E_Target) offset by 32.00 towards 0 degrees)
            -------- ### Hashtable load 2 ### --------
            Set Skill3_E_Count = (Load 2 of (Key (Picked unit)) from Skill3_Hashtable)
            -------- ### Hashtable load 3 ### --------
            Set 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 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 Skill4_Hashtable = (Last created hashtable)
    Set 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 (If the label is not found, this function returns NULL.)
    Lightning - Destroy (Load 1 of (Key (Triggering unit)) in Skill4_Hashtable)
    -------- ### Hashtable value 0 ### --------
    -------- Caster config --------
    Set Skill4_Caster = (Triggering unit)
    Set Skill4_Target = (Target unit of ability being cast)
    Set Skill4_Caster_Loc = (Position of (Triggering unit))
    Set Skill4_Target_Loc = (Position of (Target unit of ability being cast))
    Unit Group - Add (Triggering unit) to Skill4_Caster_Group
    -------- Ability config --------
    Set Skill4_Ability = (Ability being cast)
    Set 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 Skill4_Light = (Last created lightning effect)
    -------- ### Hashtable value 2 ### --------
    Set Skill4_Count_Current = 0
    -------- ### Hashtable value 3 ### --------
    -------- Count damage and distance --------
    Set Skill4_Count_Limit = (100 + (200 x Skill4_Ability_Level))
    -------- ### Hashtable value 4 ### --------
    -------- Damage based on cap --------
    Set 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 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 Skill4_E_Caster = (Picked unit)
            Set Skill4_E_Caster_Loc = (Position of (Picked unit))
            Set Skill4_E_Target = (Load 0 of (Key (Picked unit)) in Skill4_Hashtable)
            Set Skill4_E_Target_Loc = (Position of Skill4_E_Target)
            -------- ### Hashtable load 1 ### --------
            Set Skill4_E_Light = (Load 1 of (Key (Picked unit)) in Skill4_Hashtable)
            -------- ### Hashtable load 2 ### --------
            Set Skill4_E_Count_Current = (Load 2 of (Key (Picked unit)) from Skill4_Hashtable)
            -------- ### Hashtable load 3 ### --------
            Set Skill4_E_Count_Limit = (Load 3 of (Key (Picked unit)) from Skill4_Hashtable)
            -------- ### Hashtable load 4 ### --------
            Set Skill4_E_Damage = (Load 4 of (Key (Picked unit)) from Skill4_Hashtable)
            -------- ### Hashtable load 5 ### --------
            Set Skill4_E_Floating = (If the label is not found, this function returns NULL.)
            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 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 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 (If the label is not found, this function returns NULL.)
                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 (If the label is not found, this function returns NULL.)
                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 (If the label is not found, this function returns NULL.)
            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