Spell Stomp of Corruption

baassee

Member
Reaction score
5
This was a spell I made a loong time ago in GUI. But hey it works and it's GUI so why not upload it?

Yeah right it has a requirement -.- a knockback system in GUI.

Link

SOCNEWNEWScreen.jpg

Info:

The Chieftain stomps the ground, creating a wave of corruption in each direction, dealing 1,2x strentgh to all units it hit. Also every unit the wave passes get knockbacked. Also all the unit it passes gets a small armor reduction for a small duration.
Knockback range, armor reduction and duration increases by level.

More read me is inside the demomap itself. And the triggers are fairly commented.

Enjoy!

Trigger:
  • SOC Ini
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Set TempLoc = (Center of (Playable map area))
      • Unit - Create 1 Dummy for Neutral Passive at TempLoc facing Default building facing degrees
      • Unit - Add SOC Armor Dummy to (Last created unit)
      • Unit - Add Stomp Of Corruption to (Last created unit)
      • Unit - Add a 0.01 second Generic expiration timer to (Last created unit)
      • Special Effect - Create a special effect at TempLoc using Abilities\Weapons\AvengerMissile\AvengerMissile.mdl
      • Special Effect - Destroy (Last created special effect)
      • Special Effect - Create a special effect at TempLoc using Objects\Spawnmodels\Undead\UndeadDissipate\UndeadDissipate.mdl
      • Special Effect - Destroy (Last created special effect)
      • Set SOC_SP = Abilities\Weapons\AvengerMissile\AvengerMissile.mdl
      • Set SOC_ECSP = Objects\Spawnmodels\Undead\UndeadDissipate\UndeadDissipate.mdl
      • Game - Preload SOC_SP
      • Game - Preload SOC_ECSP
      • Custom script: call PreloadStart()
      • Custom script: call RemoveLocation(udg_TempLoc)
      • Custom script: call DestroyGroup(udg_SOC_Hit[1])
      • Custom script: call DestroyTrigger(GetTriggeringTrigger())

Trigger:
  • SOC Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Stomp Of Corruption
    • Actions
      • -------- The Indexing --------
      • -------- If index 1 is 0 then we turn on the loop else we just set some variables alright? <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite1" alt=":)" title="Smile :)" loading="lazy" data-shortname=":)" /> --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • SOC_Index[1] Equal to 0
        • Then - Actions
          • Trigger - Turn on SOC Loop &lt;gen&gt;
        • Else - Actions
      • -------- Here we set index 1 +1 --------
      • Set SOC_Index[1] = (SOC_Index[1] + 1)
      • -------- and index 2 --------
      • Set SOC_Index[2] = (SOC_Index[2] + 1)
      • -------- ------------------------------------------ --------
      • Custom script: set udg_SOC_Hit[udg_SOC_Index[2]] = CreateGroup()
      • -------- SETTINGS --------
      • -------- ------------------------------------------ --------
      • -------- The Aoe of each boom in the stomp --------
      • Set SOC_AOE = 150.00
      • -------- the range between each boom counted 100xinteged end --------
      • -------- you can change that integer below too --------
      • Set SOC_Range = 100.00
      • -------- the caster who will do the damage, can be changed but I dont recommend it --------
      • Set SOC_Caster[SOC_Index[2]] = (Triggering unit)
      • -------- the caster point where you cast the &quot;stomp spell&quot; --------
      • -------- you can change it to like pos of picked unit if you want it to happen to alot of units etc --------
      • -------- not recommended to change --------
      • Set SOC_CasterPoint[SOC_Index[2]] = (Position of (Triggering unit))
      • -------- this point is set to unbug the spell because it bugs with the knockback else --------
      • -------- have it same as the caster point --------
      • Set SOC_KBCasterPoint[SOC_Index[2]] = (Position of (Triggering unit))
      • -------- the integer where it should start aka when it reach the end integer it stop --------
      • -------- have it at 0 and its fine <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite1" alt=":)" title="Smile :)" loading="lazy" data-shortname=":)" /> --------
      • Set SOC_Integer[SOC_Index[2]] = 0
      • -------- the end, how many booms in each line --------
      • -------- I have it to 3+level of ability because then it starts with 4 booms and ends with 7 --------
      • -------- change this to how far the booms will go x the range variable!!! --------
      • Set SOC_IntegerEnd = (3 + (Level of Stomp Of Corruption for (Triggering unit)))
      • -------- the damage, as I&#039;ve set it to the strength of a hero it can be different so we have to index that too! --------
      • Set SOC_Damage[SOC_Index[2]] = (1.20 x (Real((Strength of (Triggering unit) (Exclude bonuses)))))
      • -------- Here we set the special effect for our needs, I will use this one --------
      • Set SOC_SP = Abilities\Weapons\AvengerMissile\AvengerMissile.mdl
      • -------- and for the eyecandy sp, can be chosen to not used --------
      • Set SOC_ECSP = Objects\Spawnmodels\Undead\UndeadDissipate\UndeadDissipate.mdl
      • -------- and last a boolean if you want the eyecandy or not (less lagg for some) --------
      • -------- set it as false if you dont want it --------
      • Set SOC_WantSP = True
      • -------- ------------------------------------------ --------
      • -------- END SETTINGS --------
      • -------- ------------------------------------------ --------
      • -------- the angle integer, will only be use below --------
      • Set SOC_AngleInteger[SOC_Index[2]] = 0
      • -------- now it&#039;s used --------
      • -------- here I set all the angles --------
      • -------- 11,25 x 1-32 that will create a circle, just look at the spell and you get it <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite1" alt=":)" title="Smile :)" loading="lazy" data-shortname=":)" /> --------
      • For each (Integer A) from 1 to 32, do (Actions)
        • Loop - Actions
          • -------- sets the angle integer +1 --------
          • Set SOC_AngleInteger[SOC_Index[2]] = (SOC_AngleInteger[SOC_Index[2]] + 1)
          • -------- and the angle x the angle integer --------
          • Set SOC_Angle[(Integer A)] = ((Real(SOC_AngleInteger[SOC_Index[2]])) x 11.25)
          • -------- ------------------------------------------ --------
          • -------- Move on to the loop! --------
          • -------- ------------------------------------------ --------

