• 🏆 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!

Elune's Spellpack v1.01b

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
This is part of a series of spells I will be making, they are mostly basic GUI, thing is I know some people have trouble coming up with ideas for spells so I decided to pick a theme and make a little spellpack related to that theme, this is my first spellpack ever so don't expect anything crazy. Hopefully I will do some rad stuff in the future, it is all about practice!

Elune's Wrath
The priestess calls upon The Elune's owls to aid her in battle, first hit deals minor damage and then everytime an owl hits the target it will deal more damage plus the hero's raw agility.
Level 1 - 45 initial, 80 per wave and 3 owls.
Level 2 - 85 initial, 160 per wave and 6 owls.
Level 3 - 125 initial, 240 per wave and 9 owls.

  • Events
    • Unit - A unit Starts the effect of an ability
  • Conditions
    • (Ability being cast) Equal to Elune's Wrath
  • Actions
    • -------- Index starts --------
    • -------- turning the loop trigger on --------
    • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      • If - Conditions
        • IndexSize Equal to 0
      • Then - Actions
        • Trigger - Turn on EWLoop <gen>
      • Else - Actions
    • -------- Increase the index size --------
    • Set IndexSize = (IndexSize + 1)
    • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      • If - Conditions
        • IndexSize Greater than IndexMaxSize
      • Then - Actions
        • Set Index[IndexSize] = IndexSize
        • Set IndexMaxSize = IndexSize
      • Else - Actions
    • -------- index ends --------
    • Set CurrentIndex = Index[IndexSize]
    • -------- This first variable sets the location of the targeted unit. --------
    • Set EWTargetPoint1[CurrentIndex] = (Position of (Target unit of ability being cast))
    • -------- Now we set the targeted unit. --------
    • Set EWTargeted[CurrentIndex] = (Target unit of ability being cast)
    • -------- The unit that is casting the spell. --------
    • Set EWCaster[CurrentIndex] = (Triggering unit)
    • -------- This is just eye candy. --------
    • -------- The special effect that the targeted unit is going to have. --------
    • Special Effect - Create a special effect attached to the overhead of EWTargeted[CurrentIndex] using Abilities\Spells\NightElf\Starfall\StarfallCaster.mdl
    • Set EWSFXTarget[CurrentIndex] = (Last created special effect)
    • -------- More eye candy. --------
    • -------- The special effect that the caster is going to have. --------
    • Special Effect - Create a special effect attached to the overhead of EWCaster[CurrentIndex] using units\nightelf\OwlSCOUT\OwlSCOUT.mdl
    • Set EWSFXCaster[CurrentIndex] = (Last created special effect)
    • -------- And now we start setting up he waves and damage on the spell. --------
    • -------- This is the wave count formula, it divides the hero's agiliy for 10 and then uses the product of that division as the wave amount. --------
    • Set EWWaves[CurrentIndex] = (3 x (Level of (Ability being cast) for (Triggering unit)))
    • -------- This is the raw damage that each wave is going to deal. --------
    • Set EWDmgPerWave[CurrentIndex] = ((80 x (Level of (Ability being cast) for EWCaster[CurrentIndex])) + (Agility of EWCaster[CurrentIndex] (Include bonuses)))
  • Events
    • Time - Every 0.20 seconds of game time
  • Conditions
  • Actions
    • For each (Integer IndexLoop) from 1 to IndexSize, do (Actions)
      • Loop - Actions
        • Set CurrentIndex = Index[IndexLoop]
        • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • (Real(EWWaves[CurrentIndex])) Greater than 0.00
          • Then - Actions
            • Set EWTargetPoint1[CurrentIndex] = (Position of EWTargeted[CurrentIndex])
            • Set EWTargeted[CurrentIndex] = EWTargeted[CurrentIndex]
            • Set EWCaster[CurrentIndex] = EWCaster[CurrentIndex]
            • -------- Every 0.20 seconds a new wave is going to come down, this variable allows the trigger to know that a wave just went off. --------
            • -------- that way the spell actually stops, if you remove this variable the spell will go on forever. --------
            • Set EWWaves[CurrentIndex] = (EWWaves[CurrentIndex] - 1)
            • Set EWRandomLoc[CurrentIndex] = (EWTargetPoint1[CurrentIndex] offset by 400.00 towards (Random angle) degrees)
            • -------- We create the dummy a few inches away from the targeted unit. make sure you set this to elune's wrath unit --------
            • Unit - Create 1 Elune's Wrath for (Owner of EWCaster[CurrentIndex]) at EWRandomLoc[CurrentIndex] facing EWTargetPoint1[CurrentIndex]
            • -------- More eye candy --------
            • -------- This is the SFX that is going to appear when the unit is created, like a spawning effect. --------
            • Special Effect - Create a special effect attached to the chest of (Last created unit) using Abilities\Weapons\DemonHunterMissile\DemonHunterMissile.mdl
            • Special Effect - Destroy (Last created special effect)
            • -------- And more eye candy --------
            • -------- This SFX is the one that will follow the unit until it hits it target. --------
            • Special Effect - Create a special effect attached to the origin of (Last created unit) using Abilities\Weapons\DragonHawkMissile\DragonHawkMissile.mdl
            • Special Effect - Destroy (Last created special effect)
            • -------- Lowering the flying height of the spawned unit. --------
            • Animation - Change (Last created unit) flying height to 100.00 at 900.00
            • -------- Ordering the unit to move towards the targetd unit. --------
            • Unit - Order (Last created unit) to Move To EWTargetPoint1[CurrentIndex]
            • -------- Adding a expiration timer to the spawned unit, that way the unit is actually removed and it does not stay in-game forever. --------
            • Unit - Make (Last created unit) Explode on death
            • Unit - Add a 0.80 second Generic expiration timer to (Last created unit)
            • Unit - Make (Last created unit) Explode on death
            • -------- This is the ending part of the spell --------
            • -------- Eye candy! --------
            • -------- This is the explosion that the unit is going to make when it strikes the targeted unit. --------
            • Special Effect - Create a special effect attached to the origin of (Last created unit) using Abilities\Spells\NightElf\Blink\BlinkCaster.mdl
            • Special Effect - Destroy (Last created special effect)
            • -------- And finally, we damage the unit. --------
            • Unit - Cause EWCaster[CurrentIndex] to damage EWTargeted[CurrentIndex], dealing (Real(EWDmgPerWave[CurrentIndex])) damage of attack type Spells and damage type Universal
            • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • If - Conditions
                • EWWaves[CurrentIndex] Equal to 0
              • Then - Actions
                • -------- Destroying the caster's SFX and the targeted units SFX. --------
                • Special Effect - Destroy EWSFXTarget[CurrentIndex]
                • Special Effect - Destroy EWSFXCaster[CurrentIndex]
                • Custom script: call RemoveLocation (udg_EWTargetPoint1[udg_CurrentIndex])
                • Custom script: call RemoveLocation (udg_EWRandomLoc[udg_CurrentIndex])
              • Else - Actions
          • Else - Actions
            • -------- IMPORTANT SYSTEM PART START --------
            • -------- RecycleIndex --------
            • Set Index[IndexLoop] = Index[IndexSize]
            • Set Index[IndexSize] = CurrentIndex
            • Set IndexSize = (IndexSize - 1)
            • Set IndexLoop = (IndexLoop - 1)
            • -------- Turn the trigger again off if the index_size is below 0... --------
            • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • If - Conditions
                • IndexSize Equal to 0
              • Then - Actions
                • Trigger - Turn off (This trigger)
                • Skip remaining actions
              • Else - Actions
