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

[Trigger] Diablo III locust swarm.

Status
Not open for further replies.
Level 16
Joined
Jun 25, 2008
Messages
1,043
So I've been working on a remake of the Diablo III locust swarm, that's in the gameplay trailer from blizzard.

I figured out it does this:
  • Hits 3 targets. (Decided to turn this down to 1, since I couldn't find a way to locate whom the targets were when using forked lightning.. :p)
  • Bounces to another target.
  • Deals damage and envenoms the target, dealing DPS damage.

I did a trigger that seems to work perfectly fine, except my dummy unit refuses to cast shadow strike, even though I'm sure I based it on the right spell..
AND, perhaps the most important part, after it has been cast, for some reason, the spell bugs when I cast it again.



So what i need help with is this:


  1. Why doesn't the dummy unit cast shadow strike?
  2. Why does the spell bug? (at second cast, it bounced like 1-2 times, third cast, it doesn't even hit the target)
  3. Any leaks that you could spot?
  4. Would it be MUI? (I suck on this part.. :D If it isn't, how could i make it? :E)
Hopefully I will get some help here :)



Edit
I believe the spell is mostly solved now, however I'd still want someone to look into it, to see that I didn't miss any leaks, and checking that it's MUI.
  • Locust Swarm
    • Events
      • Unit - A unit Finishes casting an ability
    • Conditions
      • (Ability being cast) Equal to Locust Swarm (New)
    • Actions
      • Set Maintarget = (Target unit of ability being cast)
      • Set Bounces = ((Level of Locust Swarm (New) for (Casting unit)) + 3)
      • Set Locustlocation = (Position of (Casting unit))
      • Unit - Create 1 LocustProjectile for (Owner of (Casting unit)) at Locustlocation facing Default building facing degrees
      • Custom script: call RemoveLocation(udg_Locustlocation)
      • Set Locust = (Last created unit)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Bounces Equal to 4
        • Then - Actions
          • Unit Group - Add Maintarget to Bouncedunit
          • Set Locustlocation = (Position of Maintarget)
          • Unit - Move Locust instantly to Locustlocation
          • Wait 0.25 seconds
          • Unit - Create 1 Caster Dummy for (Owner of (Casting unit)) at Locustlocation facing Default building facing degrees
          • Custom script: call RemoveLocation(udg_Locustlocation)
          • Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
          • Unit - Order (Last created unit) to Night Elf Warden - Shadow Strike Maintarget
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Number of units in (Units within 550.00 of (Position of Locust) matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) or ((((Matching unit) is in Bouncedunit) Equal to False) and (((Matching unit) belongs Equal to 0
            • Then - Actions
              • Unit - Kill Locust
              • Custom script: call DestroyGroup(udg_Bouncedunit)
              • Skip remaining actions
            • Else - Actions
          • Set NextTarget = (Random unit from (Units within 550.00 of (Position of Locust) matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) belongs to an enemy of (Owner of (Casting unit))) Equal to True) and ((((Unit-type of (Matching unit)) is An Anci
          • Unit Group - Add NextTarget to Bouncedunit
          • Set TargetLocation = (Position of NextTarget)
          • Unit - Move Locust instantly to TargetLocation
          • Wait 0.25 seconds
          • Custom script: call RemoveLocation(udg_TargetLocation)
          • Set Locustlocation = (Position of (Casting unit))
          • Unit - Create 1 Caster Dummy for (Owner of (Casting unit)) at Locustlocation facing Default building facing degrees
          • Custom script: call RemoveLocation(udg_Locustlocation)
          • Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
          • Unit - Order (Last created unit) to Night Elf Warden - Shadow Strike NextTarget
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Number of units in (Units within 550.00 of (Position of Locust) matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) or ((((Matching unit) is in Bouncedunit) Equal to False) and (((Matching unit) belongs Equal to 0
            • Then - Actions
              • Unit - Kill Locust
              • Custom script: call DestroyGroup(udg_Bouncedunit)
              • Skip remaining actions
            • Else - Actions
          • Set NextTarget = (Random unit from (Units within 550.00 of (Position of Locust) matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) belongs to an enemy of (Owner of (Casting unit))) Equal to True) and ((((Unit-type of (Matching unit)) is An Anci
          • Unit Group - Add NextTarget to Bouncedunit
          • Set TargetLocation = (Position of NextTarget)
          • Unit - Move Locust instantly to TargetLocation
          • Wait 0.25 seconds
          • Custom script: call RemoveLocation(udg_TargetLocation)
          • Set Locustlocation = (Position of (Casting unit))
          • Unit - Create 1 Caster Dummy for (Owner of (Casting unit)) at Locustlocation facing Default building facing degrees
          • Custom script: call RemoveLocation(udg_Locustlocation)
          • Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
          • Unit - Order (Last created unit) to Night Elf Warden - Shadow Strike NextTarget
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Number of units in (Units within 550.00 of (Position of Locust) matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) or ((((Matching unit) is in Bouncedunit) Equal to False) and (((Matching unit) belongs Equal to 0
            • Then - Actions
              • Unit - Kill Locust
              • Custom script: call DestroyGroup(udg_Bouncedunit)
              • Skip remaining actions
            • Else - Actions
          • Set NextTarget = (Random unit from (Units within 550.00 of (Position of Locust) matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) belongs to an enemy of (Owner of (Casting unit))) Equal to True) and ((((Unit-type of (Matching unit)) is An Anci
          • Unit Group - Add NextTarget to Bouncedunit
          • Set TargetLocation = (Position of NextTarget)
          • Unit - Move Locust instantly to TargetLocation
          • Wait 0.25 seconds
          • Custom script: call RemoveLocation(udg_TargetLocation)
          • Set Locustlocation = (Position of (Casting unit))
          • Unit - Create 1 Caster Dummy for (Owner of (Casting unit)) at Locustlocation facing Default building facing degrees
          • Custom script: call RemoveLocation(udg_Locustlocation)
          • Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
          • Unit - Order (Last created unit) to Night Elf Warden - Shadow Strike NextTarget
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Number of units in (Units within 550.00 of (Position of Locust) matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) or ((((Matching unit) is in Bouncedunit) Equal to False) and (((Matching unit) belongs Equal to 0
            • Then - Actions
              • Unit - Kill Locust
              • Custom script: call DestroyGroup(udg_Bouncedunit)
              • Skip remaining actions
            • Else - Actions
          • Set NextTarget = (Random unit from (Units within 550.00 of (Position of Locust) matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) belongs to an enemy of (Owner of (Casting unit))) Equal to True) and ((((Unit-type of (Matching unit)) is An Anci
          • Unit Group - Add NextTarget to Bouncedunit
          • Set TargetLocation = (Position of NextTarget)
          • Unit - Move Locust instantly to TargetLocation
          • Wait 0.25 seconds
          • Custom script: call RemoveLocation(udg_TargetLocation)
          • Set Locustlocation = (Position of (Casting unit))
          • Unit - Create 1 Caster Dummy for (Owner of (Casting unit)) at Locustlocation facing Default building facing degrees
          • Custom script: call RemoveLocation(udg_Locustlocation)
          • Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
          • Unit - Order (Last created unit) to Night Elf Warden - Shadow Strike NextTarget
          • Unit - Kill Locust
          • Custom script: call DestroyGroup(udg_Bouncedunit)
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Bounces Equal to 5
        • Then - Actions
          • Unit Group - Add Maintarget to Bouncedunit
          • Set Locustlocation = (Position of Maintarget)
          • Unit - Move Locust instantly to Locustlocation
          • Wait 0.25 seconds
          • Unit - Create 1 Caster Dummy for (Owner of (Casting unit)) at Locustlocation facing Default building facing degrees
          • Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
          • Unit - Set level of Shadow Strike (dummy) for (Last created unit) to 2
          • Unit - Order (Last created unit) to Night Elf Warden - Shadow Strike Maintarget
          • Custom script: call RemoveLocation(udg_Locustlocation)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Number of units in (Units within 550.00 of (Position of Locust) matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) or ((((Matching unit) is in Bouncedunit) Equal to False) and (((Matching unit) belongs Equal to 0
            • Then - Actions
              • Unit - Kill Locust
              • Custom script: call DestroyGroup(udg_Bouncedunit)
              • Skip remaining actions
            • Else - Actions
          • Set NextTarget = (Random unit from (Units within 550.00 of (Position of Locust) matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) belongs to an enemy of (Owner of (Casting unit))) Equal to True) and ((((Unit-type of (Matching unit)) is An Anci
          • Unit Group - Add NextTarget to Bouncedunit
          • Set TargetLocation = (Position of NextTarget)
          • Unit - Move Locust instantly to TargetLocation
          • Wait 0.25 seconds
          • Custom script: call RemoveLocation(udg_TargetLocation)
          • Set Locustlocation = (Position of (Casting unit))
          • Unit - Create 1 Caster Dummy for (Owner of (Casting unit)) at Locustlocation facing Default building facing degrees
          • Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
          • Unit - Set level of Shadow Strike (dummy) for (Last created unit) to 2
          • Unit - Order (Last created unit) to Night Elf Warden - Shadow Strike NextTarget
          • Custom script: call RemoveLocation(udg_Locustlocation)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Number of units in (Units within 550.00 of (Position of Locust) matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) or ((((Matching unit) is in Bouncedunit) Equal to False) and (((Matching unit) belongs Equal to 0
            • Then - Actions
              • Unit - Kill Locust
              • Custom script: call DestroyGroup(udg_Bouncedunit)
              • Skip remaining actions
            • Else - Actions
          • Set NextTarget = (Random unit from (Units within 550.00 of (Position of Locust) matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) belongs to an enemy of (Owner of (Casting unit))) Equal to True) and ((((Unit-type of (Matching unit)) is An Anci
          • Unit Group - Add NextTarget to Bouncedunit
          • Set TargetLocation = (Position of NextTarget)
          • Unit - Move Locust instantly to TargetLocation
          • Wait 0.25 seconds
          • Custom script: call RemoveLocation(udg_TargetLocation)
          • Set Locustlocation = (Position of (Casting unit))
          • Unit - Create 1 Caster Dummy for (Owner of (Casting unit)) at Locustlocation facing Default building facing degrees
          • Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
          • Unit - Set level of Shadow Strike (dummy) for (Last created unit) to 2
          • Unit - Order (Last created unit) to Night Elf Warden - Shadow Strike NextTarget
          • Custom script: call RemoveLocation(udg_Locustlocation)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Number of units in (Units within 550.00 of (Position of Locust) matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) or ((((Matching unit) is in Bouncedunit) Equal to False) and (((Matching unit) belongs Equal to 0
            • Then - Actions
              • Unit - Kill Locust
              • Custom script: call DestroyGroup(udg_Bouncedunit)
              • Skip remaining actions
            • Else - Actions
          • Set NextTarget = (Random unit from (Units within 550.00 of (Position of Locust) matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) belongs to an enemy of (Owner of (Casting unit))) Equal to True) and ((((Unit-type of (Matching unit)) is An Anci
          • Unit Group - Add NextTarget to Bouncedunit
          • Set TargetLocation = (Position of NextTarget)
          • Unit - Move Locust instantly to TargetLocation
          • Wait 0.25 seconds
          • Custom script: call RemoveLocation(udg_TargetLocation)
          • Set Locustlocation = (Position of (Casting unit))
          • Unit - Create 1 Caster Dummy for (Owner of (Casting unit)) at Locustlocation facing Default building facing degrees
          • Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
          • Unit - Set level of Shadow Strike (dummy) for (Last created unit) to 2
          • Unit - Order (Last created unit) to Night Elf Warden - Shadow Strike NextTarget
          • Custom script: call RemoveLocation(udg_Locustlocation)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Number of units in (Units within 550.00 of (Position of Locust) matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) or ((((Matching unit) is in Bouncedunit) Equal to False) and (((Matching unit) belongs Equal to 0
            • Then - Actions
              • Unit - Kill Locust
              • Custom script: call DestroyGroup(udg_Bouncedunit)
              • Skip remaining actions
            • Else - Actions
          • Set NextTarget = (Random unit from (Units within 550.00 of (Position of Locust) matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) belongs to an enemy of (Owner of (Casting unit))) Equal to True) and ((((Unit-type of (Matching unit)) is An Anci
          • Unit Group - Add NextTarget to Bouncedunit
          • Set TargetLocation = (Position of NextTarget)
          • Unit - Move Locust instantly to TargetLocation
          • Wait 0.25 seconds
          • Custom script: call RemoveLocation(udg_TargetLocation)
          • Set Locustlocation = (Position of (Casting unit))
          • Unit - Create 1 Caster Dummy for (Owner of (Casting unit)) at Locustlocation facing Default building facing degrees
          • Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
          • Unit - Set level of Shadow Strike (dummy) for (Last created unit) to 2
          • Unit - Order (Last created unit) to Night Elf Warden - Shadow Strike NextTarget
          • Custom script: call RemoveLocation(udg_Locustlocation)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Number of units in (Units within 550.00 of (Position of Locust) matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) or ((((Matching unit) is in Bouncedunit) Equal to False) and (((Matching unit) belongs Equal to 0
            • Then - Actions
              • Unit - Kill Locust
              • Custom script: call DestroyGroup(udg_Bouncedunit)
              • Skip remaining actions
            • Else - Actions
          • Set NextTarget = (Random unit from (Units within 550.00 of (Position of Locust) matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) belongs to an enemy of (Owner of (Casting unit))) Equal to True) and ((((Unit-type of (Matching unit)) is An Anci
          • Unit Group - Add NextTarget to Bouncedunit
          • Set TargetLocation = (Position of NextTarget)
          • Unit - Move Locust instantly to TargetLocation
          • Wait 0.25 seconds
          • Custom script: call RemoveLocation(udg_TargetLocation)
          • Set Locustlocation = (Position of (Casting unit))
          • Unit - Create 1 Caster Dummy for (Owner of (Casting unit)) at Locustlocation facing Default building facing degrees
          • Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
          • Unit - Set level of Shadow Strike (dummy) for (Last created unit) to 2
          • Unit - Order (Last created unit) to Night Elf Warden - Shadow Strike NextTarget
          • Custom script: call RemoveLocation(udg_Locustlocation)
          • Unit - Kill Locust
          • Custom script: call DestroyGroup(udg_Bouncedunit)
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Bounces Equal to 6
        • Then - Actions
          • Unit Group - Add Maintarget to Bouncedunit
          • Set Locustlocation = (Position of Maintarget)
          • Unit - Move Locust instantly to Locustlocation
          • Wait 0.25 seconds
          • Unit - Create 1 Caster Dummy for (Owner of (Casting unit)) at Locustlocation facing Default building facing degrees
          • Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
          • Unit - Set level of Shadow Strike (dummy) for (Last created unit) to 3
          • Unit - Order (Last created unit) to Night Elf Warden - Shadow Strike Maintarget
          • Custom script: call RemoveLocation(udg_Locustlocation)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Number of units in (Units within 550.00 of (Position of Locust) matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) or ((((Matching unit) is in Bouncedunit) Equal to False) and (((Matching unit) belongs Equal to 0
            • Then - Actions
              • Unit - Kill Locust
              • Custom script: call DestroyGroup(udg_Bouncedunit)
              • Skip remaining actions
            • Else - Actions
          • Set NextTarget = (Random unit from (Units within 550.00 of (Position of Locust) matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) belongs to an enemy of (Owner of (Casting unit))) Equal to True) and ((((Unit-type of (Matching unit)) is An Anci
          • Unit Group - Add NextTarget to Bouncedunit
          • Set TargetLocation = (Position of NextTarget)
          • Unit - Move Locust instantly to TargetLocation
          • Wait 0.25 seconds
          • Custom script: call RemoveLocation(udg_TargetLocation)
          • Set Locustlocation = (Position of (Casting unit))
          • Unit - Create 1 Caster Dummy for (Owner of (Casting unit)) at Locustlocation facing Default building facing degrees
          • Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
          • Unit - Set level of Shadow Strike (dummy) for (Last created unit) to 3
          • Unit - Order (Last created unit) to Night Elf Warden - Shadow Strike NextTarget
          • Custom script: call RemoveLocation(udg_Locustlocation)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Number of units in (Units within 550.00 of (Position of Locust) matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) or ((((Matching unit) is in Bouncedunit) Equal to False) and (((Matching unit) belongs Equal to 0
            • Then - Actions
              • Unit - Kill Locust
              • Custom script: call DestroyGroup(udg_Bouncedunit)
              • Skip remaining actions
            • Else - Actions
          • Set NextTarget = (Random unit from (Units within 550.00 of (Position of Locust) matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) belongs to an enemy of (Owner of (Casting unit))) Equal to True) and ((((Unit-type of (Matching unit)) is An Anci
          • Unit Group - Add NextTarget to Bouncedunit
          • Set TargetLocation = (Position of NextTarget)
          • Unit - Move Locust instantly to TargetLocation
          • Wait 0.25 seconds
          • Custom script: call RemoveLocation(udg_TargetLocation)
          • Set Locustlocation = (Position of (Casting unit))
          • Unit - Create 1 Caster Dummy for (Owner of (Casting unit)) at Locustlocation facing Default building facing degrees
          • Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
          • Unit - Set level of Shadow Strike (dummy) for (Last created unit) to 3
          • Unit - Order (Last created unit) to Night Elf Warden - Shadow Strike NextTarget
          • Custom script: call RemoveLocation(udg_Locustlocation)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Number of units in (Units within 550.00 of (Position of Locust) matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) or ((((Matching unit) is in Bouncedunit) Equal to False) and (((Matching unit) belongs Equal to 0
            • Then - Actions
              • Unit - Kill Locust
              • Custom script: call DestroyGroup(udg_Bouncedunit)
              • Skip remaining actions
            • Else - Actions
          • Set NextTarget = (Random unit from (Units within 550.00 of (Position of Locust) matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) belongs to an enemy of (Owner of (Casting unit))) Equal to True) and ((((Unit-type of (Matching unit)) is An Anci
          • Unit Group - Add NextTarget to Bouncedunit
          • Set TargetLocation = (Position of NextTarget)
          • Unit - Move Locust instantly to TargetLocation
          • Wait 0.25 seconds
          • Custom script: call RemoveLocation(udg_TargetLocation)
          • Set Locustlocation = (Position of (Casting unit))
          • Unit - Create 1 Caster Dummy for (Owner of (Casting unit)) at Locustlocation facing Default building facing degrees
          • Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
          • Unit - Set level of Shadow Strike (dummy) for (Last created unit) to 3
          • Unit - Order (Last created unit) to Night Elf Warden - Shadow Strike NextTarget
          • Custom script: call RemoveLocation(udg_Locustlocation)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Number of units in (Units within 550.00 of (Position of Locust) matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) or ((((Matching unit) is in Bouncedunit) Equal to False) and (((Matching unit) belongs Equal to 0
            • Then - Actions
              • Unit - Kill Locust
              • Custom script: call DestroyGroup(udg_Bouncedunit)
              • Skip remaining actions
            • Else - Actions
          • Set NextTarget = (Random unit from (Units within 550.00 of (Position of Locust) matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) belongs to an enemy of (Owner of (Casting unit))) Equal to True) and ((((Unit-type of (Matching unit)) is An Anci
          • Unit Group - Add NextTarget to Bouncedunit
          • Set TargetLocation = (Position of NextTarget)
          • Unit - Move Locust instantly to TargetLocation
          • Wait 0.25 seconds
          • Custom script: call RemoveLocation(udg_TargetLocation)
          • Set Locustlocation = (Position of (Casting unit))
          • Unit - Create 1 Caster Dummy for (Owner of (Casting unit)) at Locustlocation facing Default building facing degrees
          • Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
          • Unit - Set level of Shadow Strike (dummy) for (Last created unit) to 3
          • Unit - Order (Last created unit) to Night Elf Warden - Shadow Strike NextTarget
          • Custom script: call RemoveLocation(udg_Locustlocation)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Number of units in (Units within 550.00 of (Position of Locust) matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) or ((((Matching unit) is in Bouncedunit) Equal to False) and (((Matching unit) belongs Equal to 0
            • Then - Actions
              • Unit - Kill Locust
              • Custom script: call DestroyGroup(udg_Bouncedunit)
              • Skip remaining actions
            • Else - Actions
          • Set NextTarget = (Random unit from (Units within 550.00 of (Position of Locust) matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) belongs to an enemy of (Owner of (Casting unit))) Equal to True) and ((((Unit-type of (Matching unit)) is An Anci
          • Unit Group - Add NextTarget to Bouncedunit
          • Set TargetLocation = (Position of NextTarget)
          • Unit - Move Locust instantly to TargetLocation
          • Wait 0.25 seconds
          • Custom script: call RemoveLocation(udg_TargetLocation)
          • Set Locustlocation = (Position of (Casting unit))
          • Unit - Create 1 Caster Dummy for (Owner of (Casting unit)) at Locustlocation facing Default building facing degrees
          • Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
          • Unit - Set level of Shadow Strike (dummy) for (Last created unit) to 3
          • Unit - Order (Last created unit) to Night Elf Warden - Shadow Strike NextTarget
          • Custom script: call RemoveLocation(udg_Locustlocation)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Number of units in (Units within 550.00 of (Position of Locust) matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) or ((((Matching unit) is in Bouncedunit) Equal to False) and (((Matching unit) belongs Equal to 0
            • Then - Actions
              • Unit - Kill Locust
              • Custom script: call DestroyGroup(udg_Bouncedunit)
              • Skip remaining actions
            • Else - Actions
          • Set NextTarget = (Random unit from (Units within 550.00 of (Position of Locust) matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) belongs to an enemy of (Owner of (Casting unit))) Equal to True) and ((((Unit-type of (Matching unit)) is An Anci
          • Unit Group - Add NextTarget to Bouncedunit
          • Set TargetLocation = (Position of NextTarget)
          • Unit - Move Locust instantly to TargetLocation
          • Wait 0.25 seconds
          • Custom script: call RemoveLocation(udg_TargetLocation)
          • Set Locustlocation = (Position of (Casting unit))
          • Unit - Create 1 Caster Dummy for (Owner of (Casting unit)) at Locustlocation facing Default building facing degrees
          • Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
          • Unit - Set level of Shadow Strike (dummy) for (Last created unit) to 3
          • Unit - Order (Last created unit) to Night Elf Warden - Shadow Strike NextTarget
          • Custom script: call RemoveLocation(udg_Locustlocation)
          • Unit - Kill Locust
          • Custom script: call DestroyGroup(udg_Bouncedunit)
        • Else - Actions

Map is attached below, if anyone would like to try it/check the abilities or simply steal it :D

p.s. The spell is based on some other spell on the hive, can't recall which one though :/
 

Attachments

  • Locust swarm.w3x
    50.6 KB · Views: 60
Last edited:
Status
Not open for further replies.
Top