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

Rain Arrow 1.1 [GUI][MUI][Leakless]

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
  • Like
Reactions: JesusHipster
very simple spell but useful for new members

Sorry my english low

  • Rain Arrow
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Rain of Arrow
    • Actions
      • Set RainArrowPoint[(Player number of (Owner of (Triggering unit)))] = (Target point of ability being cast)
      • Unit Group - Add (Triggering unit) to RainArrow
      • Trigger - Turn on Rain Arrow loop <gen>
      • Wait 1.00 seconds
      • Unit Group - Remove (Triggering unit) from RainArrow
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (RainArrow is empty) Equal to True
        • Then - Actions
          • Trigger - Turn off Rain Arrow loop <gen>
        • Else - Actions
      • Set RainArrowNumber = 20
      • Set RainArrowNumberReal = (360.00 / (Real(RainArrowNumber)))
      • Set RainArrowReal = 0.00
      • Set RainArrowArrow[1] = RainArrowPoint[(Player number of (Owner of (Triggering unit)))]
      • For each (Integer A) from 1 to RainArrowNumber, do (Actions)
        • Loop - Actions
          • Set RainArrowArrow[2] = (RainArrowArrow[1] offset by 125.00 towards RainArrowReal degrees)
          • Set RainArrowArrow[3] = (RainArrowArrow[1] offset by 250.00 towards RainArrowReal degrees)
          • Set RainArrowArrow[4] = (RainArrowArrow[1] offset by 375.00 towards RainArrowReal degrees)
          • Set RainArrowArrow[5] = (RainArrowArrow[1] offset by 500.00 towards RainArrowReal degrees)
          • Unit - Create 1 Small Arrow Dummy for (Owner of (Triggering unit)) at RainArrowArrow[2] facing Default building facing degrees
          • Animation - Change (Last created unit) flying height to 0.00 at 1000.00
          • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
          • Unit - Create 1 Small Arrow Dummy for (Owner of (Triggering unit)) at RainArrowArrow[3] facing Default building facing degrees
          • Animation - Change (Last created unit) flying height to 0.00 at 1000.00
          • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
          • Unit - Create 1 Small Arrow Dummy for (Owner of (Triggering unit)) at RainArrowArrow[4] facing Default building facing degrees
          • Animation - Change (Last created unit) flying height to 0.00 at 1000.00
          • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
          • Unit - Create 1 Small Arrow Dummy for (Owner of (Triggering unit)) at RainArrowArrow[5] facing Default building facing degrees
          • Animation - Change (Last created unit) flying height to 0.00 at 1000.00
          • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
          • Custom script: call RemoveLocation (udg_RainArrowArrow[2])
          • Custom script: call RemoveLocation (udg_RainArrowArrow[3])
          • Custom script: call RemoveLocation (udg_RainArrowArrow[4])
          • Custom script: call RemoveLocation (udg_RainArrowArrow[5])
          • Set RainArrowReal = (RainArrowReal + RainArrowNumberReal)
      • Custom script: set bj_wantDestroyGroup = true
      • Unit Group - Pick every unit in (Units within 500.00 of RainArrowArrow[1] matching (((Triggering unit) belongs to an enemy of (Owner of (Matching unit))) Equal to True)) and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Picked unit) is alive) Equal to True
              • ((Picked unit) is Magic Immune) Not equal to True
            • Then - Actions
              • Unit - Cause (Triggering unit) to damage (Picked unit), dealing (((1.00 x (Real((Level of Rain of Arrow for (Triggering unit))))) + 1.60) x (Real((Agility of (Triggering unit) (Include bonuses))))) damage of attack type Spells and damage type Normal
            • Else - Actions
      • Custom script: call RemoveLocation (udg_RainArrowArrow[1])
      • Set RainArrowinterge = (Player number of (Owner of (Triggering unit)))
      • Custom script: call RemoveLocation (udg_RainArrowPoint[udg_RainArrowinterge])

Keywords:
arrow,archer,bow,spell
Contents

Just another Warcraft III map (Map)

Reviews
12th Dec 2015 IcemanBo: Too long as NeedsFix. Rejected. Moderator: Pharaoh_ Date: 15:45, 19th May 2012 The spell is very simple, it isn't not coded within a loop, when it can clearly be done this way, has no configurables and uses...