Elune's Savior
The Priestess calls down a giant owl to deal massive damage on a targeted location were she also casts small enchanting magic overtime until the owl hits. Each wave of magic deals initial damage and then burns enemies for 5 seconds.
Level 1 - 15 wave damage, 300 damage on impact and 50% mov/attack speed reduction.
Level 2 - 25 wave damage, 500 damage on impact and 100% mov/attack speed reduction.
Level 3 - 35 wave damage, 700 damage on impact and 150% mov/attack speed reduction.

  • FOEExecute
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Elune's Savior
    • Actions
      • -------- Making sure your servant is special, the only one. --------
      • Set FOEAmount = (FOEAmount + 1)
      • -------- The maximum amount of servants allowed in-game at the same time. --------
      • Set FOEAmountMax = 696969
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • FOEAmount Greater than FOEAmountMax
        • Then - Actions
          • Set FOEAmount = 1
        • Else - Actions
      • -------- The unit variables --------
      • Set FOECaster[FOEAmount] = (Casting unit)
      • Set FOETargetedArea = (Target point of ability being cast)
      • -------- Creating the unit, make sure u change this to the elune's savior unit --------
      • Unit - Create 1 Elune's Savior for (Owner of FOECaster[FOEAmount]) at (FOETargetedArea offset by 900.00 towards (Random angle) degrees) facing FOETargetedArea
      • Set FOEUnit[FOEAmount] = (Last created unit)
      • Animation - Change (Last created unit) flying height to 100.00 at 200.00
      • Animation - Change (Last created unit)'s size to (200.00%, 200.00%, 200.00%) of its original size
      • Unit - Order (Last created unit) to Move To FOETargetedArea
      • Unit - Add a 3.60 second Generic expiration timer to (Last created unit)
      • Custom script: call RemoveLocation (udg_FOETargetedArea)
  • FOELoop
    • Events
      • Unit - A unit Dies
    • Conditions
      • (Unit-type of (Dying unit)) Equal to Elune's Savior
    • Actions
      • Set FOEAoe[FOEAmount] = (Position of (Dying unit))
      • -------- set the created unit to dummy --------
      • Unit - Create 1 Dummy for (Owner of (Dying unit)) at FOEAoe[FOEAmount] facing Default building facing degrees
      • -------- here you set the special effect you want when the unit reaches its point --------
      • Special Effect - Create a special effect at (Position of (Last created unit)) using Objects\Spawnmodels\NightElf\NEDeathMedium\NEDeath.mdl
      • Special Effect - Destroy (Last created special effect)
      • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
      • -------- here set FOESlow (dummy) as the spell tha will be astedwhen the unit reaches its point --------
      • Unit - Add FOESlow (DUMMY) to (Last created unit)
      • Unit - Order (Last created unit) to Human Mountain King - Thunder Clap
      • Custom script: call RemoveLocation (udg_FOEAoe[udg_FOEAmount])
