• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Gogonnash - Darkslayer

  • Like
Reactions: makai
Gogonnash - Darkslayer


204181-albums4594-picture44948.jpg



204181-albums4594-picture44949.jpg



204181-albums4594-picture44950.jpg



204181-albums4594-picture44951.jpg



=<1> Well, if you're importing a whole trigger, then you can go to
File - Preferences
and then check "Automatically create unknown variables while pasting trigger data".
If you now copy & paste a trigger which contains variables, they'll be automatically created in your map when you paste the triggers there.

=<2> Set the following variables with their ability.
Set Skill1_Ability_DarkConversion = Dark Conversion (Darkslayer)
Set Skill2_Ability_MagicalSeal = Magical Seal (Darkslayer)
Set Skill3_Ability_MagicalSeal = Magical Seal (Darkslayer)
Set Skill4_Ability_ForceofPain = Force of Pain (Darkslayer)

=<3> Enjoy that!
Changelog

=> Improved Screenshot 16:12, 3rd Apr 2011
Sorry for bad english =/

Keywords:
Dark, Slayer, Blink, Strike, Force, Power, Seal, Magical, Charge, Death, Assassin, Hunter, Bounty, Follower, Deadly, Fatal, Pain.
Contents

Gogonnash - Darkslayer [GUI] (Map)

Reviews
13:55, 2nd Jun 2011 Maker: Approved You could store the unit's handle into an integer variable and then use the variable instead of repeatedly calling Key(Triggering unit) or Key(Picked unit). You store the triggering unit into a variable, so use...

Moderator

M

Moderator

13:55, 2nd Jun 2011
Maker: Approved
You could store the unit's handle into an integer variable and then use the variable instead of repeatedly calling Key(Triggering unit) or Key(Picked unit).
You store the triggering unit into a variable, so use the variable instead of calling Triggering unit.
Do this only after you remove a unit from the group, not during every loop:
  • (Number of units in Skill1_Caster_Group) Equal to 0
You could hide the floating texts for players that do not have vision over the position.
 