Moderator

M

Moderator

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

160036-albums4747-picture55861.png

Moderator: Pharaoh_
Date: 15:45, 19th May 2012

Review
The spell is very simple, it isn't not coded within a loop, when it can clearly be done this way, has no configurables and uses wait. Arrays can be replaced with normal variables.

Rejected for now
 

  • Rain Arrow
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Rain of Arrow
    • Actions
      • Set RainArrowReal = 0.00
      • Set RainArrowPoint[1] = (Target point of ability being cast)
      • For each (Integer A) from 1 to 20, do (Actions)
        • Loop - Actions
          • Set RainArrowPoint[2] = (RainArrowPoint[1] offset by 125.00 towards RainArrowReal degrees)
          • Set RainArrowPoint[3] = (RainArrowPoint[1] offset by 250.00 towards RainArrowReal degrees)
          • Set RainArrowPoint[4] = (RainArrowPoint[1] offset by 375.00 towards RainArrowReal degrees)
          • Set RainArrowPoint[5] = (RainArrowPoint[1] offset by 500.00 towards RainArrowReal degrees)
          • Unit - Create 1 Small Arrow Dummy for (Owner of (Triggering unit)) at RainArrowPoint[2] facing Default building facing degrees
          • Animation - Change (Last created unit) flying height to 0.00 at 1000.00
          • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
          • Unit - Create 1 Small Arrow Dummy for (Owner of (Triggering unit)) at RainArrowPoint[3] facing Default building facing degrees
          • Animation - Change (Last created unit) flying height to 0.00 at 1000.00
          • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
          • Unit - Create 1 Small Arrow Dummy for (Owner of (Triggering unit)) at RainArrowPoint[4] facing Default building facing degrees
          • Animation - Change (Last created unit) flying height to 0.00 at 1000.00
          • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
          • Unit - Create 1 Small Arrow Dummy for (Owner of (Triggering unit)) at RainArrowPoint[5] facing Default building facing degrees
          • Animation - Change (Last created unit) flying height to 0.00 at 1000.00
          • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
          • Set RainArrowReal = (RainArrowReal + 24.00)
          • Custom script: call RemoveLocation (udg_RainArrowPoint[2])
          • Custom script: call RemoveLocation (udg_RainArrowPoint[3])
          • Custom script: call RemoveLocation (udg_RainArrowPoint[4])
          • Custom script: call RemoveLocation (udg_RainArrowPoint[5])
      • Custom script: set bj_wantDestroyGroup = true
      • Unit Group - Pick every unit in (Units within 500.00 of RainArrowPoint[1] matching (((Triggering unit) belongs to an enemy of (Owner of (Matching unit))) Equal to True)) and do (Actions)
        • Loop - Actions
          • Unit - Cause (Triggering unit) to damage (Picked unit), dealing (((1.00 x (Real((Level of Rain of Arrow for (Triggering unit))))) + 1.60) x (Real((Agility of (Triggering unit) (Include bonuses))))) damage of attack type Spells and damage type Normal
      • Custom script: call RemoveLocation (udg_RainArrowPoint[1])


Really far too simple to actually be approved, also needs a proper description, and should have these triggers provided in the description as well as have a proper tooltip and not cotain happy faces in it.

List of things:
- Too simple
- Needless SFX spam, it's basically warstomp without any other effects
- No configurables
- One bulk sum of damage which is dealt the instant the spell is cast
- Damages Magic immunes and picks dead units
- Damages structures (Could be intentional?)
- All Sfx could be created with proper looping as opposed to needing 5 locations (could just have 2)
- To make the circle you could use some easy math as opposed to using a real number: Very simply Real = Real + (360 / Number) Also your RainArrowAngle should be increased by 18 in this case, but you set it to 24 eitherway (360/20 = 18)
- Should be given a proper mana cost

That's it for now.
 
Level 2
Joined
May 10, 2012
Messages
9
Review
Rain Arrow 1.1
Rating:3.5/5
Comment:Spell is to simple,and you are using waits.I will give you 3.5/5 only because it looks cool :|
 
Top