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

Multi Shot v0.2

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
Second attempt.
An accurate multi shot spell easy to customize and use.


  • Setup
    • Events
      • Time - Elapsed game time is 0.00 seconds
    • Conditions
    • Actions
      • -------- Damage --------
      • Set Damage = 75
      • -------- Movement Speed --------
      • Set Speed = 20
      • -------- Angles that units are created at can add more or less or edit the angles --------
      • Set Angle[1] = 0
      • Set Angle[2] = 10
      • Set Angle[3] = -10
      • Set Angle[4] = 20
      • Set Angle[5] = -20
      • Set Angle[6] = 30
      • Set Angle[7] = -30
      • Set Angle[8] = 40
      • Set Angle[9] = -40
      • Set Angle[8] = 45
      • Set Angle[9] = -45

  • Multi Shot
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Multi Shot
    • Actions
      • Set Point1 = (Position of (Casting unit))
      • Set Point2 = (Target point of ability being cast)
      • -------- If the spell hasn't been used once --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Functions_On Equal to False
        • Then - Actions
          • Trigger - Turn on Multi Shot Function <gen>
          • Set Functions_On = True
        • Else - Actions
      • For each (Integer Angle_Integer) from 1 to ((Level of Multi Shot for (Casting unit)) + ((Level of Multi Shot for (Casting unit)) + 1)), do (Actions)
        • Loop - Actions
          • -------- Current Unit --------
          • Set Arrow_Integer = (Arrow_Integer + 1)
          • -------- Max amount of units --------
          • Set AI = (AI + 1)
          • -------- Unit Properties --------
          • Unit - Create 1 Arrow (Dummy) for (Owner of (Casting unit)) at (Point1 offset by 25.00 towards (Facing of (Casting unit)) degrees) facing ((Angle from Point1 to Point2) + (Real(Angle[Angle_Integer]))) degrees
          • Unit Group - Add (Last created unit) to Arrow_Group
          • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
          • Set Arrow[Arrow_Integer] = (Last created unit)
      • Custom script: call RemoveLocation(udg_Point1)
      • Custom script: call RemoveLocation(udg_Point2)

  • Multi Shot Function
    • Events
      • Time - Every 0.02 seconds of game time
    • Conditions
    • Actions
      • -------- Move Unit --------
      • Unit Group - Pick every unit in Arrow_Group and do (Actions)
        • Loop - Actions
          • Unit - Move (Picked unit) instantly to ((Position of (Picked unit)) offset by (Real(Speed)) towards (Facing of (Picked unit)) degrees)
      • For each (Integer Arrow_Integer) from 1 to AI, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Arrow[Arrow_Integer] is in Arrow_Group) Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Number of units in (Units within 50.00 of (Position of Arrow[Arrow_Integer]) matching ((((Matching unit) belongs to an enemy of (Owner of Arrow[Arrow_Integer])) Equal to True) and ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is a Greater than 0
                • Then - Actions
                  • -------- Kill Arrow --------
                  • Unit - Kill Arrow[Arrow_Integer]
                • Else - Actions
            • Else - Actions

  • Arrow Dies
    • Events
      • Unit - A unit Dies
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ((Dying unit) is in Arrow_Group) Equal to True
        • Then - Actions
          • Unit Group - Pick every unit in (Units within 50.00 of (Position of (Dying unit)) matching ((((Matching unit) belongs to an enemy of (Owner of (Dying unit))) Equal to True) and ((((Matching unit) is A flying unit) Equal to False) and ((((Matching unit) is alive) Equal to True) and (((Matchi and do (Actions)
            • Loop - Actions
              • Unit - Cause Arrow[Arrow_Integer] to damage (Picked unit), dealing (Real(Damage)) damage of attack type Hero and damage type Normal
          • Unit Group - Remove (Dying unit) from Arrow_Group
          • Unit - Remove (Dying unit) from the game
        • Else - Actions
Keywords:
Arrow, arrow, shoot, Shoot, Shot, shot, Multi, multi
Contents

Untitled (Map)

Reviews
11:06, 14th Nov 2015 BPower: Set to rejected due to no update in years. 10:56, 26th May 2010 The_Reborn_Devil: This leaks and the interval is too high, use intervals at 0.04 and not 0.02. Status: Rejected until updated Rating: N/A PM...

Moderator

M

Moderator

11:06, 14th Nov 2015
BPower: Set to rejected due to no update in years.

10:56, 26th May 2010
The_Reborn_Devil:

This leaks and the interval is too high, use intervals at 0.04 and not 0.02.


Status: Rejected until updated
Rating: N/A

PM me once you've fixed this to get it reviewed again. Have a nice day!
 
Level 3
Joined
Nov 17, 2009
Messages
30
use casting instead of trigger unit
For my comp it says casting unit? Odd.
use wait for dummy unit instead of object editor
? I don't get wat your saying there
The spell is created in like 10 minutes and is really bad as Septimus said it leaks uses a totally unneeded wait and its not even levelable
To add a level you need to add 2 angles. Can you plz tell me were the leaks are don't see them.
 
Level 1
Joined
Dec 20, 2009
Messages
5
hooo,

leaks everywhere

pick every unit will create unexpected unit group, and dont destroy it will lead to leak

you use host of "unit position"s and never remove the location, these would spark leaks
 
Level 31
Joined
May 3, 2008
Messages
3,155
For my comp it says casting unit? Odd.

What I mean is, you should have use triggerring unit and not casting unit. Cause you're making the trigger to search for casting unit before assume it as trigger unit instead of locating it as trigger unit directly.

use wait for dummy unit instead of object editor

Cause wait action overwrite the current trigger execution and if you set the dummy unit death to cannot decay, it won't leave corpse at all.

This spells was way soo simple that it can be done at single trigger, the method you're using was soo unefficient that I doubt it would be approve.
 
Level 3
Joined
Jun 7, 2010
Messages
33
Hmm its hard but only multishot I could find. It will have to do...
As for all of you, why not fix it instead of rambling on and on about why it sucks? I've spent half a day looking for a multishot and this is the only one I could find.
 
Level 5
Joined
May 13, 2012
Messages
66
Hmm its hard but only multishot I could find. It will have to do...
As for all of you, why not fix it instead of rambling on and on about why it sucks? I've spent half a day looking for a multishot and this is the only one I could find.

Agreed!


I'll fix this. Leaks are pretty simple just a few more variables. I'll add a on hit ability like Ashe's (from LoL) Volley ability.

Btw, I really appreciate 4avenger5 for making this spell.
 
Top