• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

Need Help Making an Exploding Arrow Skill

Status
Not open for further replies.
Level 4
Joined
Aug 9, 2012
Messages
84
I have this idea in mind to make a purchasable item based off the spell 'Crushing Wave' and turn it into an Exploding Arrow skill that blows up when within the range of 40 of an enemy, then triggers the animations: NeutralBuildingExplosion and SteamTankImpact, epicly exploding the enemy in blood and guts, everywhere, on impact, passing through the enemy thereafter with a chance to double-kill or better.

I don't know how to make this but I have a skeletal layout of the logic behind it and how I want it to work:

UPDATE: Below is a first-look video of my map and its progress and a few features it has, including my idea of this Exploding Arrow item spell. I did a lot with ambiant sounds, etc.. I'm quite good with that. I'm not sure what software I can use for free (non-trial) to make better videos so I don't have to rely on me and my shaky camera skills *Laughs*

P.S. I know the tooltip is not right. It's temporarily based off another item.

http://www.youtube.com/watch?v=aHlCui9jE-k&feature=youtu.be

Ok so in playing around with this a little, the explosion happens in the position of the caster casting the spell and/or starting the effects of an ability, but does no explode where I want it. Another thing is my spell here is erroneously referring to what would be the dummy unit as the dying unit and not the actual enemy being shot at who instead should be the dying unit. This can be any dying unit whether real players or AI. I need it working so it triggers on any dying unit.

FIRST attempt

  • ExplodingTip
    • Events
      • Unit - A unit enters (Playable map area)
    • Conditions
      • (Unit-type of (Triggering unit)) Equal to Exploding Tip
    • Actions
      • Unit - Kill (Triggering unit)
      • Wait 3.00 seconds
      • Unit - Remove (Triggering unit) from the game
  • Exploding Arrow
    • Events
      • Unit - A unit Starts the effect of an ability
      • Unit - A unit Is attacked
    • Conditions
      • (Ability being cast) Equal to Exploding Arrow
    • Actions
      • Set ExplodingTip = (Position of (Attacked unit))
      • Unit - Create 1 Exploding Tip for (Owner of (Attacked unit)) at ExplodingTip facing 0.00 degrees
      • Custom script: call RemoveLocation(udg_ExplodingTip)
      • Set DummyUnit[(Player number of (Owner of (Attacked unit)))] = (Last created unit)
      • Unit - Make (Attacked unit) Explode on death
      • Special Effect - Create a special effect attached to the origin of (Attacked unit) using Objects\Spawnmodels\Other\NeutralBuildingExplosion\NeutralBuildingExplosion.mdl
      • Special Effect - Destroy (Last created special effect)
      • Special Effect - Create a special effect attached to the origin of (Attacked unit) using Abilities\Weapons\SteamTank\SteamTankImpact.mdl
      • Special Effect - Destroy (Last created special effect)
      • Unit - Add a 1.10 second Generic expiration timer to DummyUnit[(Player number of (Owner of (Triggering unit)))]
SECOND attempt: (updated, close, but still does the same thing)