Triggers


  • 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.00, using font size 12.00, color (100.00%, 0.00%, 100.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 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.00, using font size 12.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 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


  • 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.00, using font size 12.00, color (100.00%, 0.00%, 100.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 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.00, using font size 12.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 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.00 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.00, using font size 8.00, color (100.00%, 0.00%, 100.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 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.00, using font size 12.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 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 (Load 5 of (Key (Triggering unit)) in Skill4_HashtableIf 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.00 0.00 1.00) with 1.00 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.00, using font size 12.00, color (100.00%, 0.00%, 100.00%), and 0.00% 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 = (Load 5 of (Key (Picked unit)) in Skill4_HashtableIf 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.00
                  • 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_HashtableIf 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.00, using font size 12.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 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_HashtableIf 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.00, using font size 12.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 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_HashtableIf 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.00, using font size 12.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 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

 
Level 11
Joined
Sep 30, 2009
Messages
697
Post the triggers in the spell description and not in another post

- You should not use "A unit is attacked" for your third spell.

- The tooltips have some grammar fails which make it really hard to understand what the spell does
 
I'm more of a Magtheridon guy ;)

  • Lightning - Move Skill4_E_Light to source Skill4_E_Target_Loc and target Skill4_E_Caster_Loc
It would be much better to move lightning with custom scripts cuz they're a thousand times faster.

  • Create a Drain lightning effect from source Skill4_Target_Loc to target Skill4_Caster_Loc
Same here. For this, use:

  • Custom script: call AddLightningEx("DRAB", true, GetLocationX(udg_Skill4_Target_Loc), GetLocationY(udg_Skill4_Target_Loc), GetLocationZ(udg_Skill4_Target_Loc), GetLocationX(udg_Skill4_Caster_Loc), GetLocationY(udg_Skill4_Caster_Loc), GetLocationZ(udg_Skill4_Caster_Loc))
For moving lightning, well, i'll edit this post and tell you in a minute.

EDIT:

On second thought, for adding the lightning, do this:

JASS:
Custom script: set bj_lastCreatedLightning = AddLightningEx("DRAB", true, GetLocationX(udg_Skill4_Target_Loc), GetLocationY(udg_Skill4_Target_Loc), GetLocationZ(udg_Skill4_Target_Loc), GetLocationX(udg_Skill4_Caster_Loc), GetLocationY(udg_Skill4_Caster_Loc), GetLocationZ(udg_Skill4_Caster_Loc))

(Sorry. Trigger tags made it look wierd lol)
Then set the lightning variable to (Last Created Lightning)

For moving the lightning, do this:

  • Custom script: call MoveLightningEx(udg_Skill4_E_Light, true, GetLocationX(udg_Skill4_Target_Loc), GetLocationY(udg_Skill4_Target_Loc), GetLocationZ(udg_Skill4_Target_Loc), GetLocationX(udg_Skill4_Caster_Loc), GetLocationY(udg_Skill4_Caster_Loc), GetLocationZ(udg_Skill4_Caster_Loc))
 
Level 19
Joined
Feb 4, 2009
Messages
1,313
Post the triggers in the spell description and not in another post

when I made spells (years ago) the desciption editor was quite retarded so everyone wrote the trigger stuff in the first post

  • Lightning - Move Skill4_E_Light to source Skill4_E_Target_Loc and target Skill4_E_Caster_Loc
It would be much better to move lightning with custom scripts cuz they're a thousand times faster.

  • Create a Drain lightning effect from source Skill4_Target_Loc to target Skill4_Caster_Loc
Same here. For this, use:

  • Custom script: call AddLightningEx("DRAB", true, GetLocationX(udg_Skill4_Target_Loc), GetLocationY(udg_Skill4_Target_Loc), GetLocationZ(udg_Skill4_Target_Loc), GetLocationX(udg_Skill4_Caster_Loc), GetLocationY(udg_Skill4_Caster_Loc), GetLocationZ(udg_Skill4_Caster_Loc))
For moving lightning, well, i'll edit this post and tell you in a minute.

EDIT:

On second thought, for adding the lightning, do this:

JASS:
Custom script: set bj_lastCreatedLightning = AddLightningEx("DRAB", true, GetLocationX(udg_Skill4_Target_Loc), GetLocationY(udg_Skill4_Target_Loc), GetLocationZ(udg_Skill4_Target_Loc), GetLocationX(udg_Skill4_Caster_Loc), GetLocationY(udg_Skill4_Caster_Loc), GetLocationZ(udg_Skill4_Caster_Loc))
(Sorry. Trigger tags made it look wierd lol)
Then set the lightning variable to (Last Created Lightning)

For moving the lightning, do this:

  • Custom script: call MoveLightningEx(udg_Skill4_E_Light, true, GetLocationX(udg_Skill4_Target_Loc), GetLocationY(udg_Skill4_Target_Loc), GetLocationZ(udg_Skill4_Target_Loc), GetLocationX(udg_Skill4_Caster_Loc), GetLocationY(udg_Skill4_Caster_Loc), GetLocationZ(udg_Skill4_Caster_Loc))

that's wrong
the GUI function compiles to pretty much the same and is not much slower
you probably mistook this with unit movement
the reason why people are using custom script for lightning movement is because the GUI function attaches the lightning to the ground and not the center of the unit
with the JASS function you can add like 35.00 and it will look better
also using coordinates over locations improves performance
if you use locations and have to call GetLocationXYZ all the time it is no way better
 
that's wrong
the GUI function compiles to pretty much the same and is not much slower
you probably mistook this with unit movement
the reason why people are using custom script for lightning movement is because the GUI function attaches the lightning to the ground and not the center of the unit
with the JASS function you can add like 35.00 and it will look better
also using coordinates over locations improves performance
if you use locations and have to call GetLocationXYZ all the time it is no way better

Thanks for clearing that up. I was just about to edit my post (not really) when i realized that i mistook it for UnitMovement. Unit Movement is 10x slower.

We use the custom script to give height too.

+rep for stoping me from confusing him lol
 
Level 10
Joined
Apr 25, 2009
Messages
296
Very cool spells.

Decrease the damage on Force of Pain ability. 700 maximum damage is way too much. Same goes for dark conversion, 300% of agility is... alot.

I really wish the passive ability fast hands was a different ability, it seems... repeated. That's an opinion though.


I didn't check the coding. Overall very nice effects. I vote for approval, when it shows back up... And 5/5.
 
Last edited:
Level 13
Joined
Jun 9, 2009
Messages
1,129
1 THING, you use abil_spell 1 which is totaly stupid in my opinion.
"Set Skill1_Ability_DarkConversion = Dark Conversion (Darkslayer)
Set Skill2_Ability_MagicalSeal = Magical Seal (Darkslayer)
Set Skill3_Ability_MagicalSeal = Magical Seal (Darkslayer)
Set Skill4_Ability_ForceofPain = Force of Pain (Darkslayer)"
and in much more places. :D
good spells :)
 
1 THING, you use abil_spell 1 which is totaly stupid in my opinion.
"Set Skill1_Ability_DarkConversion = Dark Conversion (Darkslayer)
Set Skill2_Ability_MagicalSeal = Magical Seal (Darkslayer)
Set Skill3_Ability_MagicalSeal = Magical Seal (Darkslayer)
Set Skill4_Ability_ForceofPain = Force of Pain (Darkslayer)"
and in much more places. :D
good spells :)

This is to make the spell easier to implement.
If you do not like is so delete...
 
Top