Spell Electric Vortex

RMX

New Member
Reaction score
8
-Spell is GUI.
-Spell is MUI.
-Spell uses the indexing method.
-Spell is leakless and lagless.

Spell description -

Charges electric powers with his hands, such force of electricity can vanish units to the past, then unleashes an electrical ball that when it reaches the point, it runs an electrical vortex that stops time of units and vanishes them for 4/6/8 seconds but the fading process takes 3 seconds and when the units return they will be dealt 100/200/300 damage and confused, missing 50% on their attacks for 6 seconds.

Trigger:
  • Electric Vortex On
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Electric Vortex
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • EV_Times Equal to 0
        • Then - Actions
          • Trigger - Turn on Electric Vortex Loop <gen>
        • Else - Actions
      • Set EV_Times = (EV_Times + 1)
      • Set EV_Skip = (EV_Skip + 1)
      • Set EV_Off[EV_Times] = True
      • -------- ----------------------------------------------------------------------------------------------------------------- --------
      • Set EV_Caster[EV_Times] = (Casting unit)
      • Set EV_Point[0] = (Position of EV_Caster[EV_Times])
      • Set EV_Point[1] = (Target point of ability being cast)
      • -------- ----------------------------------------------------------------------------------------------------------------- --------
      • Set EV_Part[EV_Times] = 0
      • Set EV_Level[EV_Times] = (Level of Electric Vortex for EV_Caster[EV_Times])
      • Set EV_Distance[EV_Times] = (Distance between EV_Point[0] and EV_Point[1])
      • Set EV_Angle[EV_Times] = (Angle from EV_Point[0] to EV_Point[1])
      • Set EV_Speed[EV_Times] = 15.00
      • Set EV_Max_Height[EV_Times] = 400.00
      • Set EV_Raise_Speed[EV_Times] = ((EV_Speed[EV_Times] / EV_Distance[EV_Times]) x EV_Max_Height[EV_Times])
      • Set EV_Max_Height[EV_Times] = 0.00
      • -------- ----------------------------------------------------------------------------------------------------------------- --------
      • Unit - Create 1 Dummy_For_Map for (Owner of EV_Caster[EV_Times]) at EV_Point[0] facing Default building facing degrees
      • Set EV_Dummy[EV_Times] = (Last created unit)
      • Special Effect - Create a special effect attached to the chest of EV_Dummy[EV_Times] using Abilities\Weapons\FarseerMissile\FarseerMissile.mdl
      • Set EV_SpecialEffect[EV_Times] = (Last created special effect)
      • -------- ----------------------------------------------------------------------------------------------------------------- --------
      • Custom script: call RemoveLocation(udg_EV_Point[0])
      • Custom script: call RemoveLocation(udg_EV_Point[1])


--------------------------------------------------------------------------
--------------------------------------------------------------------------