However, it makes a little more sense than the first attempt.

  • Exploding Arrow
    • Events
      • Unit - A unit Dies
    • Conditions
      • ((Dying unit) is A Hero) Equal to True
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ((Unit-type of (Triggering unit)) Equal to Villager (Male)) or ((Unit-type of (Triggering unit)) Equal to Villager (Female))
        • Then - Actions
          • Set ExplodingTip = ((Position of (Triggering unit)) offset by 50.00 towards ((Facing of (Triggering unit)) + 25.00) degrees)
          • Unit - Create 1 Exploding Tip for (Owner of (Triggering unit)) at ExplodingTip facing Default building facing degrees
          • Special Effect - Create a special effect attached to the overhead of (Killing unit) using Objects\Spawnmodels\Other\NeutralBuildingExplosion\NeutralBuildingExplosion.mdl
          • Special Effect - Destroy (Last created special effect)
          • Special Effect - Create a special effect attached to the overhead of (Killing unit) using Abilities\Weapons\SteamTank\SteamTankImpact.mdl
          • Special Effect - Destroy (Last created special effect)
          • Custom script: call RemoveLocation (udg_ExplodingTip)
        • Else - Actions
          • Set ExplodingTip = ((Position of (Triggering unit)) offset by 50.00 towards ((Facing of (Triggering unit)) + 180.00) degrees)
          • Unit - Create 1 Exploding Tip for (Owner of (Triggering unit)) at ExplodingTip facing Default building facing degrees
          • Special Effect - Create a special effect attached to the overhead of (Killing unit) using Objects\Spawnmodels\Other\NeutralBuildingExplosion\NeutralBuildingExplosion.mdl
          • Special Effect - Destroy (Last created special effect)
          • Special Effect - Create a special effect attached to the overhead of (Killing unit) using Abilities\Weapons\SteamTank\SteamTankImpact.mdl
          • Special Effect - Destroy (Last created special effect)
          • Custom script: call RemoveLocation (udg_ExplodingTip)
I have no idea either. It's messed up, I know. So your guess is just as good as mine, lol.

So, does anyone think you can help make me a skill like this without leaking and errors?

Let me know!
 
Last edited:
Level 20
Joined
Apr 14, 2012
Messages
2,901
Why are you setting Exploding Tip to Position of Attacked Unit? In this situation 'Attacked Unit' can't be determined yet.

And you're leaking a lot of point locations.

Also your if-condition does not make sense at all; you're basically checking the distance between two points that are basically in one location.
 
Level 30
Joined
Nov 29, 2012
Messages
6,637
And whats up with this trigger?

  • Wait ((Distance between (Position of (Attacked unit)) and RudeHydroSummon) / 700.00) seconds
Whats this RudeHydroSummon, if this is a variable too, you forgot to set the use of the variable thus this variable is quite useless.
 
Level 4
Joined
Aug 9, 2012
Messages
84
I am referring to Attacked Unit because where my logic was is when the Dummy Unit (referring to a Peasant I named 'Exploding Tip' as the Last Created Unit) meets the unit being shot at and becomes within the range of 40 and/or in the position of the unit being attacked, it will explode on the unit and trigger the animations and blow-up on impact. So too will the enemy explode in blood and guts. Then after it exhausts its exploding tip it will pass through that enemy (like Crushing Wave does) and go to the next enemy with a chance to double-kill (or better).

Literally though if the arrow being shot explodes, so too should the arrow and not pass through to other units, but that'd be both too complex and not what I am going for as an Exploding Arrow spell.

As far as the 'RudeHydroSummon' thing and those wait times, I forgot to remove them. I CnPed this from another spell I made that actually works and was easier to make, to make it easier for me to put this one together so I can somewhat present what I am going for.

I also worked on this gruelingly at 4 in the morning, haha.

Read one of my replies I wrote to MasterTrainer. It explains everything and what I was thinking.

I also acknowledge that what you pointed out should have been removed and therefore makes no sense. I worked on this idea at 4 in the morning, dead tired.
 
Last edited by a moderator:
Level 20
Joined
Apr 14, 2012
Messages
2,901
Siryan if you want a proper arrow, make the arrow dummy from the Casting Point, order it to move to the target point and then add a Generic Expiration Timer to the Dummy like so:
  • Unit - Add A (Current Movement Speed of Dummy / Distance Between Casting Point and Target Point) Generic expiration timer to Dummy
(because Time = Speed/Distance ; basic formula I know you know this) so that when the arrow reaches the target it will explode. Now make a second trigger that does this:
  • Unit Death
  • Event
    • Unit - A Unit Dies
  • Conditions
    • (Triggering Unit) equal to (Dummy Unit)
  • Actions
    • Special Effect - Create A Special Effect at (Position of Triggering Unit) using some Explosion special effects
 
Status
Not open for further replies.
Top