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

Torrent [GUI][MUI][Egorman] v1.1

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
Using his unparalleled knowledge of the sea, Hero is able summon a blast of water at a target area. After 2 seconds a fierce torrent of water errupts from the ground, the stream blasting enemies caught in the AoE into the sky dealing damage.
Level 1 - 120 damage.
Level 2 - 180 damage.
Level 3 - 240 damage.
Level 4 - 300 damage.

Credits: Pyritie.



  • ¨Torrent Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Torrent
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Torrent_Index[0] Equal to 0
        • Then - Actions
          • Trigger - Turn on Torrent Loop <gen>
        • Else - Actions
      • Set Torrent_Index[0] = (Torrent_Index[0] + 1)
      • Set Torrent_Index[1] = (Torrent_Index[1] + 1)
      • Set Torrent_Caster[Torrent_Index[1]] = (Casting unit)
      • Set Torrent_Level[Torrent_Index[1]] = (Level of (Ability being cast) for Torrent_Caster[Torrent_Index[1]])
      • Set Torrent_Damage[Torrent_Index[1]] = (60.00 + (60.00 x (Real(Torrent_Level[Torrent_Index[1]]))))
      • Set Torrent_Heigh[Torrent_Index[1]] = 0.00
      • Set Torrent_Time[Torrent_Index[1]] = 0.00
      • Set Torrent_Point[Torrent_Index[1]] = (Target point of ability being cast)
      • Unit - Create 1 Torrent Dummy for (Owner of Torrent_Caster[Torrent_Index[1]]) at Torrent_Point[Torrent_Index[1]] facing Default building facing degrees
      • Set Torrent_Dummy[Torrent_Index[1]] = (Last created unit)
      • Animation - Change Torrent_Dummy[Torrent_Index[1]]'s animation speed to 1000.00% of its original speed
  • Torrent Loop
    • Events
      • Time - Every 0.01 seconds of game time
    • Conditions
    • Actions
      • For each (Integer Torrent_Index[2]) from 1 to Torrent_Index[1], do (Actions)
        • Loop - Actions
          • Set Torrent_Time[Torrent_Index[2]] = (Torrent_Time[Torrent_Index[2]] + 0.01)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Torrent_Time[Torrent_Index[2]] Equal to 2.00
            • Then - Actions
              • Unit - Remove Torrent_Dummy[Torrent_Index[2]] from the game
              • Special Effect - Create a special effect at Torrent_Point[Torrent_Index[2]] using Objects\Spawnmodels\Naga\NagaDeath\NagaDeath.mdl
              • Special Effect - Destroy (Last created special effect)
              • Unit - Create 1 Dummy Fountain for (Owner of Torrent_Caster[Torrent_Index[2]]) at Torrent_Point[Torrent_Index[2]] facing Default building facing degrees
              • Set Torrent_Dummy2[Torrent_Index[2]] = (Last created unit)
              • Set Torrent_Group1[Torrent_Index[2]] = (Units within 200.00 of Torrent_Point[Torrent_Index[2]])
              • Unit Group - Pick every unit in Torrent_Group1[Torrent_Index[2]] and do (Actions)
                • Loop - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • ((Picked unit) is A structure) Equal to False
                      • ((Owner of Torrent_Caster[Torrent_Index[2]]) is an enemy of (Owner of (Picked unit))) Equal to True
                      • (Life of (Picked unit)) Greater than 0.00
                    • Then - Actions
                      • Unit - Pause (Picked unit)
                      • Unit - Add Crow Form to (Picked unit)
                      • Unit - Remove Crow Form from (Picked unit)
                      • Unit Group - Add (Picked unit) to Torrent_Group2[Torrent_Index[2]]
                      • Unit - Cause Torrent_Caster[Torrent_Index[2]] to damage (Picked unit), dealing Torrent_Damage[Torrent_Index[2]] damage of attack type Spells and damage type Normal
                    • Else - Actions
              • Custom script: call DestroyGroup (udg_Torrent_Group1[udg_Torrent_Index[2]])
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Torrent_Time[Torrent_Index[2]] Greater than or equal to 2.00
              • Torrent_Time[Torrent_Index[2]] Less than or equal to 4.25
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Torrent_Time[Torrent_Index[2]] Greater than or equal to 2.00
                  • Torrent_Time[Torrent_Index[2]] Less than or equal to 3.50
                • Then - Actions
                  • Set Torrent_Heigh[Torrent_Index[2]] = (Torrent_Heigh[Torrent_Index[2]] + 4.50)
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Torrent_Time[Torrent_Index[2]] Greater than or equal to 3.50
                  • Torrent_Time[Torrent_Index[2]] Less than or equal to 4.25
                • Then - Actions
                  • Set Torrent_Heigh[Torrent_Index[2]] = (Torrent_Heigh[Torrent_Index[2]] - 9.00)
                • Else - Actions
              • Unit Group - Pick every unit in Torrent_Group2[Torrent_Index[2]] and do (Actions)
                • Loop - Actions
                  • Animation - Change (Picked unit) flying height to Torrent_Heigh[Torrent_Index[2]] at 1000000000.00
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Torrent_Time[Torrent_Index[2]] Equal to 4.25
            • Then - Actions
              • Unit - Remove Torrent_Dummy2[Torrent_Index[2]] from the game
              • Set Torrent_Heigh[Torrent_Index[2]] = 0.00
              • Unit Group - Pick every unit in Torrent_Group2[Torrent_Index[2]] and do (Actions)
                • Loop - Actions
                  • Animation - Change (Picked unit) flying height to Torrent_Heigh[Torrent_Index[2]] at 1000000000.00
                  • Unit - Unpause (Picked unit)
              • Custom script: call RemoveLocation (udg_Torrent_Point[udg_Torrent_Index[2]])
              • Unit Group - Remove all units from Torrent_Group2[Torrent_Index[2]]
              • Set Torrent_Index[0] = (Torrent_Index[0] - 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Torrent_Index[0] Equal to 0
                • Then - Actions
                  • Set Torrent_Index[0] = 0
                  • Set Torrent_Index[1] = 0
                  • Trigger - Turn off (This trigger)
                • Else - Actions
            • Else - Actions


Keywords:
torrent, kunkka, admiral, sea, water, burst, explosion, Egorman, dota, naga.
Contents

Torrent [GUI][MUI][Egorman] (Map)

Reviews
12th Dec 2015 IcemanBo: Too long time as NeedsFix. Rejected. 09:15, 2nd Oct 2010 TriggerHappy: You should probably increase your timer interval, 0.03 would be best. Also to improve your code take a look at these suggestions. Otherwise the...

Moderator

M

Moderator

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

09:15, 2nd Oct 2010
TriggerHappy:

You should probably increase your timer interval, 0.03 would be best. Also to improve your code take a look at these suggestions. Otherwise the spell was a bit simple but useful but you still have leaks (Torrent_Group2 is never destroyed).
 
Level 37
Joined
Mar 6, 2006
Messages
9,240

  • ¨Torrent Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Torrent
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Torrent_Index[0] Equal to 0
        • Then - Actions
          • Trigger - Turn on Torrent Loop <gen>
        • Else - Actions
      • Set Torrent_Index[0] = (Torrent_Index[0] + 1)
      • Set Torrent_Index[1] = (Torrent_Index[1] + 1)
      • Set Torrent_Caster[Torrent_Index[1]] = (Casting unit)
      • Set Torrent_Level[Torrent_Index[1]] = (Level of (Ability being cast) for Torrent_Caster[Torrent_Index[1]])
      • Set Torrent_Damage[Torrent_Index[1]] = (60.00 + (60.00 x (Real(Torrent_Level[Torrent_Index[1]]))))
      • Set Torrent_Heigh[Torrent_Index[1]] = 0.00
      • Set Torrent_Time[Torrent_Index[1]] = 0.00
      • Set Torrent_Point[Torrent_Index[1]] = (Target point of ability being cast)
      • Unit - Create 1 Torrent Dummy for (Owner of Torrent_Caster[Torrent_Index[1]]) at Torrent_Point[Torrent_Index[1]] facing Default building facing degrees
      • Set Torrent_Dummy[Torrent_Index[1]] = (Last created unit)
      • Animation - Change Torrent_Dummy[Torrent_Index[1]]'s animation speed to 1000.00% of its original speed
  • Torrent Loop
    • Events
      • Time - Every 0.01 seconds of game time
    • Conditions
    • Actions
      • For each (Integer Torrent_Index[2]) from 1 to Torrent_Index[1], do (Actions)
        • Loop - Actions
          • Set Torrent_Time[Torrent_Index[2]] = (Torrent_Time[Torrent_Index[2]] + 0.01)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Torrent_Time[Torrent_Index[2]] Equal to 2.00
            • Then - Actions
              • Unit - Remove Torrent_Dummy[Torrent_Index[2]] from the game
              • Special Effect - Create a special effect at Torrent_Point[Torrent_Index[2]] using Objects\Spawnmodels\Naga\NagaDeath\NagaDeath.mdl
              • Special Effect - Destroy (Last created special effect)
              • Unit - Create 1 Dummy Fountain for (Owner of Torrent_Caster[Torrent_Index[2]]) at Torrent_Point[Torrent_Index[2]] facing Default building facing degrees
              • Set Torrent_Dummy2[Torrent_Index[2]] = (Last created unit)
              • Set Torrent_Group1[Torrent_Index[2]] = (Units within 200.00 of Torrent_Point[Torrent_Index[2]])
              • Unit Group - Pick every unit in Torrent_Group1[Torrent_Index[2]] and do (Actions)
                • Loop - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • ((Picked unit) is A structure) Equal to False
                      • ((Owner of Torrent_Caster[Torrent_Index[2]]) is an enemy of (Owner of (Picked unit))) Equal to True
                      • (Life of (Picked unit)) Greater than 0.00
                    • Then - Actions
                      • Unit - Pause (Picked unit)
                      • Unit - Add Crow Form to (Picked unit)
                      • Unit - Remove Crow Form from (Picked unit)
                      • Unit Group - Add (Picked unit) to Torrent_Group2[Torrent_Index[2]]
                      • Unit - Cause Torrent_Caster[Torrent_Index[2]] to damage (Picked unit), dealing Torrent_Damage[Torrent_Index[2]] damage of attack type Spells and damage type Normal
                    • Else - Actions
              • Custom script: call DestroyGroup (udg_Torrent_Group1[udg_Torrent_Index[2]])
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Torrent_Time[Torrent_Index[2]] Greater than or equal to 2.00
              • Torrent_Time[Torrent_Index[2]] Less than or equal to 4.25
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Torrent_Time[Torrent_Index[2]] Greater than or equal to 2.00
                  • Torrent_Time[Torrent_Index[2]] Less than or equal to 3.50
                • Then - Actions
                  • Set Torrent_Heigh[Torrent_Index[2]] = (Torrent_Heigh[Torrent_Index[2]] + 4.50)
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Torrent_Time[Torrent_Index[2]] Greater than or equal to 3.50
                  • Torrent_Time[Torrent_Index[2]] Less than or equal to 4.25
                • Then - Actions
                  • Set Torrent_Heigh[Torrent_Index[2]] = (Torrent_Heigh[Torrent_Index[2]] - 9.00)
                • Else - Actions
              • Unit Group - Pick every unit in Torrent_Group2[Torrent_Index[2]] and do (Actions)
                • Loop - Actions
                  • Animation - Change (Picked unit) flying height to Torrent_Heigh[Torrent_Index[2]] at 1000000000.00
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Torrent_Time[Torrent_Index[2]] Equal to 4.25
            • Then - Actions
              • Unit - Remove Torrent_Dummy2[Torrent_Index[2]] from the game
              • Set Torrent_Heigh[Torrent_Index[2]] = 0.00
              • Unit Group - Pick every unit in Torrent_Group2[Torrent_Index[2]] and do (Actions)
                • Loop - Actions
                  • Animation - Change (Picked unit) flying height to Torrent_Heigh[Torrent_Index[2]] at 1000000000.00
                  • Unit - Unpause (Picked unit)
              • Custom script: call RemoveLocation (udg_Torrent_Point[udg_Torrent_Index[2]])
              • Unit Group - Remove all units from Torrent_Group2[Torrent_Index[2]]
              • Set Torrent_Index[0] = (Torrent_Index[0] - 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Torrent_Index[0] Equal to 0
                • Then - Actions
                  • Set Torrent_Index[0] = 0
                  • Set Torrent_Index[1] = 0
                  • Trigger - Turn off (This trigger)
                • Else - Actions
            • Else - Actions


Could lower period than 0.01 be sufficient?
Change flying height with the rate of 0 for it to be instant.
The flying height change doesn't look good, you need to come up with a better equation for that.
  • Set Torrent_Group1[Torrent_Index[2]] = (Units within 200.00 of Torrent_Point[Torrent_Index[2]])
^Array inside of an array...you don't need an array there to begin with.
The spell is not easily configurable.

This could be useful to some, and the effect is quite good.
 
Level 22
Joined
Nov 14, 2008
Messages
3,256
Increase the period rate 0.01 is way to low for this, 0.02-0.04 please.

Change casting unit to triggering unit.

  • Set Torrent_Index[0] = 0
isn't needed as it is already 0 after the check.

This check is wrong, you should check if the unit is dead.

  • Life of (Picked unit)) Greater than 0.00
Also fix makers stuff.
 
Don't call my name, don't call my name, bye fernando, I'm not your-

Using his unparalleled knowledge of the sea, Hero is able summon a blast of water at a target area. After 2 seconds a fierce torrent of water errupts from the ground, the stream blasting enemies caught in the AoE into the sky dealing damage.
Should be:
Using his unparalleled knowledge of the sea, the caster is able to summon a blast of water at the target area. After 2 seconds, a fierce torrent of water errupts from the ground, blasting enemies caught in the AoE into the sky dealing damage.

Suggestions:

  • How about adding an impact effect.
  • Reduce the height a little, it seems unnatural, but of course the user can change that manually.

Rating the originality, I'd give it 1/5, but because that it's working and useful, I'll rate it 2/5.
I don't have anything to say about the triggers, since everyone else already did.
 
Level 9
Joined
Apr 25, 2009
Messages
468
Does this have the same leak as Kunkka's torrent in Dota? When a unit dies in the air, it stays (bugged) in the air for some time.
Also, if you want to make this better than the ogrinal Dota version, I would suggest that you place the torrent and can launch it any time you want. Example:

1: You place the torrent (uses the skill).
2: It stays on the ground (does not explode).
3: Whenever the player uses the torrent again, the placed one will explode.

Do you understand? ^^
 
Level 19
Joined
Feb 25, 2009
Messages
2,004
  • Unit Group - Remove all units from Torrent_Group2[Torrent_Index[2]]
Is never destroyed.

  • Unit - Remove Torrent_Dummy2[Torrent_Index[2]] from the game
  • Unit - Remove Torrent_Dummy[Torrent_Index[2]] from the game
Use a timer.

  • Animation - Change (Picked unit) flying height to Torrent_Heigh[Torrent_Index[2]] at 1000000000.00
0 = instant, as well

  • Unit - Pause (Picked unit)
Can be changed with a stunning spell (Stormbolt)

  • Set Torrent_Index[0] = 0 // last ITE call
This is completely unnecessary, since its already 0

* Please do not use array variables for indexes
* The thousand ITE calls can be merged into one with a boolean.
* Starting dummy should be hidden for the enemies (if it's really DotAish)
* Damage should be dealt on both impact with ground and while being shoot in the air

Overall, not that good coding and the unoriginality brings it down
So I'm giving it a 1/5.
 
Top