Trigger:
  • Electric Vortex Loop
    • Events
      • Time - Every 0.02 seconds of game time
    • Conditions
    • Actions
      • Custom script: local real x1
      • Custom script: local real y1
      • Custom script: local real z1
      • Custom script: local real x2
      • Custom script: local real y2
      • Custom script: local real z2
      • For each (Integer EV) from 1 to EV_Times, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • EV_Off[EV] Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Or - Any (Conditions) are true
                    • Conditions
                      • EV_Part[EV] Equal to 0
                      • EV_Part[EV] Equal to 2
                • Then - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • EV_Distance[EV] Less than or equal to 0.00
                    • Then - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • EV_Part[EV] Equal to 0
                        • Then - Actions
                          • Set EV_Part[EV] = 1
                          • Set EV_Distance[EV] = ((10.15 + (2.00 x (Real(EV_Level[EV])))) / 0.02)
                          • Set EV_Point[4] = (Position of EV_Dummy[EV])
                          • -------- ----------------------------------------------------------------------------------------------------------------- --------
                          • For each (Integer EV_Looper[0]) from 1 to 6, do (Actions)
                            • Loop - Actions
                              • Set EV_Times = (EV_Times + 1)
                              • Set EV_Skip = (EV_Skip + 1)
                              • Set EV_Off[EV_Times] = True
                              • Set EV_Caster[EV_Times] = EV_Dummy[EV]
                              • Set EV_Level[EV_Times] = EV_Level[EV]
                              • -------- ----------------------------------------------------------------------------------------------------------------- --------
                              • Set EV_Point[5] = (EV_Point[4] offset by 300.00 towards (60.00 x (Real(EV_Looper[0]))) degrees)
                              • Set EV_Part[EV_Times] = 2
                              • Set EV_Distance[EV_Times] = (Distance between EV_Point[4] and EV_Point[5])
                              • Set EV_Distance_Decoy[EV_Times] = 300.00
                              • Set EV_Angle[EV_Times] = (Angle from EV_Point[4] to EV_Point[5])
                              • Set EV_Speed[EV_Times] = 3.00
                              • Set EV_Max_Height[EV_Times] = (Current flying height of EV_Dummy[EV])
                              • Set EV_Raise_Speed[EV_Times] = ((EV_Speed[EV_Times] / EV_Distance[EV_Times]) x EV_Max_Height[EV_Times])
                              • -------- ----------------------------------------------------------------------------------------------------------------- --------
                              • Unit - Create 1 Dummy_For_Map for (Owner of EV_Caster[EV_Times]) at EV_Point[4] facing Default building facing degrees
                              • Animation - Change EV_Dummy[EV_Times] flying height to (Current flying height of EV_Dummy[EV]) at 0.00
                              • Set EV_Dummy[EV_Times] = (Last created unit)
                              • Custom script: set udg_EV_Z[udg_EV_Times] = GetLocationZ(udg_EV_Point[4])
                              • Custom script: set x1 = GetUnitX(udg_EV_Dummy[udg_EV])
                              • Custom script: set y1 = GetUnitY(udg_EV_Dummy[udg_EV])
                              • Custom script: set z1 = GetUnitFlyHeight(udg_EV_Dummy[udg_EV])
                              • Custom script: set z1 = (z1 + 60) + (udg_EV_Z[udg_EV_Times])
                              • Custom script: set x2 = GetUnitX(udg_EV_Dummy[udg_EV_Times])
                              • Custom script: set y2 = GetUnitY(udg_EV_Dummy[udg_EV_Times])
                              • Custom script: set z2 = GetUnitFlyHeight(udg_EV_Dummy[udg_EV_Times])
                              • Custom script: set z2 = (z2 + 60) + (udg_EV_Z[udg_EV_Times])
                              • Custom script: set udg_EV_Light[udg_EV_Times] = AddLightningEx("CLPB", false, x1, y1, z1, x2, y2, z2)
                              • Special Effect - Create a special effect attached to the chest of EV_Dummy[EV_Times] using Abilities\Weapons\FarseerMissile\FarseerMissile.mdl
                              • Set EV_SpecialEffect[EV_Times] = (Last created special effect)
                              • Custom script: call RemoveLocation(udg_EV_Point[5])
                          • -------- ----------------------------------------------------------------------------------------------------------------- --------
                          • Set EV_Group[EV] = (Units within 300.00 of EV_Point[4] matching (((Owner of (Matching unit)) Not equal to (Owner of EV_Dummy[EV])) and ((((Matching unit) is A structure) Not equal to True) and ((((Matching unit) is A flying unit) Not equal to True) and ((((Matching unit) belong
                          • Unit Group - Pick every unit in EV_Group[EV] and do (Actions)
                            • Loop - Actions
                              • Set EV_Times = (EV_Times + 1)
                              • Set EV_Skip = (EV_Skip + 1)
                              • Set EV_Off[EV_Times] = True
                              • Set EV_Part[EV_Times] = 4
                              • Set EV_Caster[EV_Times] = (Picked unit)
                              • Set EV_Dummy[EV_Times] = EV_Caster[EV]
                              • Set EV_Level[EV_Times] = EV_Level[EV]
                              • Set EV_Distance[EV_Times] = 0.00
                              • Set EV_Raise_Speed[EV_Times] = 300.00
                              • Set EV_Speed[EV_Times] = 3.00
                              • Set EV_Angle[EV_Times] = ((100.00 x 0.02) / EV_Speed[EV_Times])
                              • Animation - Change EV_Caster[EV_Times]'s animation speed to 0.00% of its original speed
                              • Unit - Pause EV_Caster[EV_Times]
                          • Custom script: call DestroyGroup(udg_EV_Group[udg_EV])
                          • Custom script: call RemoveLocation(udg_EV_Point[4])
                        • Else - Actions
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • EV_Part[EV] Equal to 2
                            • Then - Actions
                              • Set EV_Part[EV] = 3
                              • Set EV_Distance[EV] = EV_Distance_Decoy[EV]
                              • Set EV_Angle[EV] = 0.10
                              • Set EV_Speed[EV] = 0.15
                              • Set EV_Max_Height[EV] = 150.00
                              • Set EV_Raise_Speed[EV] = (EV_Max_Height[EV] / 2.00)
                            • Else - Actions
                    • Else - Actions
                      • Set EV_Distance[EV] = (EV_Distance[EV] - EV_Speed[EV])
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • EV_Part[EV] Equal to 0
                        • Then - Actions
                          • Set EV_Max_Height[EV] = (EV_Max_Height[EV] + EV_Raise_Speed[EV])
                        • Else - Actions
                          • Set EV_Max_Height[EV] = (EV_Max_Height[EV] - EV_Raise_Speed[EV])
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • EV_Part[EV] Equal to 2
                        • Then - Actions
                          • Custom script: set x1 = GetUnitX(udg_EV_Caster[udg_EV])
                          • Custom script: set y1 = GetUnitY(udg_EV_Caster[udg_EV])
                          • Custom script: set z1 = GetUnitFlyHeight(udg_EV_Caster[udg_EV])
                          • Custom script: set z1 = (z1 + 60) + (udg_EV_Z[udg_EV])
                          • Custom script: set x2 = GetUnitX(udg_EV_Dummy[udg_EV])
                          • Custom script: set y2 = GetUnitY(udg_EV_Dummy[udg_EV])
                          • Custom script: set z2 = GetUnitFlyHeight(udg_EV_Dummy[udg_EV])
                          • Custom script: set z2 = (z2 + 60) + (udg_EV_Z[udg_EV])
                          • Custom script: call MoveLightningEx(udg_EV_Light[udg_EV], false, x1, y1, z1, x2, y2, z2)
                        • Else - Actions
                      • -------- ----------------------------------------------------------------------------------------------------------------- --------
                      • Set EV_Point[2] = (Position of EV_Dummy[EV])
                      • Set EV_Point[3] = (EV_Point[2] offset by EV_Speed[EV] towards EV_Angle[EV] degrees)
                      • Unit - Move EV_Dummy[EV] instantly to EV_Point[3]
                      • Custom script: call RemoveLocation(udg_EV_Point[2])
                      • Custom script: call RemoveLocation(udg_EV_Point[3])
                      • -------- ----------------------------------------------------------------------------------------------------------------- --------
                      • Animation - Change EV_Dummy[EV] flying height to EV_Max_Height[EV] at 0.00
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Or - Any (Conditions) are true
                        • Conditions
                          • EV_Part[EV] Equal to 3
                          • EV_Part[EV] Equal to 8
                    • Then - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • EV_Max_Height[EV] Less than or equal to 0.00
                        • Then - Actions
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • EV_Part[EV] Equal to 3
                            • Then - Actions
                              • Set EV_Part[EV] = 6
                              • Set EV_Distance[EV] = ((((Real(EV_Level[EV])) x 2.00) + 2.00) / 0.02)
                            • Else - Actions
                              • Set EV_Off[EV] = False
                              • Set EV_Skip = (EV_Skip - 1)
                              • Set EV_Point[9] = (Position of EV_Dummy[EV])
                              • Special Effect - Create a special effect at EV_Point[9] using Abilities\Spells\Human\Thunderclap\ThunderClapCaster.mdl
                              • Special Effect - Destroy (Last created special effect)
                              • Custom script: call RemoveLocation(udg_EV_Point[9])
                              • Lightning - Destroy EV_Light[EV]
                              • Special Effect - Destroy EV_SpecialEffect[EV]
                              • Unit - Add a 0.01 second Generic expiration timer to EV_Dummy[EV]
                        • Else - Actions
                          • Set EV_Max_Height[EV] = (EV_Max_Height[EV] - 1.00)
                          • Set EV_Point[6] = (Position of EV_Dummy[EV])
                          • Set EV_Point[7] = (Position of EV_Caster[EV])
                          • Set EV_Point[8] = (EV_Point[7] offset by EV_Distance[EV] towards ((Angle from EV_Point[7] to EV_Point[6]) + EV_Angle[EV]) degrees)
                          • Custom script: call SetUnitX(udg_EV_Dummy[udg_EV], GetLocationX(udg_EV_Point[8]))
                          • Custom script: call SetUnitY(udg_EV_Dummy[udg_EV], GetLocationY(udg_EV_Point[8]))
                          • Custom script: set x1 = GetUnitX(udg_EV_Caster[udg_EV])
                          • Custom script: set y1 = GetUnitY(udg_EV_Caster[udg_EV])
                          • Custom script: set z1 = GetUnitFlyHeight(udg_EV_Caster[udg_EV])
                          • Custom script: set z1 = (z1 + 60) + (udg_EV_Z[udg_EV])
                          • Custom script: set x2 = GetUnitX(udg_EV_Dummy[udg_EV])
                          • Custom script: set y2 = GetUnitY(udg_EV_Dummy[udg_EV])
                          • Custom script: set z2 = GetUnitFlyHeight(udg_EV_Dummy[udg_EV])
                          • Custom script: set z2 = (z2 + 60) + (udg_EV_Z[udg_EV])
                          • Custom script: call MoveLightningEx(udg_EV_Light[udg_EV], false, x1, y1, z1, x2, y2, z2)
                          • Custom script: call RemoveLocation(udg_EV_Point[6])
                          • Custom script: call RemoveLocation(udg_EV_Point[7])
                          • Custom script: call RemoveLocation(udg_EV_Point[8])
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • EV_Max_Height[EV] Less than or equal to EV_Raise_Speed[EV]
                            • Then - Actions
                              • Set EV_Angle[EV] = (EV_Angle[EV] - EV_Speed[EV])
                            • Else - Actions
                              • Set EV_Angle[EV] = (EV_Angle[EV] + EV_Speed[EV])
                              • Set EV_Angle[EV] = (EV_Angle[EV] mod 360.00)
                    • Else - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • Or - Any (Conditions) are true
                            • Conditions
                              • EV_Part[EV] Equal to 4
                              • EV_Part[EV] Equal to 7
                        • Then - Actions
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • EV_Raise_Speed[EV] Less than or equal to 0.00
                            • Then - Actions
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • EV_Part[EV] Equal to 4
                                • Then - Actions
                                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    • If - Conditions
                                      • EV_Distance[EV] Greater than or equal to 100.00
                                    • Then - Actions
                                      • Set EV_Part[EV] = 5
                                      • Set EV_Distance[EV] = ((((Real(EV_Level[EV])) x 2.00) + 2.00) / 0.02)
                                      • Set EV_Raise_Speed[EV] = 0.00
                                      • Unit - Hide EV_Caster[EV]
                                    • Else - Actions
                                      • Set EV_Distance[EV] = (EV_Distance[EV] + EV_Angle[EV])
                                • Else - Actions
                                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    • If - Conditions
                                      • EV_Part[EV] Equal to 7
                                    • Then - Actions
                                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                        • If - Conditions
                                          • EV_Distance[EV] Less than or equal to 0.00
                                        • Then - Actions
                                          • Set EV_Off[EV] = False
                                          • Set EV_Skip = (EV_Skip - 1)
                                          • Animation - Change EV_Caster[EV]'s animation speed to 100.00% of its original speed
                                          • Unit - Unpause EV_Caster[EV]
                                          • Unit - Cause EV_Dummy[EV] to damage EV_Caster[EV], dealing ((Real(EV_Level[EV])) x 100.00) damage of attack type Spells and damage type Normal
                                        • Else - Actions
                                          • Set EV_Distance[EV] = (EV_Distance[EV] - EV_Angle[EV])
                                    • Else - Actions
                              • Animation - Change EV_Caster[EV]'s vertex coloring to (100.00%, 100.00%, 100.00%) with EV_Distance[EV]% transparency
                            • Else - Actions
                              • Set EV_Raise_Speed[EV] = (EV_Raise_Speed[EV] - 3.00)
                        • Else - Actions
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • Or - Any (Conditions) are true
                                • Conditions
                                  • EV_Part[EV] Equal to 1
                                  • EV_Part[EV] Equal to 5
                                  • EV_Part[EV] Equal to 6
                            • Then - Actions
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • EV_Distance[EV] Less than or equal to 0.00
                                • Then - Actions
                                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    • If - Conditions
                                      • EV_Part[EV] Equal to 1
                                    • Then - Actions
                                      • Set EV_Off[EV] = False
                                      • Set EV_Skip = (EV_Skip - 1)
                                      • Special Effect - Destroy EV_SpecialEffect[EV]
                                      • Unit - Add a 0.01 second Generic expiration timer to EV_Dummy[EV]
                                    • Else - Actions
                                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                        • If - Conditions
                                          • EV_Part[EV] Equal to 5
                                        • Then - Actions
                                          • Set EV_Part[EV] = 7
                                          • Set EV_Distance[EV] = 100.00
                                          • Unit - Unhide EV_Caster[EV]
                                        • Else - Actions
                                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                            • If - Conditions
                                              • EV_Part[EV] Equal to 6
                                            • Then - Actions
                                              • Set EV_Part[EV] = 8
                                              • Set EV_Angle[EV] = 0.10
                                              • Set EV_Max_Height[EV] = 150.00
                                              • Set EV_Distance[EV] = EV_Distance_Decoy[EV]
                                            • Else - Actions
                                • Else - Actions
                                  • Set EV_Distance[EV] = (EV_Distance[EV] - 1.00)
                            • Else - Actions
            • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • EV_Skip Equal to 0
        • Then - Actions
          • Set EV_Times = 0
          • Trigger - Turn off Electric Vortex Loop <gen>
        • Else - Actions

The Following GUI MUI ... method uses Rrecycling and fully EFFICIENT !
 

Attachments

  • Electric Vortex.w3x
    45.8 KB · Views: 308
  • Electrix.jpg
    Electrix.jpg
    245.4 KB · Views: 361
First of all, put all your Code in Spoiler wrapers.
Second, it's a quite innovative Spell, though, I'd only use it for cinematics (Since it takes way too long... And is avoidable and other several personal preferance reasons).

But, for a GUI spell it is pretty impressive.
+ REP
 
It can be used for cinematics since it does take to long to get to the targeted point, but you could increase the speed wich will not take that amount of time and it will be good as new :D

About the spoiler done :p
 
Wow, now that's what I call an American Hamburger of Actions :eek:

Looks good :thup:
 
You can't bump with 24 hours !!!!

And you should probably add some easy-to-change configurables at the top of the trigger ;)
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • The Helper The Helper:
    https://www.thehelper.net/pages/news/ is a link to the old news portal - i will integrate it into the interface somewhere when i figure it out
  • Ghan Ghan:
    Need to try something
  • Ghan Ghan:
    Hopefully this won't cause problems.
  • Ghan Ghan:
    Hmm
  • Ghan Ghan:
    I have converted the Headline News forum to an Article type forum. It will now show the top 20 threads with more detail of each thread.
  • Ghan Ghan:
    See how we like that.
  • The Helper The Helper:
    I do not see a way to go past the 1st page of posts on the forum though
  • The Helper The Helper:
    It is OK though for the main page to open up on the forum in the view it was before. As long as the portal has its own URL so it can be viewed that way I do want to try it as a regular forum view for a while
  • Ghan Ghan:
    Yeah I'm not sure what the deal is with the pagination.
  • Ghan Ghan:
    It SHOULD be there so I think it might just be an artifact of having an older style.
  • Ghan Ghan:
    I switched it to a "Standard" article forum. This will show the thread list like normal, but the threads themselves will have the first post set up above the rest of the "comments"
  • The Helper The Helper:
    I don't really get that article forum but I think it is because I have never really seen it used on a multi post thread
  • Ghan Ghan:
    RpNation makes more use of it right now as an example: https://www.rpnation.com/news/
  • The Helper The Helper:
  • The Helper The Helper:
    What do you think Tom?
  • tom_mai78101 tom_mai78101:
    I will have to get used to this.
  • tom_mai78101 tom_mai78101:
    The latest news feed looks good
  • The Helper The Helper:
    I would like to see it again like Ghan had it the first time with pagination though - without the pagination that view will not work but with pagination it just might...
  • The Helper The Helper:
    This drink recipe I have had more than a few times back in the day! Mind Eraser https://www.thehelper.net/threads/cocktail-mind-eraser.194720/
  • The Helper The Helper:
    Happy Thursday!
  • Ghan Ghan:
    I'm not so sure, there's still a lot of Thursday left for it to become unhappy.
    +3
  • The Helper The Helper:
    still a few hours
  • The Helper The Helper:
    Its Friday!!!!
    +1
  • Ghan Ghan:
    Thursday 7/10 would Thursday again
    +3

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top