• 🏆 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!
  • 🏆 Hive's 6th HD Modeling Contest: Mechanical is now open! Design and model a mechanical creature, mechanized animal, a futuristic robotic being, or anything else your imagination can tinker with! 📅 Submissions close on June 30, 2024. Don't miss this opportunity to let your creativity shine! Enter now and show us your mechanical masterpiece! 🔗 Click here to enter!

Need Help making a Circle Shockwave Spell.

Level 3
Joined
Jul 18, 2013
Messages
32
Hello everyone. I want to make a spell in which 6-8 Dummy units spawn under a hero and then each casts shockwave, so that "fire" eminates out from the hero in a circle as it were. Each dummy ofc targets its own degree. Creating a sort of Diablo Fire wave effect from heroes of the storm.

Now, I have no idea how to do this and would appreciate some help.
 
Level 39
Joined
Feb 27, 2007
Messages
5,034
Start with this thread here (quoted below) and instead of creating special effects, make a dummy unit at the center and order it to cast a custom shockwave spell (with the right art, damage, distance, etc. set up in the Object Editor) at the various directional points.
Thanks for all the help guys, I fixed the issues you mentioned (the dummest of which was me saving Tempp2 rather than Splendour_Tempp2 which I actually needed...)

I'll post the functioning trigger here, in case anyone else comes across a similar problem and wants to have a look.
  • DEHero Splendour
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to DarkElf: Splendour (GrandMissionaryW - Channel)
    • Actions
      • Set Splendour_Tempp1 = (Target point of ability being cast)
      • -------- Flashy Effects (initially resets angle) --------
      • Set Splendour_ang = 0.00
      • For each (Integer Splendour_tempiA) from 1 to 8, do (Actions)
        • Loop - Actions
          • -------- Moves the angle to the next stage, and resets the distance --------
          • Set Splendour_ang = ((Real(Splendour_tempiA)) x 45.00)
          • Set Splendour_dist = 128.00
          • For each (Integer Splendour_tempiB) from 1 to 3, do (Actions)
            • Loop - Actions
              • -------- Creates 3 effects in a line given by the angle, and with increasing dist --------
              • Set Splendour_Tempp2 = (Splendour_Tempp1 offset by Splendour_dist towards Splendour_ang degrees)
              • Set Splendour_dist = (Splendour_dist + 128.00)
              • Unit - Create 1 Dummy Holy Light Effect for Neutral Passive at Splendour_Tempp2 facing Default building facing degrees
              • Unit - Add a 0.98 second Generic expiration timer to (Last created unit)
              • Custom script: call RemoveLocation(udg_Splendour_Tempp2)
      • -------- Cleanup --------
      • Custom script: call RemoveLocation(udg_Splendour_Tempp1)
      • Custom script: call RemoveLocation(udg_Splendour_Tempp2)
      • Custom script: call DestroyGroup(udg_Splendour_Tempug1)
      • Custom script: call DestroyGroup(udg_Splendour_Tempug2)
+Rep!
 
Level 3
Joined
Jul 18, 2013
Messages
32
angle = 0
loop 1-number of dummies
create dummy at location of some unit
make last created unit cast shockwave at location of unit offset by 50 towards angle
angle = angle + 360/number of dummies
endloop

make sure the dummies don't have any pathing.

Thank you for the help and its definitly this that I need. Im experimenting with it but there seems to be something not working. Could you explain it slightly more in depth please?

2f07jbp.png


The trigger provided by Pyro is ofc more in depth but it does not describe what I need. Make those units each targer its own direction. And your instuctions im trying to follow still has them only casting in one direction.
 

Chaosy

Tutorial Reviewer
Level 40
Joined
Jun 9, 2011
Messages
13,183
Because you are not doing what I described.
"facing default building facing 270 degrees" > fireDwAngle
and in the loop you need to set fireDwAngle to "fireDwAngle = fireDwAngle + 36

36 needs to be changed in the future if you want a different number of dummies.

edit: Wops! The first suggestion may not be needed, though it's probably a bug fix.
 
Last edited:
Level 39
Joined
Feb 27, 2007
Messages
5,034
What Chaosy said will work, or you can do it without needing the variable FireDwAngle at all. Should be: ... offset by 50.00 towards ((360.00 / 10.00) * FireDwInteger) degrees. You don't have the * FireDwInteger in yours so all spells are cast in the same direction.

You could realistically use 1.00 or 0.10 instead of 50.00-- it really doesn't matter.
 
Top