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

Orb of Water v1.1 GUI/MUI

Created by GodLike! aka Helpmeplz
Special thank to General Frank for Orb of Water model.

Description
Creates a sphere, which flies around the Hero and damages nearby enemies, launching them into the air. Deals 150 base damage + 100 damage per level.

This spell is MUI and doesn't need JNGP to work
All settings in trigger OOW Main

How to import:
Import next objects into your map:

Units: Orb of Water Dummy with OrbWaterX.mdx model
Abilities: Orb of Water
Triggers: OOW Main, OOW Dummies, OOW Units

  • OOW Main
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Orb of Water
    • Actions
      • Set OOW_CastCount = (OOW_CastCount + 1)
      • -------- SETTINGS --------
      • -------- Sets the Orb's life time --------
      • Set OOW_OrbLifeTime = 20.00
      • -------- Sets the maximum flying height of units --------
      • Set OOW_MaxFlyHeight = 150.00
      • -------- Sets the base damage of ability --------
      • Set OOW_DamageBase = 150.00
      • -------- Sets the damage per level of ability --------
      • Set OOW_DamageInc = 100.00
      • -------- Sets the sphere radius --------
      • Set OOW_SphereRadius = 250.00
      • -------- Sets the sphere speed --------
      • Set OOW_OrbSpeed = 10.00
      • -------- END --------
      • Set OOW_Caster[OOW_CastCount] = (Triggering unit)
      • Set OOW_Angle[OOW_CastCount] = (Random angle)
      • Custom script: set udg_OOW_HitGroup[udg_OOW_CastCount] = CreateGroup()
      • Set OOW_LeakPoint[1] = (Position of (Triggering unit))
      • Unit - Create 1 Orb of Water Dummy for (Owner of (Triggering unit)) at OOW_LeakPoint[1] facing Default building facing (270.0) degrees
      • Set OOW_Dummy[OOW_CastCount] = (Last created unit)
      • Unit - Add a OOW_OrbLifeTime second Generic expiration timer to (Last created unit)
      • Set OOW_LeakPoint[2] = (OOW_LeakPoint[1] offset by OOW_SphereRadius towards OOW_Angle[OOW_CastCount] degrees)
      • Unit - Move OOW_Dummy[OOW_CastCount] instantly to OOW_LeakPoint[2]
      • Custom script: call RemoveLocation(udg_OOW_LeakPoint[1])
      • Custom script: call RemoveLocation(udg_OOW_LeakPoint[2])
      • Trigger - Turn on OOW Dummies <gen>
      • Trigger - Turn on OOW Units <gen>
  • OOW Dummies
    • Events
      • Time - Every 0.05 seconds of game time
    • Conditions
    • Actions
      • For each (Integer OOW_LoopInteger) from 1 to OOW_CastCount, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (OOW_Dummy[OOW_LoopInteger] is alive) Equal to True
            • Then - Actions
              • Set OOW_LeakPoint[1] = (Position of OOW_Caster[OOW_LoopInteger])
              • Set OOW_LeakPoint[2] = (OOW_LeakPoint[1] offset by OOW_SphereRadius towards OOW_Angle[OOW_LoopInteger] degrees)
              • Unit - Move OOW_Dummy[OOW_LoopInteger] instantly to OOW_LeakPoint[2]
              • Custom script: set bj_wantDestroyGroup = true
              • Unit Group - Pick every unit in (Units within 150.00 of OOW_LeakPoint[2] matching ((((Matching unit) is A structure) Equal to False) and (((((Matching unit) is alive) Equal to True) and (((Matching unit) is in OOW_HitGroup[OOW_LoopInteger]) Equal to False)) and (((Matching unit) belongs to and do (Actions)
                • Loop - Actions
                  • Unit - Cause OOW_Caster[OOW_LoopInteger] to damage (Picked unit), dealing (OOW_DamageBase + (((Real((Level of Orb of Water for OOW_Caster[OOW_LoopInteger]))) - 1.00) x OOW_DamageInc)) damage of attack type Spells and damage type Universal
                  • Unit Group - Add (Picked unit) to OOW_HitGroup[OOW_LoopInteger]
                  • Unit - Pause (Picked unit)
                  • Unit - Add Сфинкс to (Picked unit)
                  • Unit - Remove Сфинкс from (Picked unit)
                  • Animation - Change (Picked unit) flying height to 0.00 at 0.00
              • Custom script: call RemoveLocation(udg_OOW_LeakPoint[1])
              • Custom script: call RemoveLocation(udg_OOW_LeakPoint[2])
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • OOW_Angle[OOW_LoopInteger] Equal to 360.00
                • Then - Actions
                  • Set OOW_Angle[OOW_LoopInteger] = 0.00
                • Else - Actions
                  • Set OOW_Angle[OOW_LoopInteger] = (OOW_Angle[OOW_LoopInteger] + OOW_OrbSpeed)
            • Else - Actions
              • Unit Group - Pick every unit in OOW_HitGroup[OOW_LoopInteger] and do (Actions)
                • Loop - Actions
                  • Unit Group - Remove (Picked unit) from OOW_HitGroup[OOW_LoopInteger]
                  • Unit - Unpause (Picked unit)
                  • Animation - Change (Picked unit) flying height to (Default flying height of (Picked unit)) at 1000.00
              • Unit Group - Remove all units from OOW_HitGroup[OOW_LoopInteger]
              • Unit Group - Add all units of OOW_HitGroup[OOW_CastCount] to OOW_HitGroup[OOW_LoopInteger]
              • Custom script: call DestroyGroup(udg_OOW_HitGroup[udg_OOW_LoopInteger])
              • Set OOW_Angle[OOW_LoopInteger] = OOW_Angle[OOW_CastCount]
              • Set OOW_Caster[OOW_LoopInteger] = OOW_Caster[OOW_CastCount]
              • Set OOW_Dummy[OOW_LoopInteger] = OOW_Dummy[OOW_CastCount]
              • Set OOW_CastCount = (OOW_CastCount - 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • OOW_CastCount Equal to 0
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                  • Trigger - Turn off OOW Units <gen>
                • Else - Actions
  • OOW Units
    • Events
      • Time - Every 0.05 seconds of game time
    • Conditions
    • Actions
      • For each (Integer OOW_LoopInteger) from 1 to OOW_CastCount, do (Actions)
        • Loop - Actions
          • Unit Group - Pick every unit in OOW_HitGroup[OOW_LoopInteger] and do (Actions)
            • Loop - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Current flying height of (Picked unit)) Less than OOW_MaxFlyHeight
                • Then - Actions
                  • Special Effect - Create a special effect attached to the origin of (Picked unit) using Objects\Spawnmodels\Naga\NagaDeath\NagaDeath.mdl
                  • Special Effect - Destroy (Last created special effect)
                  • Animation - Change (Picked unit) flying height to ((Current flying height of (Picked unit)) + 10.00) at 0.00
                • Else - Actions
                  • Unit Group - Remove (Picked unit) from OOW_HitGroup[OOW_LoopInteger]
                  • Unit - Unpause (Picked unit)
                  • Animation - Change (Picked unit) flying height to (Default flying height of (Picked unit)) at 1000.00
Changelog:
v1.1:
Fixed opening in standart WE
Added new setting - Orb Speed

Keywords:
orb of water, blast, geyser, tsunami
Contents

Orb of Water v1.1 (Map)

Reviews
22:54, 16th Jun 2010 Hanky: The spell effects look okay but the movement of the sphere don't look real smooth. You should improve that. Even if some parts of the script are senseless your spell seems to be useful enough. Approved!

Moderator

M

Moderator

22:54, 16th Jun 2010
Hanky:
The spell effects look okay but the movement of the sphere don't look real smooth. You should improve that.

Even if some parts of the script are senseless your spell seems to be useful enough. Approved!
 
Level 19
Joined
Feb 4, 2009
Messages
1,313
apparently you are using some third-party world editor which has a function to create groups

if you want to make your spell compatible you either have to use another line of custom script
  • Custom Script: set udg_group[integer] = CreateGroup()
or you create a group using "set group = units in range/regtion/whatever"
and clear all units from it (or use an impossible condition)

edit:
checked spell ingame and it apears to work
however the movement of the blasted units is not smooth (better use something with gravity) and the effect is spammed (once would have been enough)

edit2:
tested it a little more and there is a bug
if you spam the spell (i set dmg and cooldown to 0 for testing) the units stop to attack (probably paused)
 
Level 3
Joined
Nov 12, 2019
Messages
11
Why did I write triggers, although I wrote the correct ones, I click on the map check and the map itself crashes, why?
So the ability is really very cool !!
 
Top