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

Sables Pesado

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
CREDITS: Giving credits from hanky from it's tutorial on the dynamic indexing

FUNCTION: I have been add some simple stuff that you can remove that will not affect the real spell script (Have a 0.10 cast time and simple effects and dummy removing)... When the spell starts the effect it will release a storm (dummy with dizziness model) and their size has grown bigger while running also the radius of spell is grown and there has two layers the sucking run (from the outer layer that trigger to suck all nearby units and the whirling run (from the inner layer) that rotates all units that can dealt damage per interval (0.03) base on rotation speed (rotation speed or I mean total speed has increasing by 1% from a longer time). When the sucked units have been insert on the inner area it will going to whirl too or else if the cast is finish it will goes nothing, and when that cast finished all whirled units from there will thrown away base on the angle (angles between the dummy and the whirled units + 90 degrees I guess a better way of angle) and also speed/distance (these two elements I convert to negative value from a better way of moving), I forgot to tell that all whirled units (except from flying units) is flying above so I add the script adding/removing storm crow ability that commonly I seen from the flying spells. The impact damage and stun duration from throwing is basing on the current height of whirled units after the cast is finish and the speed, it has a 200 radius of AoE damage with stun against nearby units that damage can they dealt is just 25% of based damage (50% from structures). Also, this spell can dealt damage on the destructible (It was Checking if Invulnerable and Not just killing it), While the spell is running the mana of caster is draining that if it's mana have been deplete that spell run will terminate (I just using my custom mana system from spells). I don't see any problems but if ya'll see something then comment it then I will update this quickly. And also suggestion.

Keywords:
Sand, One Piece, Crocodile, Earth, Moving, Whirling, Rolling
Contents

Just another Warcraft III map (Map)

Reviews
12th Dec 2015 IcemanBo: Too long as NeedsFix. Rejected. 23:30, 22nd Sep 2011 Pharaoh_: Merge triggers, by trying to optimize them and add configurables.

Moderator

M

Moderator

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

23:30, 22nd Sep 2011
Pharaoh_: Merge triggers, by trying to optimize them and add configurables.
 
Level 5
Joined
Jan 24, 2011
Messages
49
uh, well. sorry from that I just explaining incoming FAQ that could be ask to me into the future so I will detailing the function than thinking about spell concept, If you have watching animes on T.V. or else Websites, you will know their concept. So it's too common sense to ask about the spell.
 
Level 11
Joined
Mar 19, 2008
Messages
799
I did him a favor and posted all triggers. CBA to Hidden Tag them, i leave to mod to edit my post and throw them to front page.

EDIT: I tested the spell the idea side is really good, but isn't that believable as in Visual Side, i think you should use Tornado SFX with Sand texture.

  • Sables Cast
    • Events
      • Unit - A unit Begins channeling an ability
    • Conditions
      • (Ability being cast) Equal to Sables Pesado
    • Actions
      • Special Effect - Create a special effect attached to the weapon,left of (Triggering unit) using Abilities\Spells\Orc\StasisTrap\StasisTotemTarget.mdl
      • Special Effect - Destroy (Last created special effect)
  • Sables Dummy Removal
    • Events
      • Unit - A unit Dies
    • Conditions
      • Or - Any (Conditions) are true
        • Conditions
          • (Unit-type of (Dying unit)) Equal to Dummy (Sables Pesado)
          • (Unit-type of (Dying unit)) Equal to Dummy (Add Stun)
    • Actions
      • Unit - Remove (Dying unit) from the game
  • Sables Releasing
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Sables Pesado
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • SPesado_Indexsize[1] Equal to 0
        • Then - Actions
          • Trigger - Turn on Sables Run <gen>
        • Else - Actions
      • Set SPesado_Indexsize[1] = (SPesado_Indexsize[1] + 1)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • SPesado_Indexsize[1] Greater than SPesado_Indexmaxsize[1]
        • Then - Actions
          • Set SPesado_S_Index[SPesado_Indexsize[1]] = SPesado_Indexsize[1]
          • Set SPesado_Indexmaxsize[1] = SPesado_Indexsize[1]
        • Else - Actions
      • Set SPesado_Int[1] = SPesado_S_Index[SPesado_Indexsize[1]]
      • Set SPesado_S_Caster[SPesado_Int[1]] = (Triggering unit)
      • Set SPesado_Points[1] = (Position of SPesado_S_Caster[SPesado_Int[1]])
      • Set SPesado_Points[2] = (Target point of ability being cast)
      • Set SPesado_S_Angle[SPesado_Int[1]] = (Angle from SPesado_Points[1] to SPesado_Points[2])
      • Set SPesado_S_Distance[SPesado_Int[1]] = (Distance between SPesado_Points[1] and SPesado_Points[2])
      • Set SPesado_S_Speed[SPesado_Int[1]] = (1.00 + (3.00 x (Real((Level of Sables Pesado for SPesado_S_Caster[SPesado_Int[1]])))))
      • Set SPesado_S_SablesSpeed[SPesado_Int[1]] = 10.00
      • Set SPesado_S_DestrutibleDamage[SPesado_Int[1]] = (SPesado_S_Speed[SPesado_Int[1]] x 0.50)
      • Set SPesado_S_SablesSize[SPesado_Int[1]] = 1.00
      • Set SPesado_S_Radius[SPesado_Int[1]] = 0.00
      • Unit - Create 1 Dummy (Sables Pesado) for (Owner of SPesado_S_Caster[SPesado_Int[1]]) at (SPesado_Points[1] offset by 25.00 towards (Angle from SPesado_Points[1] to SPesado_Points[2]) degrees) facing (Facing of SPesado_S_Caster[SPesado_Int[1]]) degrees
      • Set SPesado_S_Sables[SPesado_Int[1]] = (Last created unit)
      • Animation - Change SPesado_S_Sables[SPesado_Int[1]]'s animation speed to 300.00% of its original speed
      • Unit - Turn collision for SPesado_S_Sables[SPesado_Int[1]] Off
      • Unit Group - Add SPesado_S_Sables[SPesado_Int[1]] to SPesado_S_SablesGroup
      • Custom script: call RemoveLocation(udg_SPesado_Points[2])
      • Custom script: call RemoveLocation(udg_SPesado_Points[1])
  • Sables Run
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • For each (Integer SPesado_Loop[1]) from 1 to SPesado_Indexsize[1], do (Actions)
        • Loop - Actions
          • Set SPesado_Int[1] = SPesado_S_Index[SPesado_Loop[1]]
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (SPesado_S_Sables[SPesado_Int[1]] is in SPesado_S_SablesGroup) Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • SPesado_S_Distance[SPesado_Int[1]] Greater than 0.00
                • Then - Actions
                  • Set SPesado_S_Radius[SPesado_Int[1]] = (SPesado_S_Radius[SPesado_Int[1]] + (SPesado_S_Speed[SPesado_Int[1]] x 0.25))
                  • Set SPesado_S_SablesSize[SPesado_Int[1]] = ((SPesado_S_SablesSize[SPesado_Int[1]] + SPesado_S_Radius[SPesado_Int[1]]) x 0.75)
                  • Animation - Change SPesado_S_Sables[SPesado_Int[1]]'s size to (SPesado_S_SablesSize[SPesado_Int[1]]%, SPesado_S_SablesSize[SPesado_Int[1]]%, SPesado_S_SablesSize[SPesado_Int[1]]%) of its original size
                  • Set SPesado_Points[1] = (Position of SPesado_S_Sables[SPesado_Int[1]])
                  • Set SPesado_Points[2] = (SPesado_Points[1] offset by SPesado_S_SablesSpeed[SPesado_Int[1]] towards SPesado_S_Angle[SPesado_Int[1]] degrees)
                  • Unit - Move SPesado_S_Sables[SPesado_Int[1]] instantly to SPesado_Points[2], facing SPesado_S_Angle[SPesado_Int[1]] degrees
                  • Set SPesado_S_Distance[SPesado_Int[1]] = (SPesado_S_Distance[SPesado_Int[1]] - SPesado_S_SablesSpeed[SPesado_Int[1]])
                  • Set SPesado_WhirlingGroup[SPesado_Int[1]] = (Units within (50.00 + (SPesado_S_Radius[SPesado_Int[1]] x 0.50)) of SPesado_Points[1] matching ((((Matching unit) belongs to an enemy of (Owner of SPesado_S_Caster[SPesado_Int[1]])) Equal to True) and ((((Matching unit) is in SPesado_WhirledGroup) Not equal
                  • Set SPesado_SuckingGroup[SPesado_Int[1]] = (Units within (200.00 + SPesado_S_Radius[SPesado_Int[1]]) of SPesado_Points[1] matching ((((Matching unit) belongs to an enemy of (Owner of SPesado_S_Caster[SPesado_Int[1]])) Equal to True) and (((((Matching unit) is in SPesado_WhirledGroup) Not equal to True
                  • Unit Group - Pick every unit in SPesado_WhirlingGroup[SPesado_Int[1]] and do (Actions)
                    • Loop - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • ((Picked unit) is in SPesado_WhirledTempGroup) Not equal to True
                        • Then - Actions
                          • Unit Group - Add (Picked unit) to SPesado_WhirledTempGroup
                        • Else - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • ((Picked unit) is in SPesado_WhirledGroup) Not equal to True
                        • Then - Actions
                          • Unit Group - Add (Picked unit) to SPesado_WhirledGroup
                        • Else - Actions
                  • Unit Group - Pick every unit in SPesado_SuckingGroup[SPesado_Int[1]] and do (Actions)
                    • Loop - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • ((Picked unit) is in SPesado_SuckedTempGroup) Not equal to True
                        • Then - Actions
                          • Unit Group - Add (Picked unit) to SPesado_SuckedTempGroup
                        • Else - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • ((Picked unit) is in SPesado_SuckedGroup) Not equal to True
                        • Then - Actions
                          • Unit Group - Add (Picked unit) to SPesado_SuckedGroup
                        • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Number of units in SPesado_WhirlingGroup[SPesado_Int[1]]) Greater than 0
                    • Then - Actions
                      • Unit Group - Pick every unit in SPesado_WhirlingGroup[SPesado_Int[1]] and do (Actions)
                        • Loop - Actions
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • ((Picked unit) is in SPesado_WhirledTempGroup) Equal to True
                            • Then - Actions
                              • Unit Group - Remove (Picked unit) from SPesado_WhirledTempGroup
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • SPesado_Indexsize[2] Equal to 0
                                • Then - Actions
                                  • Trigger - Turn on Sables Whirling Run <gen>
                                • Else - Actions
                              • Set SPesado_Indexsize[2] = (SPesado_Indexsize[2] + 1)
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • SPesado_Indexsize[2] Greater than SPesado_Indexmaxsize[2]
                                • Then - Actions
                                  • Set SPesado_WR_Index[SPesado_Indexsize[2]] = SPesado_Indexsize[2]
                                  • Set SPesado_Indexmaxsize[2] = SPesado_Indexsize[2]
                                • Else - Actions
                              • Set SPesado_Int[2] = SPesado_WR_Index[SPesado_Indexsize[2]]
                              • Set SPesado_WR_Caster[SPesado_Int[2]] = SPesado_S_Caster[SPesado_Int[1]]
                              • Set SPesado_WR_WhirlingUnit[SPesado_Int[2]] = (Picked unit)
                              • Set SPesado_WR_CheckingFlyers[SPesado_Int[2]] = (SPesado_WR_WhirlingUnit[SPesado_Int[2]] is A flying unit)
                              • Set SPesado_WR_Sables[SPesado_Int[2]] = SPesado_S_Sables[SPesado_Int[1]]
                              • Set SPesado_Points[3] = (Position of SPesado_WR_Sables[SPesado_Int[2]])
                              • Set SPesado_Points[4] = (Position of SPesado_WR_WhirlingUnit[SPesado_Int[2]])
                              • Set SPesado_WR_Distance[SPesado_Int[2]] = (Distance between SPesado_Points[3] and SPesado_Points[4])
                              • Set SPesado_WR_Speed[SPesado_Int[2]] = SPesado_S_Speed[SPesado_Int[1]]
                              • Set SPesado_WR_TotalSpeed[SPesado_Int[2]] = SPesado_WR_Speed[SPesado_Int[2]]
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • SPesado_WR_CheckingFlyers[SPesado_Int[2]] Not equal to True
                                • Then - Actions
                                  • Set SPesado_WR_Height[SPesado_Int[2]] = (Current flying height of SPesado_WR_WhirlingUnit[SPesado_Int[2]])
                                • Else - Actions
                                  • Set SPesado_WR_Height[SPesado_Int[2]] = 0.00
                              • Set SPesado_WR_WhirlingDamage[SPesado_Int[2]] = 0.00
                              • Set SPesado_WR_Interval[SPesado_Int[2]] = 0
                              • Unit - Turn collision for SPesado_WR_WhirlingUnit[SPesado_Int[2]] Off
                              • Unit - Add Storm Crow Form to SPesado_WR_WhirlingUnit[SPesado_Int[2]]
                              • Unit - Remove Storm Crow Form from SPesado_WR_WhirlingUnit[SPesado_Int[2]]
                              • Custom script: call RemoveLocation(udg_SPesado_Points[4])
                              • Custom script: call RemoveLocation(udg_SPesado_Points[3])
                            • Else - Actions
                    • Else - Actions
                      • Custom script: call DestroyGroup(udg_SPesado_WhirlingGroup[udg_SPesado_Int[1]])
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Number of units in SPesado_SuckingGroup[SPesado_Int[1]]) Greater than 0
                    • Then - Actions
                      • Unit Group - Pick every unit in SPesado_SuckingGroup[SPesado_Int[1]] and do (Actions)
                        • Loop - Actions
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • ((Picked unit) is in SPesado_SuckedTempGroup) Equal to True
                            • Then - Actions
                              • Unit Group - Remove (Picked unit) from SPesado_SuckedTempGroup
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • SPesado_Indexsize[3] Equal to 0
                                • Then - Actions
                                  • Trigger - Turn on Sables Sucking Run <gen>
                                • Else - Actions
                              • Set SPesado_Indexsize[3] = (SPesado_Indexsize[3] + 1)
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • SPesado_Indexsize[3] Greater than SPesado_Indexmaxsize[3]
                                • Then - Actions
                                  • Set SPesado_SR_Index[SPesado_Indexsize[3]] = SPesado_Indexsize[3]
                                  • Set SPesado_Indexmaxsize[3] = SPesado_Indexsize[3]
                                • Else - Actions
                              • Set SPesado_Int[3] = SPesado_SR_Index[SPesado_Indexsize[3]]
                              • Set SPesado_SR_SuckingUnit[SPesado_Int[3]] = (Picked unit)
                              • Set SPesado_SR_Sables[SPesado_Int[3]] = SPesado_S_Sables[SPesado_Int[1]]
                              • Set SPesado_Points[6] = (Position of SPesado_SR_Sables[SPesado_Int[3]])
                              • Set SPesado_Points[7] = (Position of SPesado_SR_SuckingUnit[SPesado_Int[3]])
                              • Set SPesado_SR_Angle[SPesado_Int[3]] = (Angle from SPesado_Points[6] to SPesado_Points[7])
                              • Set SPesado_SR_Speed[SPesado_Int[3]] = SPesado_S_Speed[SPesado_Int[1]]
                              • Set SPesado_SR_TotalSpeed[SPesado_Int[3]] = SPesado_SR_Speed[SPesado_Int[3]]
                              • Unit - Turn collision for SPesado_SR_SuckingUnit[SPesado_Int[3]] Off
                              • Custom script: call RemoveLocation(udg_SPesado_Points[7])
                              • Custom script: call RemoveLocation(udg_SPesado_Points[6])
                            • Else - Actions
                    • Else - Actions
                      • Custom script: call DestroyGroup(udg_SPesado_SuckingGroup[udg_SPesado_Int[1]])
                  • Unit Group - Pick every unit in (Units within (250.00 + SPesado_S_Radius[SPesado_Int[1]]) of SPesado_Points[2] matching ((((Matching unit) belongs to an enemy of (Owner of SPesado_S_Caster[SPesado_Int[1]])) Equal to True) and ((((Matching unit) is A structure) Equal to True) and (((Matching and do (Actions)
                    • Loop - Actions
                      • Unit - Cause SPesado_S_Caster[SPesado_Int[1]] to damage (Picked unit), dealing (SPesado_S_Speed[SPesado_Int[1]] + (2.00 x (Real((Number of units in SPesado_WhirlingGroup[SPesado_Int[1]]))))) damage of attack type Chaos and damage type Force
                      • Special Effect - Create a special effect at ((Position of (Picked unit)) offset by (Random real number between 0.00 and 150.00) towards (Random angle) degrees) using Abilities\Weapons\AncientProtectorMissile\AncientProtectorMissile.mdl
                      • Special Effect - Destroy (Last created special effect)
                  • Set SPesado_S_DestrutibleDamage[SPesado_Int[1]] = ((SPesado_S_SablesSpeed[SPesado_Int[1]] + (2.00 x (Real((Number of units in SPesado_WhirlingGroup[SPesado_Int[1]]))))) x 0.50)
                  • Destructible - Pick every destructible within (250.00 + SPesado_S_Radius[SPesado_Int[1]]) of SPesado_Points[2] and do (Actions)
                    • Loop - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (((Picked destructible) is invulnerable) Not equal to True) and (((Picked destructible) is alive) Equal to True)
                        • Then - Actions
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • (Current life of (Picked destructible)) Less than or equal to SPesado_S_DestrutibleDamage[SPesado_Int[1]]
                            • Then - Actions
                              • Destructible - Kill (Picked destructible)
                              • Special Effect - Create a special effect at ((Position of (Picked destructible)) offset by (Random real number between 0.00 and 100.00) towards (Random angle) degrees) using Abilities\Weapons\AncientProtectorMissile\AncientProtectorMissile.mdl
                              • Special Effect - Destroy (Last created special effect)
                            • Else - Actions
                              • Destructible - Set max life of (Picked destructible) to ((Current life of (Picked destructible)) - SPesado_S_DestrutibleDamage[SPesado_Int[1]])
                              • Special Effect - Create a special effect at ((Position of (Picked destructible)) offset by (Random real number between 0.00 and 100.00) towards (Random angle) degrees) using Abilities\Weapons\AncientProtectorMissile\AncientProtectorMissile.mdl
                              • Special Effect - Destroy (Last created special effect)
                        • Else - Actions
                  • Unit - Set mana of SPesado_S_Caster[SPesado_Int[1]] to ((Mana of SPesado_S_Caster[SPesado_Int[1]]) - (SPesado_S_Speed[SPesado_Int[1]] x 0.50))
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Mana of SPesado_S_Caster[SPesado_Int[1]]) Less than or equal to 0.00
                    • Then - Actions
                      • Set SPesado_S_Distance[SPesado_Int[1]] = 0.00
                    • Else - Actions
                  • Set SPesado_S_Interval = (SPesado_S_Interval + 1)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • SPesado_S_Interval Greater than or equal to 2
                    • Then - Actions
                      • Special Effect - Create a special effect at (SPesado_Points[2] offset by (Random real number between 0.00 and (50.00 + (SPesado_S_Radius[SPesado_Int[1]] x 1.50))) towards (Random angle) degrees) using Objects\Spawnmodels\Undead\ImpaleTargetDust\ImpaleTargetDust.mdl
                      • Special Effect - Destroy (Last created special effect)
                      • Set SPesado_S_Interval = 0
                    • Else - Actions
                  • Custom script: call RemoveLocation(udg_SPesado_Points[2])
                  • Custom script: call RemoveLocation(udg_SPesado_Points[1])
                • Else - Actions
                  • Unit - Kill SPesado_S_Sables[SPesado_Int[1]]
                  • Unit Group - Remove SPesado_S_Sables[SPesado_Int[1]] from SPesado_S_SablesGroup
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Number of units in SPesado_WhirlingGroup[SPesado_Int[1]]) Greater than 0
                    • Then - Actions
                      • Unit Group - Pick every unit in SPesado_WhirlingGroup[SPesado_Int[1]] and do (Actions)
                        • Loop - Actions
                          • Unit Group - Remove (Picked unit) from SPesado_WhirlingGroup[SPesado_Int[1]]
                      • Custom script: call DestroyGroup(udg_SPesado_WhirlingGroup[udg_SPesado_Int[1]])
                    • Else - Actions
                      • Custom script: call DestroyGroup(udg_SPesado_WhirlingGroup[udg_SPesado_Int[1]])
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Number of units in SPesado_SuckingGroup[SPesado_Int[1]]) Greater than 0
                    • Then - Actions
                      • Unit Group - Pick every unit in SPesado_SuckingGroup[SPesado_Int[1]] and do (Actions)
                        • Loop - Actions
                          • Unit Group - Remove (Picked unit) from SPesado_SuckingGroup[SPesado_Int[1]]
                      • Custom script: call DestroyGroup(udg_SPesado_SuckingGroup[udg_SPesado_Int[1]])
                    • Else - Actions
                      • Custom script: call DestroyGroup(udg_SPesado_SuckingGroup[udg_SPesado_Int[1]])
                  • Set SPesado_S_Index[SPesado_Loop[1]] = SPesado_S_Index[SPesado_Indexsize[1]]
                  • Set SPesado_S_Index[SPesado_Indexsize[1]] = SPesado_Int[1]
                  • Set SPesado_Indexsize[1] = (SPesado_Indexsize[1] - 1)
                  • Set SPesado_Loop[1] = (SPesado_Loop[1] - 1)
            • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • SPesado_Indexsize[1] Equal to 0
        • Then - Actions
          • Trigger - Turn off (This trigger)
        • Else - Actions
  • Sables Whirling Run
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • For each (Integer SPesado_Loop[2]) from 1 to SPesado_Indexsize[2], do (Actions)
        • Loop - Actions
          • Set SPesado_Int[2] = SPesado_WR_Index[SPesado_Loop[2]]
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (SPesado_WR_WhirlingUnit[SPesado_Int[2]] is in SPesado_WhirledGroup) Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (SPesado_WR_Sables[SPesado_Int[2]] is alive) Equal to True
                • Then - Actions
                  • Set SPesado_WR_TotalSpeed[SPesado_Int[2]] = (SPesado_WR_TotalSpeed[SPesado_Int[2]] + (SPesado_WR_Speed[SPesado_Int[2]] x 0.01))
                  • Set SPesado_WR_Distance[SPesado_Int[2]] = (SPesado_WR_Distance[SPesado_Int[2]] + (SPesado_WR_TotalSpeed[SPesado_Int[2]] x 0.25))
                  • Set SPesado_Points[3] = (Position of SPesado_WR_Sables[SPesado_Int[2]])
                  • Set SPesado_Points[4] = (Position of SPesado_WR_WhirlingUnit[SPesado_Int[2]])
                  • Set SPesado_WR_Angle[SPesado_Int[2]] = (Angle from SPesado_Points[3] to SPesado_Points[4])
                  • Set SPesado_WR_Angle[SPesado_Int[2]] = (SPesado_WR_Angle[SPesado_Int[2]] + (SPesado_WR_TotalSpeed[SPesado_Int[2]] x 1.00))
                  • Set SPesado_Points[5] = (SPesado_Points[3] offset by SPesado_WR_Distance[SPesado_Int[2]] towards SPesado_WR_Angle[SPesado_Int[2]] degrees)
                  • Unit - Move SPesado_WR_WhirlingUnit[SPesado_Int[2]] instantly to SPesado_Points[5], facing (Facing of SPesado_WR_WhirlingUnit[SPesado_Int[2]]) degrees
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • SPesado_WR_CheckingFlyers[SPesado_Int[2]] Not equal to True
                    • Then - Actions
                      • Set SPesado_WR_Height[SPesado_Int[2]] = (SPesado_WR_Height[SPesado_Int[2]] + (SPesado_WR_Speed[SPesado_Int[2]] x 0.50))
                      • Animation - Change SPesado_WR_WhirlingUnit[SPesado_Int[2]] flying height to SPesado_WR_Height[SPesado_Int[2]] at 0.00
                    • Else - Actions
                  • Set SPesado_WR_WhirlingDamage[SPesado_Int[2]] = (SPesado_WR_WhirlingDamage[SPesado_Int[2]] + (SPesado_WR_TotalSpeed[SPesado_Int[2]] x 0.25))
                  • Set SPesado_WR_Interval[SPesado_Int[2]] = (SPesado_WR_Interval[SPesado_Int[2]] + 1)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • SPesado_WR_Interval[SPesado_Int[2]] Greater than or equal to 6
                    • Then - Actions
                      • Special Effect - Create a special effect attached to the chest of SPesado_WR_WhirlingUnit[SPesado_Int[2]] using Objects\Spawnmodels\Undead\ImpaleTargetDust\ImpaleTargetDust.mdl
                      • Special Effect - Destroy (Last created special effect)
                      • Set SPesado_WR_Interval[SPesado_Int[2]] = 0
                    • Else - Actions
                  • Unit - Cause SPesado_WR_Caster[SPesado_Int[2]] to damage SPesado_WR_WhirlingUnit[SPesado_Int[2]], dealing (SPesado_WR_TotalSpeed[SPesado_Int[2]] x 0.25) damage of attack type Chaos and damage type Force
                  • Custom script: call RemoveLocation(udg_SPesado_Points[5])
                  • Custom script: call RemoveLocation(udg_SPesado_Points[4])
                  • Custom script: call RemoveLocation(udg_SPesado_Points[3])
                • Else - Actions
                  • Set SPesado_Points[3] = (Position of SPesado_WR_Sables[SPesado_Int[2]])
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • SPesado_Indexsize[4] Equal to 0
                    • Then - Actions
                      • Trigger - Turn on Sables Throwing Run <gen>
                    • Else - Actions
                  • Set SPesado_Indexsize[4] = (SPesado_Indexsize[4] + 1)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • SPesado_Indexsize[4] Greater than SPesado_Indexmaxsize[4]
                    • Then - Actions
                      • Set SPesado_TR_Index[SPesado_Indexsize[4]] = SPesado_Indexsize[4]
                      • Set SPesado_Indexmaxsize[4] = SPesado_Indexsize[4]
                    • Else - Actions
                  • Set SPesado_Int[4] = SPesado_TR_Index[SPesado_Indexsize[4]]
                  • Set SPesado_TR_Unit[SPesado_Int[4]] = SPesado_WR_Caster[SPesado_Int[2]]
                  • Set SPesado_TR_ThrowingUnit[SPesado_Int[4]] = SPesado_WR_WhirlingUnit[SPesado_Int[2]]
                  • Set SPesado_Points[9] = (Position of SPesado_TR_ThrowingUnit[SPesado_Int[4]])
                  • Set SPesado_Points[10] = SPesado_Points[3]
                  • Set SPesado_TR_Distance[SPesado_Int[4]] = SPesado_WR_Distance[SPesado_Int[2]]
                  • Set SPesado_TR_Distance[SPesado_Int[4]] = (SPesado_TR_Distance[SPesado_Int[4]] x (0.00 - 2.00))
                  • Set SPesado_TR_Angle[SPesado_Int[4]] = ((Angle from SPesado_Points[9] to SPesado_Points[10]) + 90.00)
                  • Set SPesado_TR_Speed[SPesado_Int[4]] = SPesado_WR_TotalSpeed[SPesado_Int[2]]
                  • Set SPesado_TR_Height[SPesado_Int[4]] = SPesado_WR_Height[SPesado_Int[2]]
                  • Set SPesado_TR_FlyerChecking[SPesado_Int[4]] = SPesado_WR_CheckingFlyers[SPesado_Int[2]]
                  • Set SPesado_TR_TotalDamage[SPesado_Int[4]] = ((SPesado_WR_Height[SPesado_Int[2]] + SPesado_WR_WhirlingDamage[SPesado_Int[2]]) x 1.00)
                  • Set SPesado_TR_StunLevel[SPesado_Int[4]] = ((Integer(SPesado_TR_TotalDamage[SPesado_Int[4]])) / 15)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • SPesado_TR_StunLevel[SPesado_Int[4]] Greater than 10
                    • Then - Actions
                      • Set SPesado_TR_StunLevel[SPesado_Int[4]] = 10
                    • Else - Actions
                  • Unit - Add Storm Crow Form to SPesado_TR_ThrowingUnit[SPesado_Int[4]]
                  • Unit - Remove Storm Crow Form from SPesado_TR_ThrowingUnit[SPesado_Int[4]]
                  • Unit - Turn collision for SPesado_TR_ThrowingUnit[SPesado_Int[4]] Off
                  • Custom script: call RemoveLocation(udg_SPesado_Points[3])
                  • Custom script: call RemoveLocation(udg_SPesado_Points[9])
                  • Custom script: call RemoveLocation(udg_SPesado_Points[10])
                  • Set SPesado_WR_Index[SPesado_Loop[2]] = SPesado_WR_Index[SPesado_Indexsize[2]]
                  • Set SPesado_WR_Index[SPesado_Indexsize[2]] = SPesado_Int[2]
                  • Set SPesado_Indexsize[2] = (SPesado_Indexsize[2] - 1)
                  • Set SPesado_Loop[2] = (SPesado_Loop[2] - 1)
            • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • SPesado_Indexsize[2] Equal to 0
        • Then - Actions
          • Trigger - Turn off (This trigger)
        • Else - Actions
  • Sables Sucking Run
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • For each (Integer SPesado_Loop[3]) from 1 to SPesado_Indexsize[3], do (Actions)
        • Loop - Actions
          • Set SPesado_Int[3] = SPesado_SR_Index[SPesado_Loop[3]]
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (SPesado_SR_SuckingUnit[SPesado_Int[3]] is in SPesado_SuckedGroup) Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • ((SPesado_SR_SuckingUnit[SPesado_Int[3]] is in SPesado_WhirledGroup) Not equal to True) and ((SPesado_SR_Sables[SPesado_Int[3]] is alive) Equal to True)
                • Then - Actions
                  • Set SPesado_Points[6] = (Position of SPesado_SR_Sables[SPesado_Int[3]])
                  • Set SPesado_Points[7] = (Position of SPesado_SR_SuckingUnit[SPesado_Int[3]])
                  • Set SPesado_SR_Distance[SPesado_Int[3]] = (Distance between SPesado_Points[6] and SPesado_Points[7])
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • SPesado_SR_Distance[SPesado_Int[3]] Greater than 0.00
                    • Then - Actions
                      • Set SPesado_SR_TotalSpeed[SPesado_Int[3]] = (SPesado_SR_TotalSpeed[SPesado_Int[3]] + (SPesado_SR_Speed[SPesado_Int[3]] x 0.10))
                      • Set SPesado_SR_Distance[SPesado_Int[3]] = (SPesado_SR_Distance[SPesado_Int[3]] - SPesado_SR_TotalSpeed[SPesado_Int[3]])
                    • Else - Actions
                      • Set SPesado_SR_Distance[SPesado_Int[3]] = 0.00
                  • Set SPesado_Points[8] = ((Position of SPesado_SR_Sables[SPesado_Int[3]]) offset by SPesado_SR_Distance[SPesado_Int[3]] towards SPesado_SR_Angle[SPesado_Int[3]] degrees)
                  • Unit - Move SPesado_SR_SuckingUnit[SPesado_Int[3]] instantly to SPesado_Points[8], facing (Facing of SPesado_SR_SuckingUnit[SPesado_Int[3]]) degrees
                  • Set SPesado_SR_Distance[SPesado_Int[3]] = (SPesado_SR_Distance[SPesado_Int[3]] - SPesado_SR_Speed[SPesado_Int[3]])
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Current flying height of SPesado_SR_SuckingUnit[SPesado_Int[3]]) Less than or equal to 1.00
                    • Then - Actions
                      • Set SPesado_SR_Interval = (SPesado_SR_Interval + 1)
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • SPesado_SR_Interval Greater than or equal to 5
                        • Then - Actions
                          • Special Effect - Create a special effect at SPesado_Points[7] using Abilities\Weapons\AncientProtectorMissile\AncientProtectorMissile.mdl
                          • Special Effect - Destroy (Last created special effect)
                          • Set SPesado_SR_Interval = 0
                        • Else - Actions
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • (SPesado_SR_Interval Equal to 2) or (SPesado_SR_Interval Equal to 4)
                            • Then - Actions
                              • Special Effect - Create a special effect at SPesado_Points[7] using Abilities\Spells\Human\FlakCannons\FlakTarget.mdl
                              • Special Effect - Destroy (Last created special effect)
                            • Else - Actions
                    • Else - Actions
                  • Custom script: call RemoveLocation(udg_SPesado_Points[7])
                  • Custom script: call RemoveLocation(udg_SPesado_Points[6])
                • Else - Actions
                  • Set SPesado_SR_Interval = 0
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (SPesado_SR_Sables[SPesado_Int[3]] is dead) Equal to True
                    • Then - Actions
                      • Unit - Turn collision for SPesado_SR_SuckingUnit[SPesado_Int[3]] On
                    • Else - Actions
                  • Unit Group - Remove SPesado_SR_SuckingUnit[SPesado_Int[3]] from SPesado_SuckedGroup
                  • Set SPesado_SR_Index[SPesado_Loop[3]] = SPesado_SR_Index[SPesado_Indexsize[3]]
                  • Set SPesado_SR_Index[SPesado_Indexsize[3]] = SPesado_Int[3]
                  • Set SPesado_Indexsize[3] = (SPesado_Indexsize[3] - 1)
                  • Set SPesado_Loop[3] = (SPesado_Loop[3] - 1)
            • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • SPesado_Indexsize[3] Equal to 0
        • Then - Actions
          • Trigger - Turn off (This trigger)
        • Else - Actions
  • Sables Throwing Run
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • For each (Integer SPesado_Loop[4]) from 1 to SPesado_Indexsize[4], do (Actions)
        • Loop - Actions
          • Set SPesado_Int[4] = SPesado_TR_Index[SPesado_Loop[4]]
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (SPesado_TR_ThrowingUnit[SPesado_Int[4]] is in SPesado_WhirledGroup) Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • SPesado_TR_Distance[SPesado_Int[4]] Less than 0.00
                • Then - Actions
                  • Set SPesado_Points[9] = (Position of SPesado_TR_ThrowingUnit[SPesado_Int[4]])
                  • Set SPesado_Points[10] = (SPesado_Points[9] offset by (SPesado_TR_Speed[SPesado_Int[4]] x (0.00 - 4.00)) towards SPesado_TR_Angle[SPesado_Int[4]] degrees)
                  • Unit - Move SPesado_TR_ThrowingUnit[SPesado_Int[4]] instantly to SPesado_Points[10], facing (Facing of SPesado_TR_ThrowingUnit[SPesado_Int[4]]) degrees
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • SPesado_TR_FlyerChecking[SPesado_Int[4]] Not equal to True
                    • Then - Actions
                      • Set SPesado_TR_Height[SPesado_Int[4]] = (SPesado_TR_Height[SPesado_Int[4]] - (SPesado_TR_Speed[SPesado_Int[4]] x 2.00))
                      • Animation - Change SPesado_TR_ThrowingUnit[SPesado_Int[4]] flying height to SPesado_TR_Height[SPesado_Int[4]] at 0.00
                    • Else - Actions
                  • Set SPesado_TR_Distance[SPesado_Int[4]] = (SPesado_TR_Distance[SPesado_Int[4]] + (SPesado_TR_Speed[SPesado_Int[4]] x 4.00))
                  • Custom script: call RemoveLocation(udg_SPesado_Points[10])
                  • Custom script: call RemoveLocation(udg_SPesado_Points[9])
                • Else - Actions
                  • Unit Group - Remove SPesado_TR_ThrowingUnit[SPesado_Int[4]] from SPesado_WhirledGroup
                  • Special Effect - Create a special effect at (Position of SPesado_TR_ThrowingUnit[SPesado_Int[4]]) using Abilities\Spells\Orc\WarStomp\WarStompCaster.mdl
                  • Special Effect - Destroy (Last created special effect)
                  • Unit - Cause SPesado_TR_Unit[SPesado_Int[4]] to damage SPesado_TR_ThrowingUnit[SPesado_Int[4]], dealing SPesado_TR_TotalDamage[SPesado_Int[4]] damage of attack type Chaos and damage type Force
                  • Unit - Create 1 Dummy (Add Stun) for (Owner of SPesado_TR_Unit[SPesado_Int[4]]) at (Position of SPesado_TR_ThrowingUnit[SPesado_Int[4]]) facing (Facing of SPesado_TR_ThrowingUnit[SPesado_Int[4]]) degrees
                  • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                  • Unit - Add Add Stun to (Last created unit)
                  • Unit - Set level of Add Stun for (Last created unit) to SPesado_TR_StunLevel[SPesado_Int[4]]
                  • Unit - Order (Last created unit) to Human Mountain King - Storm Bolt SPesado_TR_ThrowingUnit[SPesado_Int[4]]
                  • Animation - Change SPesado_TR_ThrowingUnit[SPesado_Int[4]] flying height to (Default flying height of SPesado_TR_ThrowingUnit[SPesado_Int[4]]) at 0.00
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • SPesado_TR_FlyerChecking[SPesado_Int[4]] Not equal to True
                    • Then - Actions
                      • Destructible - Pick every destructible within 150.00 of (Position of SPesado_TR_ThrowingUnit[SPesado_Int[4]]) and do (Actions)
                        • Loop - Actions
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • (((Picked destructible) is invulnerable) Not equal to True) and (((Picked destructible) is alive) Equal to True)
                            • Then - Actions
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • (Current life of (Picked destructible)) Less than or equal to (SPesado_TR_TotalDamage[SPesado_Int[4]] x 0.10)
                                • Then - Actions
                                  • Destructible - Kill (Picked destructible)
                                • Else - Actions
                                  • Destructible - Set max life of (Picked destructible) to ((Current life of (Picked destructible)) - (SPesado_TR_TotalDamage[SPesado_Int[4]] x 0.10))
                            • Else - Actions
                      • Unit Group - Pick every unit in (Units within 200.00 of (Position of SPesado_TR_ThrowingUnit[SPesado_Int[4]]) matching ((((Matching unit) belongs to an enemy of (Owner of SPesado_TR_Unit[SPesado_Int[4]])) Equal to True) and ((((Matching unit) is A flying unit) Not equal to True) and (((Matc 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 True
                            • Then - Actions
                              • Unit - Cause SPesado_TR_Unit[SPesado_Int[4]] to damage (Picked unit), dealing (SPesado_TR_TotalDamage[SPesado_Int[4]] x 0.50) damage of attack type Chaos and damage type Force
                            • Else - Actions
                              • Unit - Cause SPesado_TR_Unit[SPesado_Int[4]] to damage (Picked unit), dealing (SPesado_TR_TotalDamage[SPesado_Int[4]] x 0.25) damage of attack type Chaos and damage type Force
                              • Unit - Create 1 Dummy (Add Stun) for (Owner of SPesado_TR_Unit[SPesado_Int[4]]) at (Position of (Picked unit)) facing (Facing of (Picked unit)) degrees
                              • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                              • Unit - Add Add Stun to (Last created unit)
                              • Unit - Set level of Add Stun for (Last created unit) to SPesado_TR_StunLevel[SPesado_Int[4]]
                              • Unit - Order (Last created unit) to Human Mountain King - Storm Bolt (Picked unit)
                    • Else - Actions
                  • Unit - Turn collision for SPesado_TR_ThrowingUnit[SPesado_Int[4]] On
                  • Set SPesado_TR_Index[SPesado_Loop[4]] = SPesado_TR_Index[SPesado_Indexsize[4]]
                  • Set SPesado_TR_Index[SPesado_Indexsize[4]] = SPesado_Int[4]
                  • Set SPesado_Indexsize[4] = (SPesado_Indexsize[4] - 1)
                  • Set SPesado_Loop[4] = (SPesado_Loop[4] - 1)
            • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • SPesado_Indexsize[4] Equal to 0
        • Then - Actions
          • Trigger - Turn off (This trigger)
        • Else - Actions
 
Last edited by a moderator:
Level 5
Joined
Jan 24, 2011
Messages
49
@Pharaoh

I have no Idea how to merge them unless make more indexes, but If you post here some example of lines that you want to be maybe can I will fix this then update some how... I'm newbie from scripting spells so I just have only an Idea from Indexing not from others.
 
Top