Elune's Servant
Fires elune's servant that when it hits it deals 100 damage + agility of the hero multiplied by the level of the ability, it also slows movement and attack speed of units that hits.
Level 1 - Agility x 1 and 50% mov and attack speed.
Level 2 - Agility x 2.and 50% mov and attack speed
Level 3 - Agility x 3 and 50% mov and attack speed.

  • ESExecute
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Elune's Servant
    • Actions
      • -------- Making sure your servant is special, the only one. --------
      • Set ESCounts = (ESCounts + 1)
      • -------- The maximum amount of servants allowed in-game at the same time. --------
      • Set ESCountMax = 696969
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ESCounts Greater than ESCountMax
        • Then - Actions
          • Set ESCounts = 1
        • Else - Actions
      • -------- The unit variables --------
      • Set ESCaster[ESCounts] = (Casting unit)
      • -------- The damage multiplier --------
      • Set ESDamage[ESCounts] = (100 + ((Agility of ESCaster[ESCounts] (Include bonuses)) x (Level of Elune's Servant for ESCaster[ESCounts])))
      • Set ESTargetedArea = (Target point of ability being cast)
      • Set ESAngle = (Angle from ESCastersLocation to ESTargetedArea)
      • Set ESCastersLocation = (Position of ESCaster[ESCounts])
      • -------- The duration of the servant, how long it will be on the air. --------
      • Set ESDuration[ESCounts] = (4 + (Level of Elune's Servant for ESCaster[ESCounts]))
      • -------- Creating the unit, make sure u change this to the deadly precision unit --------
      • Unit - Create 1 Elune's Servant for (Owner of ESCaster[ESCounts]) at ESCastersLocation facing (Facing of ESCaster[ESCounts]) degrees
      • Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
      • Unit Group - Add (Last created unit) to ESStartGroup
      • Unit - Set the custom value of (Last created unit) to ESCounts
      • Trigger - Turn on ESLoop <gen>
      • Custom script: call RemoveLocation (udg_ESCastersLocation)
      • Custom script: call RemoveLocation (udg_ESTargetedArea)
  • ESLoop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in ESStartGroup and do (Actions)
        • Loop - Actions
          • Set ESValue = (Custom value of (Picked unit))
          • Set ESDummy = (Position of (Picked unit))
          • -------- On this next action you can change the speed, i recomend you leave it as it is, because it might get sloppy --------
          • Set ESMov = (ESDummy offset by 20.00 towards (Facing of ESCaster[ESCounts]) degrees)
          • Unit - Move (Picked unit) instantly to ESMov, facing (Facing of ESCaster[ESCounts]) degrees
          • Set ESGroup = (Units within 150.00 of ESMov matching ((((Matching unit) is A structure) Not equal to True) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of ESCaster[ESValue])) Equal to True))))
          • Unit Group - Pick every unit in ESGroup and do (Actions)
            • Loop - Actions
              • -------- The SFX when it hits --------
              • Special Effect - Create a special effect at (Position of (Picked unit)) using Abilities\Spells\NightElf\Blink\BlinkCaster.mdl
              • Special Effect - Destroy (Last created special effect)
              • Unit - Cause ESCaster[ESCounts] to damage (Picked unit), dealing (Real(ESDamage[ESCounts])) damage of attack type Pierce and damage type Normal
              • -------- Down here set up the dummy to cast the slow --------
              • Set ESTargetLoc[ESCounts] = (Position of (Picked unit))
              • -------- set the dummy unit here --------
              • Unit - Create 1 Dummy for (Owner of ESCaster[ESCounts]) at ESTargetLoc[ESCounts] facing Default building facing degrees
              • -------- set DS Clap here --------
              • Unit - Add DS Clap (DUMMY) to (Last created unit)
              • Unit - Add a (Real(ESDuration[ESCounts])) second Generic expiration timer to (Last created unit)
              • Unit - Order (Last created unit) to Human Mountain King - Thunder Clap
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Or - Any (Conditions) are true
                • Conditions
                  • (Number of units in ESGroup) Greater than 0
            • Then - Actions
              • Special Effect - Create a special effect at (Position of (Picked unit)) using Abilities\Spells\Undead\ReplenishMana\ReplenishManaCaster.mdl
              • Unit - Kill (Picked unit)
              • Unit Group - Remove (Picked unit) from ESStartGroup
            • Else - Actions
          • -------- Cleaning some leaks --------
          • Custom script: call RemoveLocation (udg_ESTargetLoc[udg_ESCounts])
          • Custom script: call RemoveLocation (udg_ESDummy)
          • Custom script: call RemoveLocation (udg_ESMov)
          • Custom script: call DestroyGroup (udg_ESGroup)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Number of units in ESStartGroup) Equal to 0
        • Then - Actions
          • Trigger - Turn off (This trigger)
        • Else - Actions