Trigger:
  • SOC Loop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • -------- Wont comment the first here but its better then integer A --------
      • -------- Read Kingz tutorial for further explanasion --------
      • For each (Integer SOC_Index[3]) from 1 to SOC_Index[2], do (Actions)
        • Loop - Actions
          • -------- if/then/else --------
          • -------- checks if the start integer is less the the end integer, --------
          • -------- so if it isnt reached it will repeat itself again --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • SOC_Integer[SOC_Index[3]] Less than SOC_IntegerEnd
            • Then - Actions
              • -------- here we set the start integer +1 --------
              • Set SOC_Integer[SOC_Index[3]] = (SOC_Integer[SOC_Index[3]] + 1)
              • -------- here we do integer A --------
              • -------- to max 32 so it will spin all around the caster counting to the real --------
              • For each (Integer A) from 1 to 32, do (Actions)
                • Loop - Actions
                  • -------- here we set the temp point with the range x the starting integer --------
                  • Set TempLoc = (SOC_CasterPoint[SOC_Index[3]] offset by (SOC_Range x (Real(SOC_Integer[SOC_Index[3]]))) towards SOC_Angle[(Integer A)] degrees)
                  • -------- and the temp group with matching conditions --------
                  • -------- ------------------------------------------ --------
                  • -------- SETTING --------
                  • -------- ------------------------------------------ --------
                  • Set TempGroup = (Units within SOC_AOE of TempLoc matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and ((((Matching unit) is alive) Equal to True) and ((((Matching unit) belongs to an enemy of (Owner of SOC_Ca
                  • -------- and here we create sp and destroy it after --------
                  • Special Effect - Create a special effect at TempLoc using SOC_SP
                  • Special Effect - Destroy (Last created special effect)
                  • -------- here we pick all units in the unit group --------
                  • Unit Group - Pick every unit in TempGroup and do (Actions)
                    • Loop - Actions
                      • -------- create dummy that will cast the buff --------
                      • Unit - Create 1 Dummy for (Owner of SOC_Caster[SOC_Index[3]]) at TempLoc facing Default building facing degrees
                      • -------- timer so it will be removed --------
                      • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                      • -------- add the ability --------
                      • Unit - Add SOC Armor Dummy to (Last created unit)
                      • -------- and set the ability --------
                      • Unit - Set level of SOC Armor Dummy for (Last created unit) to (Level of Stomp Of Corruption for SOC_Caster[SOC_Index[3]])
                      • -------- and order to inner fire to bring it --------
                      • Unit - Order (Last created unit) to Human Priest - Inner Fire (Picked unit)
                      • -------- here we do the damage we set in the cast trigger SETTINGS --------
                      • Unit - Cause SOC_Caster[SOC_Index[3]] to damage (Picked unit), dealing SOC_Damage[SOC_Index[3]] damage of attack type Spells and damage type Death
                      • Unit Group - Add (Picked unit) to SOC_Hit[SOC_Index[3]]
                      • -------- if/then/else --------
                      • -------- if we have set our want eyecandy sp to true we create sp else we do nothing --------
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • SOC_WantSP Equal to True
                        • Then - Actions
                          • Special Effect - Create a special effect attached to the overhead of (Picked unit) using Objects\Spawnmodels\Undead\UndeadDissipate\UndeadDissipate.mdl
                          • Special Effect - Destroy (Last created special effect)
                        • Else - Actions
                      • -------- ------------------------------------------ --------
                      • -------- SETTINGS2 --------
                      • -------- ------------------------------------------ --------
                      • -------- here we set the caster in the knockback --------
                      • -------- U wont explain further, read the knockback system category apply actions trigger <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite1" alt=":)" title="Smile :)" loading="lazy" data-shortname=":)" /> --------
                      • Set KBA_Caster = SOC_Caster[SOC_Index[3]]
                      • Set KBA_TargetUnit = (Picked unit)
                      • Set KBA_StartingPosition = (Point((X of SOC_KBCasterPoint[SOC_Index[3]]), (Y of SOC_KBCasterPoint[SOC_Index[3]])))
                      • Set KBA_Level = (Level of Stomp Of Corruption for SOC_Caster[SOC_Index[3]])
                      • Set KBA_Speed = 7.00
                      • Set KBA_DistancePerLevel = 100.00
                      • Set KBA_SpecialEffects[1] = Abilities\Spells\Human\FlakCannons\FlakTarget.mdl
                      • Set KBA_SpecialEffects[2] = Abilities\Weapons\AvengerMissile\AvengerMissile.mdl
                      • Set KBA_DestroyTrees = True
                      • -------- ------------------------------------------ --------
                      • -------- END SETTINGS2 --------
                      • -------- ------------------------------------------ --------
                      • -------- turns on the knockback --------
                      • Trigger - Run Cast A Knockback &lt;gen&gt; (checking conditions)
                      • -------- remove leaks --------
                  • Custom script: call DestroyGroup(udg_TempGroup)
                  • Custom script: call RemoveLocation(udg_TempLoc)
              • -------- here we check if the first integer reached the end integer --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • SOC_Integer[SOC_Index[3]] Greater than or equal to SOC_IntegerEnd
                • Then - Actions
                  • -------- if it is and that means that one spell has ended, we set the first index to - 1 --------
                  • Set SOC_Index[1] = (SOC_Index[1] - 1)
                  • -------- remove the caster points from the first trigger --------
                  • Custom script: call DestroyGroup(udg_SOC_Hit[udg_SOC_Index[3]])
                  • Custom script: call RemoveLocation(udg_SOC_CasterPoint[udg_SOC_Index[3]])
                  • Custom script: call RemoveLocation(udg_SOC_KBCasterPoint[udg_SOC_Index[3]])
                  • -------- and checks again but the index --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • SOC_Index[1] Equal to 0
                    • Then - Actions
                      • -------- we 0 value the index 2 --------
                      • Set SOC_Index[2] = 0
                      • -------- and turns of the loop because it has no use if no one is using it --------
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                • Else - Actions
            • Else - Actions
 

Attachments

  • baassee.SOC.MUI.v1.4.w3x
    64 KB · Views: 518

Carnerox

The one and only.
Reaction score
84
I like the spell, even as GUI.
The only thing is the amount of eye candy that was used isn't exactly my taste but still looks good. :thup:
 

baassee

Member
Reaction score
5
Hehe as said, it was in the early days.
I had another before but then they told me to change it to this, but it's changeable :D
 

tooltiperror

Super Moderator
Reaction score
231
It runs fine and appears not to leak. Can't say the effect matches the spell though. Not much of a fan of GUI but still very nice.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      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