Feedback is more than welcome on my first spellpack, I will be adding/fixing spells monthly if not biweekly.

Keywords:
elune, night elf, owl, heavenly, priestess of the moon, mirana, arrow, ultimate, spellpack
Contents

Elune's Spellback (Map)

Reviews
12th Dec 2015 IcemanBo: Too long as NeedsFix. Rejected. Elune's Spellpack v1.01b | Reviewed by Maker | 28th May 2013 NEEDS FIX Use dynamic indexing for Elune's Servant and Elune's Savior ES Loop has location leaks, so does...

Moderator

M

Moderator

12th Dec 2015
IcemanBo: Too long as NeedsFix. Rejected.


Elune's Spellpack v1.01b | Reviewed by Maker | 28th May 2013
NEEDS FIX


126248-albums6177-picture66522.png


  • Use dynamic indexing for Elune's Servant and Elune's Savior
  • ES Loop has location leaks, so does FOELoop
  • Don't check if the group is empty every 0.03 seconds in ES Loop
  • Don't set the custom value of the dummies,
    use a hashtable or an array instead
126248-albums6177-picture66523.png


  • The looping triggers should be initially off
  • You are setting the last created unit to explode twice
    in EWLoop
  • Damage per wave should be real not integer
  • This should be integer comparison
    • (Real(EWWaves[CurrentIndex])) Greater than 0.00
  • You are checking EWWaves == 0 twice, only check it once.
    Deindex when you destroy the effects
126248-albums6177-picture66524.png

[tr]
 
Level 8
Joined
Apr 16, 2013
Messages
351
I'll post it for you :
  • EWExecute
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Elune's Wrath
    • Actions
      • -------- Index starts --------
      • -------- turning the loop trigger on --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • IndexSize Equal to 0
        • Then - Actions
          • Trigger - Turn on EWLoop <gen>
        • Else - Actions
      • -------- Increase the index size --------
      • Set IndexSize = (IndexSize + 1)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • IndexSize Greater than IndexMaxSize
        • Then - Actions
          • Set Index[IndexSize] = IndexSize
          • Set IndexMaxSize = IndexSize
        • Else - Actions
      • -------- index ends --------
      • Set CurrentIndex = Index[IndexSize]
      • -------- This first variable sets the location of the targeted unit. --------
      • Set EWTargetPoint1[CurrentIndex] = (Position of (Target unit of ability being cast))
      • -------- Now we set the targeted unit. --------
      • Set EWTargeted[CurrentIndex] = (Target unit of ability being cast)
      • -------- The unit that is casting the spell. --------
      • Set EWCaster[CurrentIndex] = (Triggering unit)
      • -------- This is just eye candy. --------
      • -------- The special effect that the targeted unit is going to have. --------
      • Special Effect - Create a special effect attached to the overhead of EWTargeted[CurrentIndex] using Abilities\Spells\NightElf\Starfall\StarfallCaster.mdl
      • Set EWSFXTarget[CurrentIndex] = (Last created special effect)
      • -------- More eye candy. --------
      • -------- The special effect that the caster is going to have. --------
      • Special Effect - Create a special effect attached to the overhead of EWCaster[CurrentIndex] using units\nightelf\OwlSCOUT\OwlSCOUT.mdl
      • Set EWSFXCaster[CurrentIndex] = (Last created special effect)
      • -------- Now we pause the unit to cause a like-stun moment. --------
      • Unit - Pause EWTargeted[CurrentIndex]
      • -------- And now we start setting up he waves and damage on the spell. --------
      • -------- This is the wave count formula, it divides the hero's agiliy for 10 and then uses the product of that division as the wave amount. --------
      • Set EWWaves[CurrentIndex] = (3 x (Level of (Ability being cast) for (Triggering unit)))
      • -------- This is the raw damage that each wave is going to deal. --------
      • Set EWDmgPerWave[CurrentIndex] = ((80 x (Level of (Ability being cast) for EWCaster[CurrentIndex])) + (Agility of EWCaster[CurrentIndex] (Include bonuses)))
  • DSLoop
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in DSStartGroup and do (Actions)
        • Loop - Actions
          • Set DSValue = (Custom value of (Picked unit))
          • Set DSDummy = (Position of (Picked unit))
          • -------- On this next action you can change the speed, i recomend you leave it as it is, because it might get sloppy --------
          • Set DSMov = (DSDummy offset by 75.00 towards (Facing of DSCaster[DSCounts]) degrees)
          • Unit - Move (Picked unit) instantly to DSMov
          • Set DSGroup = (Units within 150.00 of DSMov matching ((((Matching unit) is A structure) Not equal to True) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of DSCaster[DSValue])) Equal to True))))
          • Unit Group - Pick every unit in DSGroup and do (Actions)
            • Loop - Actions
              • -------- The SFX when it hits --------
              • Special Effect - Create a special effect at (Position of (Picked unit)) using Objects\Spawnmodels\Undead\ImpaleTargetDust\ImpaleTargetDust.mdl
              • Special Effect - Destroy (Last created special effect)
              • Unit - Cause DSCaster[DSCounts] to damage (Picked unit), dealing (Real(DSDamage[DSCounts])) damage of attack type Pierce and damage type Normal
              • -------- Down here set up the dummy to cast the slow --------
              • Unit - Create 1 Dummy for (Owner of DSCaster[DSCounts]) at (Position of (Picked unit)) facing Default building facing degrees
              • Unit - Add DS Clap to (Last created unit)
              • Unit - Order (Last created unit) to Human Mountain King - Thunder Clap
              • Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Or - Any (Conditions) are true
                • Conditions
                  • (Number of units in DSGroup) Greater than 0
            • Then - Actions
              • Unit - Kill (Picked unit)
              • Unit Group - Remove (Picked unit) from DSStartGroup
            • Else - Actions
          • -------- Cleaning some leaks --------
          • Custom script: call RemoveLocation (udg_DSDummy)
          • Custom script: call RemoveLocation (udg_DSMov)
          • Custom script: call DestroyGroup (udg_DSGroup)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Number of units in DSStartGroup) Equal to 0
        • Then - Actions
          • Trigger - Turn off (This trigger)
        • Else - Actions
  • DSExecute
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Deadly Precision
    • Actions
      • -------- Making sure your arrow is special, the only one. --------
      • Set DSCounts = (DSCounts + 1)
      • -------- The maximum amount of arrows allowed in-game at the same time. --------
      • Set DSCountMax = 8191
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • DSCounts Greater than DSCountMax
        • Then - Actions
          • Set DSCounts = 1
        • Else - Actions
      • -------- The unit variables --------
      • Set DSCaster[DSCounts] = (Casting unit)
      • Set DSDamage[DSCounts] = (100 + ((Agility of DSCaster[DSCounts] (Include bonuses)) x (Level of Deadly Precision for DSCaster[DSCounts])))
      • Set DSTargetedArea = (Target point of ability being cast)
      • Set DSAngle = (Angle from DSCastersLocation to DSTargetedArea)
      • Set DSCastersLocation = (Position of DSCaster[DSCounts])
      • -------- Creating the unit, make sure u change this to the deadly precision unit --------
      • Unit - Create 1 Deadly Precision for (Owner of DSCaster[DSCounts]) at DSCastersLocation facing (Facing of DSCaster[DSCounts]) degrees
      • Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
      • Unit Group - Add (Last created unit) to DSStartGroup
      • Unit - Set the custom value of (Last created unit) to DSCounts
      • Trigger - Turn on DSLoop <gen>
      • Custom script: call RemoveLocation (udg_DSCastersLocation)
      • Custom script: call RemoveLocation (udg_DSTargetedArea)
  • DSLoop
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in DSStartGroup and do (Actions)
        • Loop - Actions
          • Set DSValue = (Custom value of (Picked unit))
          • Set DSDummy = (Position of (Picked unit))
          • -------- On this next action you can change the speed, i recomend you leave it as it is, because it might get sloppy --------
          • Set DSMov = (DSDummy offset by 75.00 towards (Facing of DSCaster[DSCounts]) degrees)
          • Unit - Move (Picked unit) instantly to DSMov
          • Set DSGroup = (Units within 150.00 of DSMov matching ((((Matching unit) is A structure) Not equal to True) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of DSCaster[DSValue])) Equal to True))))
          • Unit Group - Pick every unit in DSGroup and do (Actions)
            • Loop - Actions
              • -------- The SFX when it hits --------
              • Special Effect - Create a special effect at (Position of (Picked unit)) using Objects\Spawnmodels\Undead\ImpaleTargetDust\ImpaleTargetDust.mdl
              • Special Effect - Destroy (Last created special effect)
              • Unit - Cause DSCaster[DSCounts] to damage (Picked unit), dealing (Real(DSDamage[DSCounts])) damage of attack type Pierce and damage type Normal
              • -------- Down here set up the dummy to cast the slow --------
              • Unit - Create 1 Dummy for (Owner of DSCaster[DSCounts]) at (Position of (Picked unit)) facing Default building facing degrees
              • Unit - Add DS Clap to (Last created unit)
              • Unit - Order (Last created unit) to Human Mountain King - Thunder Clap
              • Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Or - Any (Conditions) are true
                • Conditions
                  • (Number of units in DSGroup) Greater than 0
            • Then - Actions
              • Unit - Kill (Picked unit)
              • Unit Group - Remove (Picked unit) from DSStartGroup
            • Else - Actions
          • -------- Cleaning some leaks --------
          • Custom script: call RemoveLocation (udg_DSDummy)
          • Custom script: call RemoveLocation (udg_DSMov)
          • Custom script: call DestroyGroup (udg_DSGroup)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Number of units in DSStartGroup) Equal to 0
        • Then - Actions
          • Trigger - Turn off (This trigger)
        • Else - Actions
 
Level 9
Joined
Mar 31, 2012
Messages
205
Its been updated, removed a bunh of leaks and stuff that was basicly useless, also added another spell and changed the deadly precision spell completely to a different one since there are a lot of arrow spells like that in the hive already.

If you notice somethin' please let me know, again this is my first spellpack so it might be a little sloppy :B!

One more thing, i can't figure out how to post them triggers without spending 3 hours looking at triggers then editing the post and so on, it is too hard and I am really low on time, might do it in the future weeks, sorry! If anybody has a way to post them faster please let me know! A screenshot perhaps?
 
Top