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

[GUI] Elemental Spell Pack (5) v1.5

By Archangel678
[rainbow]Elemental Spell Pack[/rainbow]

  • Melee Initialization
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Hashtable - Create a hashtable
      • Set Hashtable_Light = (Last created hashtable)
      • -------- ------------------------------ --------
      • Set Damage_Light = 25.00
      • Set Damage_Storm = 15.01
      • Set Damage_Ice = 30.00
      • Set Damage_Dark = 1.00
      • Set Offset_Blast = 300.00
      • Set Offset_Storm = 200.00
      • -------- ------------------------------ --------
      • Hashtable - Create a hashtable
      • Set Hashtable_Blast = (Last created hashtable)
      • -------- ------------------------------ --------
      • Hashtable - Create a hashtable
      • Set Hashtable_Ice = (Last created hashtable)
      • -------- ------------------------------ --------
      • Hashtable - Create a hashtable
      • Set Hashtable_Storm = (Last created hashtable)
      • -------- ------------------------------ --------
      • Hashtable - Create a hashtable
      • Set Hashtable_Dark = (Last created hashtable)
      • Set LSFX[1] = Healing Wave - Primary
      • Set LSFX[2] = Spirit Link
      • Set LSFX[3] = Healing Wave - Primary
      • Set LSFX[4] = Spirit Link
Ingame Description - Blast Burn - Instant, no target.

The caster creates several balls of fire around itself. The balls swirl upwards, knocking nearby units backwards. When the balls reach the sky, they will rain downwards, stunning nearby units.

Level 1 - Stun Time - 2
Level 2 - Stun Time - 4
Level 3 - Stun Time - 6


  • BlastBurn
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Blast Burn
    • Actions
      • Set Caster = (Triggering unit)
      • Set PB1 = (Position of Caster)
      • Set TempReal_Blast[0] = 0.00
      • For each (Integer Loop) from 1 to 6, do (Actions)
        • Loop - Actions
          • Set TempReal_Blast[0] = (TempReal_Blast[0] + 60.00)
          • Set PB2 = (PB1 offset by Offset_Blast towards TempReal_Blast[0] degrees)
          • -------- ------------------------------ --------
          • Unit - Create 1 Fiery Thing for (Triggering player) at PB2 facing TempReal_Blast[0] degrees
          • Set Target = (Last created unit)
          • Unit Group - Add Target to Group_Blast
          • Custom script: set udg_Handle_Blast = GetHandleId(udg_Target)
          • Set TempReal_Blast[1] = TempReal_Blast[0]
          • Set TempReal_Blast[2] = 5.00
          • Set TempReal_Blast[3] = (90.00 x (Real((Level of Blast Burn for Caster))))
          • Set TempReal_Blast[4] = 500.00
          • Animation - Change Target flying height to TempReal_Blast[2] at 0.00
          • -------- ------------------------------ --------
          • -------- Save --------
          • -------- ------------------------------ --------
          • Hashtable - Save TempReal_Blast[1] as 1 of Handle_Blast in Hashtable_Blast
          • Hashtable - Save TempReal_Blast[2] as 2 of Handle_Blast in Hashtable_Blast
          • Hashtable - Save TempReal_Blast[3] as 3 of Handle_Blast in Hashtable_Blast
          • Hashtable - Save TempReal_Blast[4] as 4 of Handle_Blast in Hashtable_Blast
          • Hashtable - Save (Level of Blast Burn for Caster) as 5 of Handle_Blast in Hashtable_Blast
          • Custom script: call RemoveLocation(udg_PB2)
          • Set BlastTrig = (BlastTrig + 1)
      • Custom script: call RemoveLocation(udg_PB1)
      • Trigger - Turn on BlastLoop <gen>
      • Custom script: call RemoveLocation(udg_PB1)
  • BlastLoop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in Group_Blast and do (Actions)
        • Loop - Actions
          • Set Target = (Picked unit)
          • Custom script: set udg_Handle_Blast = GetHandleId(udg_Target)
          • Set TempReal_Blast[1] = (Load 1 of Handle_Blast from Hashtable_Blast)
          • Set TempReal_Blast[2] = (Load 2 of Handle_Blast from Hashtable_Blast)
          • Set TempReal_Blast[3] = (Load 3 of Handle_Blast from Hashtable_Blast)
          • Set TempReal_Blast[4] = (Load 4 of Handle_Blast from Hashtable_Blast)
          • -------- 1 = Angle --------
          • -------- 2 = Height --------
          • -------- 3 = AoE --------
          • -------- 4 = Offset --------
          • Set TempReal_Blast[1] = (TempReal_Blast[1] + 9.00)
          • Set TempReal_Blast[2] = (TempReal_Blast[2] + 3.00)
          • Set TempReal_Blast[4] = (TempReal_Blast[4] x 0.03)
          • Set PB1 = (Position of Target)
          • Set PB2 = (PB1 offset by TempReal_Blast[4] towards TempReal_Blast[1] degrees)
          • Unit - Move Target instantly to PB2, facing TempReal_Blast[1] degrees
          • Custom script: call RemoveLocation(udg_PB2)
          • Animation - Change Target flying height to TempReal_Blast[2] at 0.00
          • Hashtable - Save TempReal_Blast[1] as 1 of Handle_Blast in Hashtable_Blast
          • Hashtable - Save TempReal_Blast[2] as 2 of Handle_Blast in Hashtable_Blast
          • -------- ----------------------- --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • TempReal_Blast[2] Greater than or equal to 125.00
            • Then - Actions
              • Set BlastBoolean = True
              • Hashtable - Save BlastBoolean as 16 of Handle_Blast in Hashtable_Blast
            • Else - Actions
          • -------- ------------------------------ --------
          • -------- --------------------------- --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • TempReal_Blast[2] Greater than or equal to 500.00
            • Then - Actions
              • Special Effect - Create a special effect at PB1 using AbilitiesSpellsHumanMarkOfChaosMarkOfChaosTarget.mdl
              • Special Effect - Destroy (Last created special effect)
              • Special Effect - Create a special effect at PB1 using AbilitiesSpellsDemonReviveDemonReviveDemon.mdl
              • Special Effect - Destroy (Last created special effect)
              • Custom script: set bj_wantDestroyGroup = true
              • Unit Group - Pick every unit in (Units within TempReal_Blast[3] of PB1 matching (((((Matching unit) is A flying unit) Equal to False) and ((((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 do (Actions)
                • Loop - Actions
                  • Set Caster = (Picked unit)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Mana of Caster) Greater than or equal to 1.00
                      • (Caster has buff ()Nightmare ) Equal to True
                    • Then - Actions
                      • Unit - Set mana of Caster to ((Mana of Caster) - ((Mana of Caster) x 0.22))
                    • Else - Actions
                  • -------- ----------------------- --------
                  • Unit - Create 1 DummyUnit for (Owner of Target) at PB1 facing Default building facing degrees
                  • Unit - Add BlastBurn (Lightflare will gain 1.5x health with this buff) to (Last created unit)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Load 5 of Handle_Blast from Hashtable_Blast) Equal to 0
                    • Then - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Caster is in Group_LightDamage) Equal to True
                        • Then - Actions
                          • Unit - Set level of BlastBurn (Lightflare will gain 1.5x health with this buff) for (Last created unit) to 2
                          • Special Effect - Create a special effect attached to the origin of (Picked unit) using AbilitiesSpellsOtherIncinerateFireLordDeathExplode.mdl
                          • Special Effect - Destroy (Last created special effect)
                        • Else - Actions
                          • Unit - Set level of BlastBurn (Lightflare will gain 1.5x health with this buff) for (Last created unit) to 1
                    • Else - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Caster is in Group_LightDamage) Equal to True
                        • Then - Actions
                          • Unit - Set level of BlastBurn (Lightflare will gain 1.5x health with this buff) for (Last created unit) to ((Load 5 of Handle_Blast from Hashtable_Blast) x 2)
                          • Special Effect - Create a special effect attached to the origin of (Picked unit) using AbilitiesSpellsOtherIncinerateFireLordDeathExplode.mdl
                          • Special Effect - Destroy (Last created special effect)
                        • Else - Actions
                          • Unit - Set level of BlastBurn (Lightflare will gain 1.5x health with this buff) for (Last created unit) to (Load 5 of Handle_Blast from Hashtable_Blast)
                  • Unit - Order (Last created unit) to Neutral - Firebolt Caster
                  • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                  • Unit - Make (Last created unit) Explode on death
                  • -------- ----------------------- --------
                  • Special Effect - Create a special effect attached to the origin of (Picked unit) using AbilitiesWeaponsRedDragonBreathRedDragonMissile.mdl
                  • Special Effect - Destroy (Last created special effect)
                  • -------- ----------------------- --------
                  • -------- ----------------------- --------
              • -------- --------------------------- --------
              • Unit - Remove Target from the game
              • Set BlastTrig = (BlastTrig - 1)
              • -------- --------------------------- --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • BlastTrig Equal to 0
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                • Else - Actions
              • Hashtable - Clear all child hashtables of child Handle_Blast in Hashtable_Blast
              • -------- --------------------------- --------
            • Else - Actions
              • Set BlastBoolean = (Load 16 of Handle_Blast from Hashtable_Blast)
              • Custom script: set bj_wantDestroyGroup = true
              • Unit Group - Pick every unit in (Units within TempReal_Blast[3] of PB1 matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and ((((Matching unit) is Snared) Equal to False) and ((((Matching unit) is alive) Equal to True) and (( and do (Actions)
                • Loop - Actions
                  • Set Caster = (Picked unit)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Caster is A flying unit) Equal to BlastBoolean
                    • Then - Actions
                      • Set PB2 = (Position of Caster)
                      • Custom script: set udg_Handle_Blast = GetHandleId(udg_Caster)
                      • Hashtable - Save 400.00 as 6 of Handle_Blast in Hashtable_Blast
                      • Hashtable - Save (Angle from PB1 to PB2) as 7 of Handle_Blast in Hashtable_Blast
                      • Set BlastTrig = (BlastTrig + 1)
                      • Unit Group - Add Caster to Group_KnockBackBlast
                      • Special Effect - Create a special effect attached to the origin of Caster using AbilitiesWeaponsRedDragonBreathRedDragonMissile.mdl
                      • Special Effect - Destroy (Last created special effect)
                      • Custom script: call RemoveLocation(udg_PB2)
                    • Else - Actions
          • Custom script: call RemoveLocation(udg_PB1)
      • -------- ------------------------------ --------
      • -------- Question & Answer --------
      • -------- Q:How does this affect ground units? --------
      • -------- A: It will knock them backwards below 125 flying height. Also, it will stun them when the spell is finished. --------
      • -------- ------------------------------ --------
      • -------- Q: Why doesn't this carry damage? --------
      • -------- A: Cause that would be extremely overpower. It immoblizes air units in an area. --------
      • -------- ------------------------------ --------
      • -------- Q: Why doesn't this follow the position of the caster? --------
      • -------- A: Then a smart player would trap the air units, immobilizing them for an even longer time. --------
      • -------- ------------------------------ --------
      • Unit Group - Pick every unit in Group_KnockBackBlast and do (Actions)
        • Loop - Actions
          • Set Target = (Picked unit)
          • Custom script: set udg_Handle_Blast = GetHandleId(udg_Target)
          • -------- ------------------------------ --------
          • Set TempReal_Blast[1] = (Load 6 of Handle_Blast from Hashtable_Blast)
          • Set TempReal_Blast[2] = (Load 7 of Handle_Blast from Hashtable_Blast)
          • Set TempReal_Blast[1] = (TempReal_Blast[1] x 0.95)
          • -------- ------------------------------ --------
          • Set PB1 = (Position of Target)
          • Set PB2 = (PB1 offset by (TempReal_Blast[1] x 0.10) towards (TempReal_Blast[2] + 180.00) degrees)
          • -------- ------------------------------ --------
          • Hashtable - Save TempReal_Blast[1] as 6 of Handle_Blast in Hashtable_Blast
          • Set KBCheck = (Region centered at PB2 with size (16.00, 16.00))
          • -------- ------------------------------ --------
          • Unit - Move Target instantly to PB2, facing TempReal_Blast[2] degrees
          • -------- ------------------------------ --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Or - Any (Conditions) are true
                • Conditions
                  • TempReal_Blast[1] Less than or equal to 60.00
                  • (KBCheck contains Target) Equal to False
                  • (Target is alive) Equal to False
                  • (Target is paused) Equal to True
                  • (Target is hidden) Equal to True
                  • (Target is sleeping) Equal to True
                  • (Target has buff Anti-magic Shell) Equal to True
                  • (Target has buff Anti-magic Shell (Extra)) Equal to True
                  • (Target has buff Divine Shield) Equal to True
                  • (Target is Snared) Equal to True
            • Then - Actions
              • Unit Group - Remove Target from Group_KnockBackBlast
              • -------- ------------------------------ --------
              • Hashtable - Clear all child hashtables of child Handle_Blast in Hashtable_Blast
              • Set BlastTrig = (BlastTrig - 1)
              • -------- ------------------------------ --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • BlastTrig Equal to 0
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                • Else - Actions
              • Special Effect - Create a special effect at PB2 using AbilitiesWeaponsFireBallMissileFireBallMissile.mdl
              • Special Effect - Destroy (Last created special effect)
              • Special Effect - Create a special effect at PB1 using AbilitiesWeaponsFireBallMissileFireBallMissile.mdl
              • Special Effect - Destroy (Last created special effect)
            • Else - Actions
          • Custom script: call RemoveLocation(udg_PB1)
          • Custom script: call RemoveLocation(udg_PB2)
          • Custom script: call RemoveRect(udg_KBCheck)
170705-albums4602-picture45059.jpg


Ingame Description - Lightflare - Point, Targeting Image

Four beams swirl around the caster and slowly shrink. Any units in its way will be marked for punishment. When the beams meet, a ray of light will rain down. All units marked will suffer damage, and healing the caster for a third of the damage.

Level 1 - Damage - 25
Level 2 - Damage - 50
Level 3 - Damage - 75


  • Lightflare
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Lightflare
    • Actions
      • Set Caster = (Triggering unit)
      • -------- --------------------------- --------
      • Set PL1 = (Position of Caster)
      • Special Effect - Create a special effect at PL1 using Abilities\Spells\NightElf\Taunt\TauntCaster.mdl
      • Special Effect - Destroy (Last created special effect)
      • Custom script: call RemoveLocation(udg_PL1)
      • -------- --------------------------- --------
      • Set PL2 = (Target point of ability being cast)
      • Set TempReal_Light[0] = (Facing of Caster)
      • Unit - Create 1 DummyUnit for (Triggering player) at PL2 facing TempReal_Light[0] degrees
      • Set Target = (Last created unit)
      • Unit Group - Add (Last created unit) to Group_Light
      • -------- Height --------
      • Set TempReal_Light[1] = 50.00
      • -------- Distance/Lightning Length --------
      • Set TempReal_Light[2] = (400.00 + (100.00 x (Real((Level of Lightflare for Caster)))))
      • -------- Degree A --------
      • For each (Integer Loop) from 3 to 6, do (Actions)
        • Loop - Actions
          • Set TempReal_Light[Loop] = (90.00 x ((Real(Loop)) - 2.00))
      • -------- Damage --------
      • Set TempReal_Light[7] = (Damage_Light x (Real((Level of Lightflare for Caster))))
      • -------- AoE --------
      • Set TempReal_Light[8] = (90.00 + (30.00 x (Real((Level of Lightflare for Caster)))))
      • -------- Save --------
      • Custom script: set udg_Handle_Light = GetHandleId(udg_Target)
      • Custom script: set udg_Group_LightDamage = CreateGroup()
      • Hashtable - Save Handle OfGroup_LightDamage as 20 of Handle_Light in Hashtable_Light
      • -------- ----------------------------------------------------------------------- --------
      • Hashtable - Save TempReal_Light[1] as 1 of Handle_Light in Hashtable_Light
      • Hashtable - Save TempReal_Light[2] as 2 of Handle_Light in Hashtable_Light
      • Hashtable - Save TempReal_Light[3] as 3 of Handle_Light in Hashtable_Light
      • Hashtable - Save TempReal_Light[4] as 4 of Handle_Light in Hashtable_Light
      • Hashtable - Save TempReal_Light[5] as 5 of Handle_Light in Hashtable_Light
      • Hashtable - Save TempReal_Light[6] as 6 of Handle_Light in Hashtable_Light
      • Hashtable - Save TempReal_Light[7] as 7 of Handle_Light in Hashtable_Light
      • Hashtable - Save TempReal_Light[8] as 8 of Handle_Light in Hashtable_Light
      • -------- ----------------------------------------------------------------------- --------
      • -------- Save/Create Lightning --------
      • -------- ----------------------------------------------------------------------- --------
      • For each (Integer Loop) from 1 to 4, do (Actions)
        • Loop - Actions
          • Set PL1 = (PL2 offset by TempReal_Light[2] towards TempReal_Light[(Loop + 2)] degrees)
          • Custom script: set udg_LL[udg_Loop] = AddLightningEx(udg_LSFX[udg_Loop], true , GetLocationX(udg_PL2), GetLocationY(udg_PL2), GetLocationZ(udg_PL2) + (udg_TempReal_Light[1]), GetLocationX(udg_PL1), GetLocationY(udg_PL1), GetLocationZ(udg_PL1) + 60 )
          • Hashtable - Save Handle OfLL[Loop] as (8 + Loop) of Handle_Light in Hashtable_Light
          • Custom script: call RemoveLocation(udg_PL1)
      • -------- ----------------------------------------------------------------------- --------
      • Hashtable - Save Handle OfCaster as 13 of Handle_Light in Hashtable_Light
      • Custom script: call RemoveLocation(udg_PL1)
      • Custom script: call RemoveLocation(udg_PL2)
      • Set LightTrig = (LightTrig + 1)
      • Trigger - Turn on Lightloop <gen>
  • Lightloop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in Group_Light and do (Actions)
        • Loop - Actions
          • Set Target = (Picked unit)
          • Custom script: set udg_Handle_Light = GetHandleId(udg_Target)
          • -------- ------------------------------------------------------ --------
          • Set TempReal_Light[1] = (Load 1 of Handle_Light from Hashtable_Light)
          • Set TempReal_Light[2] = (Load 2 of Handle_Light from Hashtable_Light)
          • Set TempReal_Light[3] = (Load 3 of Handle_Light from Hashtable_Light)
          • Set TempReal_Light[4] = (Load 4 of Handle_Light from Hashtable_Light)
          • Set TempReal_Light[5] = (Load 5 of Handle_Light from Hashtable_Light)
          • Set TempReal_Light[6] = (Load 6 of Handle_Light from Hashtable_Light)
          • Set TempReal_Light[7] = (Load 7 of Handle_Light from Hashtable_Light)
          • Set TempReal_Light[8] = (Load 8 of Handle_Light from Hashtable_Light)
          • -------- ------------------------------------------------------ --------
          • -------- 1 = Height --------
          • -------- 2 = Distance --------
          • -------- 3 = Angle --------
          • -------- 4 = Angle --------
          • -------- 5 = Angle --------
          • -------- 6 = Angle --------
          • -------- 7 = Damage --------
          • -------- 8 = AoE --------
          • -------- ------------------------------------------------------ --------
          • Set TempReal_Light[1] = (TempReal_Light[1] x 1.04)
          • Set TempReal_Light[2] = (TempReal_Light[2] x 0.95)
          • Set TempReal_Light[3] = (TempReal_Light[3] + 5.00)
          • Set TempReal_Light[4] = (TempReal_Light[4] + 5.00)
          • Set TempReal_Light[5] = (TempReal_Light[5] + 5.00)
          • Set TempReal_Light[6] = (TempReal_Light[6] + 5.00)
          • Hashtable - Save TempReal_Light[1] as 1 of Handle_Light in Hashtable_Light
          • Hashtable - Save TempReal_Light[2] as 2 of Handle_Light in Hashtable_Light
          • Hashtable - Save TempReal_Light[3] as 3 of Handle_Light in Hashtable_Light
          • Hashtable - Save TempReal_Light[4] as 4 of Handle_Light in Hashtable_Light
          • Hashtable - Save TempReal_Light[5] as 5 of Handle_Light in Hashtable_Light
          • Hashtable - Save TempReal_Light[6] as 6 of Handle_Light in Hashtable_Light
          • Set Group_LightDamage = (Load 20 of Handle_Light in Hashtable_Light)
          • Set PL2 = (Position of Target)
          • -------- --------------------------------------- --------
          • Set LL[1] = (Load 9 of Handle_Light in Hashtable_Light)
          • Set LL[2] = (Load 10 of Handle_Light in Hashtable_Light)
          • Set LL[3] = (Load 11 of Handle_Light in Hashtable_Light)
          • Set LL[4] = (Load 12 of Handle_Light in Hashtable_Light)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • TempReal_Light[1] Greater than or equal to 400.00
              • TempReal_Light[2] Less than or equal to 20.00
            • Then - Actions
              • Set TempReal_Light[11] = (Load 15 of Handle_Light from Hashtable_Light)
              • Set TempReal_Light[11] = (TempReal_Light[11] + 1.00)
              • Hashtable - Save TempReal_Light[11] as 15 of Handle_Light in Hashtable_Light
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • TempReal_Light[11] Equal to 1.00
                • Then - Actions
                  • Special Effect - Create a special effect at PL2 using Abilities\Spells\Other\Awaken\Awaken.mdl
                  • Special Effect - Destroy (Last created special effect)
                  • Special Effect - Create a special effect at PL2 using Abilities\Spells\Orc\Reincarnation\ReincarnationTarget.mdl
                  • Special Effect - Destroy (Last created special effect)
                  • Unit - Create 1 Lightish Thing for Neutral Passive at PL2 facing Default building facing degrees
                  • Animation - Change (Last created unit) flying height to (TempReal_Light[1] - 150.00) at 0.00
                  • Unit - Make (Last created unit) Explode on death
                  • Unit - Add a 0.01 second Generic expiration timer to (Last created unit)
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • TempReal_Light[11] Equal to 20.00
                    • Then - Actions
                      • Set Caster = (Load 13 of Handle_Light in Hashtable_Light)
                      • Set TempReal_Light[12] = 0.00
                      • Set TempReal_Light[0] = (Life of Caster)
                      • Unit Group - Pick every unit in Group_LightDamage and do (Actions)
                        • Loop - Actions
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • ((Picked unit) has buff ()Blast Burn ) Equal to True
                            • Then - Actions
                              • Set TempReal_Light[12] = (TempReal_Light[12] + (TempReal_Light[7] x 0.49))
                              • Special Effect - Create a special effect attached to the origin of (Picked unit) using Abilities\Spells\Other\HealingSpray\HealBottleMissile.mdl
                              • Special Effect - Destroy (Last created special effect)
                              • Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities\Spells\Other\HealingSpray\HealBottleMissile.mdl
                              • Special Effect - Destroy (Last created special effect)
                              • Special Effect - Create a special effect attached to the overhead of (Picked unit) using Abilities\Spells\Other\HealingSpray\HealBottleMissile.mdl
                              • Special Effect - Destroy (Last created special effect)
                            • Else - Actions
                              • Set TempReal_Light[12] = (TempReal_Light[12] + (TempReal_Light[7] x 0.33))
                              • Special Effect - Create a special effect attached to the origin of (Picked unit) using Abilities\Spells\Human\HolyBolt\HolyBoltSpecialArt.mdl
                              • Special Effect - Destroy (Last created special effect)
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • ((Picked unit) has buff ()IceSlow ) Equal to True
                            • Then - Actions
                              • Unit - Create 1 DummyUnit for (Owner of Caster) at PL2 facing Default building facing degrees
                              • Unit - Add Bonus Stack Buff to (Last created unit)
                              • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                              • Unit - Make (Last created unit) Explode on death
                              • Unit - Order (Last created unit) to Human Sorceress - Slow (Picked unit)
                            • Else - Actions
                          • Unit - Cause Caster to damage (Picked unit), dealing TempReal_Light[7] damage of attack type Spells and damage type Divine
                      • Custom script: call DestroyGroup(udg_Group_LightDamage)
                      • -------- ---------------------------------- --------
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • TempReal_Light[12] Less than or equal to (TempReal_Light[0] x 0.33)
                        • Then - Actions
                          • Unit - Set life of Caster to (TempReal_Light[0] + TempReal_Light[12])
                        • Else - Actions
                          • Unit - Set life of Caster to (TempReal_Light[0] + (TempReal_Light[0] x 0.33))
                          • Set TempReal_Light[12] = (TempReal_Light[0] x 0.33)
                      • Set PL1 = (Position of Caster)
                      • -------- ---------------------------------- --------
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • TempReal_Light[12] Greater than or equal to 1.00
                        • Then - Actions
                          • Floating Text - Create floating text that reads (Healed + ((String((Integer(TempReal_Light[12])))) + health!)) at PL1 with Z offset 5.00, using font size 12.00, color (100.00%, 100.00%, 0.00%), and 0.00% transparency
                          • Floating Text - Change (Last created floating text): Disable permanence
                          • Floating Text - Change the lifespan of (Last created floating text) to 2.00 seconds
                          • Floating Text - Change the fading age of (Last created floating text) to 0.25 seconds
                        • Else - Actions
                      • -------- ---------------------------------- --------
                      • For each (Integer Loop) from 1 to 4, do (Actions)
                        • Loop - Actions
                          • Lightning - Destroy LL[Loop]
                      • Hashtable - Clear all child hashtables of child Handle_Light in Hashtable_Light
                      • Unit - Remove Target from the game
                      • Custom script: call RemoveLocation(udg_PL1)
                      • Custom script: call RemoveLocation(udg_PL2)
                      • Set LightTrig = (LightTrig - 1)
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • LightTrig Equal to 0
                        • Then - Actions
                          • Trigger - Turn off (This trigger)
                        • Else - Actions
                    • Else - Actions
            • Else - Actions
              • For each (Integer Loop) from 1 to 4, do (Actions)
                • Loop - Actions
                  • Set PL1 = (PL2 offset by TempReal_Light[2] towards TempReal_Light[(Loop + 2)] degrees)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • TempReal_Light[1] Less than or equal to 175.00
                    • Then - Actions
                      • Special Effect - Create a special effect at PL1 using Abilities\Weapons\SorceressMissile\SorceressMissile.mdl
                      • Special Effect - Destroy (Last created special effect)
                    • Else - Actions
                  • Custom script: set bj_wantDestroyGroup = true
                  • Unit Group - Pick every unit in (Units within TempReal_Light[8] of PL1 matching (((((Matching unit) is A flying unit) Equal to False) and (((Matching unit) is Magic Immune) Equal to False)) and ((((Matching unit) is Resistant) Equal to False) and ((((Matching unit) is A structure) Equal to and do (Actions)
                    • Loop - Actions
                      • Set Caster = (Picked unit)
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Caster is alive) Equal to True
                          • (Caster is in Group_LightDamage) Equal to False
                        • Then - Actions
                          • Unit Group - Add Caster to Group_LightDamage
                          • Special Effect - Create a special effect attached to the origin of Caster using Abilities\Weapons\FaerieDragonMissile\FaerieDragonMissile.mdl
                          • Special Effect - Destroy (Last created special effect)
                        • Else - Actions
                  • Hashtable - Save Handle OfGroup_LightDamage as 20 of Handle_Light in Hashtable_Light
                  • Custom script: call MoveLightningEx(udg_LL[udg_Loop] , true , GetLocationX(udg_PL1), GetLocationY(udg_PL1), GetLocationZ(udg_PL1) + (udg_TempReal_Light[1]) , GetLocationX(udg_PL2), GetLocationY(udg_PL2), GetLocationZ(udg_PL2) + 60)
                  • Hashtable - Save Handle OfLL[Loop] as (8 + Loop) of Handle_Light in Hashtable_Light
                  • Custom script: call RemoveLocation(udg_PL1)
170705-albums4602-picture45060.jpg


Ingame Description - Ice Shatter - Point, Targeting Image

The casters creates a chunk of ice and launches it outwards. All units that come in the way of the ice will suffer damage and will be knocked backwards. The ice will then shatter, slowling nearby units and launching two other shards backs, mimicing its effects.

Level 1 - Damage - 30
Attack Rate Slow % - 30%
Movement Rate Slow % - 50%
Level 2 - Damage - 60
Attack Rate Slow % - 35%
Movement Rate Slow % - 55%
Level 3 - Damage - 90
Attack Rate Slow % - 40%
Movement Rate Slow % - 60%


  • Ice Shatter
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Ice Shatter
    • Actions
      • Set Caster = (Triggering unit)
      • Set PI1 = (Position of Caster)
      • Set PI2 = (Target point of ability being cast)
      • -------- -------------------------- --------
      • Unit - Create 1 Icy Thing for (Triggering player) at PI1 facing TempReal_Ice[1] degrees
      • Set Target = (Last created unit)
      • Unit Group - Add Target to Group_Ice
      • Custom script: set udg_Handle_Ice = GetHandleId(udg_Target)
      • Set TempReal_Ice[1] = (Angle from PI1 to PI2)
      • Set TempReal_Ice[2] = ((Distance between PI1 and PI2) x 0.03)
      • Set TempReal_Ice[3] = 175.00
      • Set TempReal_Ice[4] = (Damage_Ice x (Real((Level of Ice Shatter for Caster))))
      • Set TempReal_Ice[5] = (150.00 + (50.00 x (Real((Level of Ice Shatter for Caster)))))
      • Set TempReal_Ice[9] = (Distance between PI1 and PI2)
      • Set TempReal_Ice[10] = 0.00
      • -------- ------------------------------------- --------
      • Hashtable - Save TempReal_Ice[1] as 1 of Handle_Ice in Hashtable_Ice
      • Hashtable - Save TempReal_Ice[2] as 2 of Handle_Ice in Hashtable_Ice
      • Hashtable - Save TempReal_Ice[3] as 3 of Handle_Ice in Hashtable_Ice
      • Hashtable - Save TempReal_Ice[4] as 4 of Handle_Ice in Hashtable_Ice
      • Hashtable - Save TempReal_Ice[5] as 5 of Handle_Ice in Hashtable_Ice
      • Hashtable - Save TempReal_Ice[9] as 9 of Handle_Ice in Hashtable_Ice
      • Hashtable - Save TempReal_Ice[10] as 10 of Handle_Ice in Hashtable_Ice
      • Hashtable - Save Handle OfCaster as 6 of Handle_Ice in Hashtable_Ice
      • -------- ------------------------------------- --------
      • Set IceTrig = (IceTrig + 1)
      • Trigger - Turn on IceLoop <gen>
      • Custom script: call RemoveLocation(udg_PI1)
      • Custom script: call RemoveLocation(udg_PI2)
  • IceLoop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in Group_Ice and do (Actions)
        • Loop - Actions
          • Set Target = (Picked unit)
          • Custom script: set udg_Handle_Ice = GetHandleId(udg_Target)
          • Set TempReal_Ice[1] = (Load 1 of Handle_Ice from Hashtable_Ice)
          • Set TempReal_Ice[2] = (Load 2 of Handle_Ice from Hashtable_Ice)
          • Set TempReal_Ice[3] = (Load 3 of Handle_Ice from Hashtable_Ice)
          • Set TempReal_Ice[4] = (Load 4 of Handle_Ice from Hashtable_Ice)
          • Set TempReal_Ice[5] = (Load 5 of Handle_Ice from Hashtable_Ice)
          • Set TempReal_Ice[9] = (Load 9 of Handle_Ice from Hashtable_Ice)
          • Set TempReal_Ice[10] = (Load 10 of Handle_Ice from Hashtable_Ice)
          • Set TempReal_Ice[13] = (Load 13 of Handle_Ice from Hashtable_Ice)
          • Set Caster = (Load 6 of Handle_Ice in Hashtable_Ice)
          • -------- --------------------------------------------------------- --------
          • -------- 1 = Angle --------
          • -------- 2 = Distance --------
          • -------- 3 = Size --------
          • -------- 4 = Damage --------
          • -------- 5 = AoE --------
          • -------- 9 = Distance --------
          • -------- 10 = DistanceCheck --------
          • -------- --------------------------------------------------------- --------
          • Set PI1 = (Position of Target)
          • Set PI2 = (PI1 offset by TempReal_Ice[2] towards TempReal_Ice[1] degrees)
          • Unit - Move Target instantly to PI2
          • Set TempReal_Ice[3] = (TempReal_Ice[3] - 1.00)
          • Set TempReal_Ice[10] = (TempReal_Ice[10] + TempReal_Ice[2])
          • Animation - Change Target's size to (TempReal_Ice[3]%, TempReal_Ice[3]%, TempReal_Ice[3]%) of its original size
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • TempReal_Ice[3] Less than or equal to 160.00
            • Then - Actions
              • Animation - Change Target's animation speed to 0.00% of its original speed
            • Else - Actions
          • Hashtable - Save TempReal_Ice[3] as 3 of Handle_Ice in Hashtable_Ice
          • Hashtable - Save TempReal_Ice[10] as 10 of Handle_Ice in Hashtable_Ice
          • -------- --------------------------------------------------------- --------
          • -------- --------------------------------------------------------- --------
          • -------- --------------------------------------------------------- --------
          • Set KBCheck = (Region centered at PI2 with size (16.00, 16.00))
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Or - Any (Conditions) are true
                • Conditions
                  • (KBCheck contains Target) Equal to False
                  • (Terrain pathing at PI2 of type Walkability is off) Not equal to False
                  • TempReal_Ice[9] Less than or equal to TempReal_Ice[10]
            • Then - Actions
              • Unit - Create 1 DummyUnit for (Owner of Target) at PI2 facing Default building facing degrees
              • Unit - Add IceSlow to (Last created unit)
              • -------- --------------------------------------------------------- --------
              • Set BooleanIce = (Load 11 of Handle_Ice from Hashtable_Ice)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • BooleanIce Equal to True
                • Then - Actions
                  • Unit - Set level of IceSlow for (Last created unit) to ((Level of Ice Shatter for Caster) x 2)
                • Else - Actions
                  • Unit - Set level of IceSlow for (Last created unit) to (Level of Ice Shatter for Caster)
              • -------- --------------------------------------------------------- --------
              • Unit - Order (Last created unit) to Human Mountain King - Thunder Clap
              • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
              • Unit - Make (Last created unit) Explode on death
              • -------- --------------------------------------------------------- --------
              • Hashtable - Clear all child hashtables of child Handle_Ice in Hashtable_Ice
              • -------- --------------------------------------------------------- --------
              • Animation - Change Target's animation speed to 100.00% of its original speed
              • Unit - Add a 0.01 second Generic expiration timer to Target
              • -------- --------------------------------------------------------- --------
              • Unit Group - Remove Target from Group_Ice
              • Unit - Make Target Explode on death
              • -------- --------------------------------------------------------- --------
              • Special Effect - Create a special effect at PI1 using Abilities\Spells\Human\ThunderClap\ThunderClapCaster.mdl
              • Special Effect - Destroy (Last created special effect)
              • Special Effect - Create a special effect at PI1 using Abilities\Weapons\FrostWyrmMissile\FrostWyrmMissile.mdl
              • Special Effect - Destroy (Last created special effect)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • TempReal_Ice[13] Equal to 0.00
                • Then - Actions
                  • Unit - Create 1 Icy Thing for (Owner of Target) at PI1 facing (TempReal_Ice[1] + 225.00) degrees
                  • Set Target = (Last created unit)
                  • Unit Group - Add Target to Group_Ice
                  • -------- --------------------------------------- --------
                  • Custom script: set udg_Handle_Ice = GetHandleId(udg_Target)
                  • -------- --------------------------------------- --------
                  • Custom script: call RemoveLocation(udg_PI2)
                  • Set PI2 = (Position of (Last created unit))
                  • Special Effect - Create a special effect at PI1 using Abilities\Weapons\FrostWyrmMissile\FrostWyrmMissile.mdl
                  • Special Effect - Destroy (Last created special effect)
                  • Set TempReal_Ice[1] = (Facing of Target)
                  • Set TempReal_Ice[2] = 9.00
                  • Set TempReal_Ice[3] = 175.00
                  • Set TempReal_Ice[4] = (Damage_Ice x (Real((Level of Ice Shatter for Caster))))
                  • Set TempReal_Ice[5] = (150.00 + (50.00 x (Real((Level of Ice Shatter for Caster)))))
                  • Set TempReal_Ice[9] = 300.00
                  • Set TempReal_Ice[10] = 0.00
                  • Hashtable - Save Handle OfCaster as 6 of Handle_Ice in Hashtable_Ice
                  • -------- ------------------------------ --------
                  • Hashtable - Save TempReal_Ice[1] as 1 of Handle_Ice in Hashtable_Ice
                  • Hashtable - Save TempReal_Ice[2] as 2 of Handle_Ice in Hashtable_Ice
                  • Hashtable - Save TempReal_Ice[3] as 3 of Handle_Ice in Hashtable_Ice
                  • Hashtable - Save TempReal_Ice[4] as 4 of Handle_Ice in Hashtable_Ice
                  • Hashtable - Save TempReal_Ice[5] as 5 of Handle_Ice in Hashtable_Ice
                  • -------- ------------------------------ --------
                  • Hashtable - Save Handle OfCaster as 6 of Handle_Ice in Hashtable_Ice
                  • Hashtable - Save TempReal_Ice[9] as 9 of Handle_Ice in Hashtable_Ice
                  • Hashtable - Save TempReal_Ice[10] as 10 of Handle_Ice in Hashtable_Ice
                  • Hashtable - Save 1.00 as 13 of Handle_Ice in Hashtable_Ice
                  • -------- --------------------------------------- --------
                  • -------- --------------------------------------- --------
                  • Set IceTrig = (IceTrig + 2)
                  • -------- --------------------------------------- --------
                  • Unit - Create 1 Icy Thing for (Owner of Target) at PI1 facing (TempReal_Ice[1] - 90.00) degrees
                  • Set Target = (Last created unit)
                  • Unit Group - Add Target to Group_Ice
                  • -------- --------------------------------------- --------
                  • Custom script: set udg_Handle_Ice = GetHandleId(udg_Target)
                  • -------- --------------------------------------- --------
                  • Custom script: call RemoveLocation(udg_PI2)
                  • Set PI2 = (Position of (Last created unit))
                  • Special Effect - Create a special effect at PI1 using Abilities\Weapons\FrostWyrmMissile\FrostWyrmMissile.mdl
                  • Special Effect - Destroy (Last created special effect)
                  • Set TempReal_Ice[1] = (Facing of Target)
                  • Set TempReal_Ice[2] = 9.00
                  • Set TempReal_Ice[3] = 175.00
                  • Set TempReal_Ice[4] = (Damage_Ice x (Real((Level of Ice Shatter for Caster))))
                  • Set TempReal_Ice[5] = (150.00 + (50.00 x (Real((Level of Ice Shatter for Caster)))))
                  • Set TempReal_Ice[9] = 300.00
                  • Set TempReal_Ice[10] = 0.00
                  • Hashtable - Save Handle OfCaster as 6 of Handle_Ice in Hashtable_Ice
                  • -------- --------------------------------------- --------
                  • Hashtable - Save TempReal_Ice[1] as 1 of Handle_Ice in Hashtable_Ice
                  • Hashtable - Save TempReal_Ice[2] as 2 of Handle_Ice in Hashtable_Ice
                  • Hashtable - Save TempReal_Ice[3] as 3 of Handle_Ice in Hashtable_Ice
                  • Hashtable - Save TempReal_Ice[4] as 4 of Handle_Ice in Hashtable_Ice
                  • Hashtable - Save TempReal_Ice[5] as 5 of Handle_Ice in Hashtable_Ice
                  • -------- --------------------------------------- --------
                  • Hashtable - Save Handle OfCaster as 6 of Handle_Ice in Hashtable_Ice
                  • Hashtable - Save TempReal_Ice[9] as 9 of Handle_Ice in Hashtable_Ice
                  • Hashtable - Save TempReal_Ice[10] as 10 of Handle_Ice in Hashtable_Ice
                  • Hashtable - Save 1.00 as 13 of Handle_Ice in Hashtable_Ice
                • Else - Actions
              • Set IceTrig = (IceTrig - 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • IceTrig Equal to 0
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                • Else - Actions
            • Else - Actions
              • Custom script: set bj_wantDestroyGroup = true
              • Unit Group - Pick every unit in (Units within TempReal_Ice[5] of PI2 matching ((((Matching unit) is A flying unit) Equal to False) and ((((Matching unit) is alive) Equal to True) and ((((Matching unit) belongs to an ally of (Owner of Target)) Equal to False) and ((((Matching unit) is A stru and do (Actions)
                • Loop - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Unit-type of Target) Equal to Icy Thing
                      • ((Picked unit) has buff ()Blast Burn ) Equal to True
                    • Then - Actions
                      • Animation - Change Target's vertex coloring to (100.00%, 0.00%, 25.00%) with 0.00% transparency
                      • Set BooleanIce = True
                      • Hashtable - Save BooleanIce as 11 of Handle_Ice in Hashtable_Ice
                    • Else - Actions
                  • Set Target = (Picked unit)
                  • Set PI2 = (Position of Target)
                  • Custom script: set udg_Handle_Ice = GetHandleId(udg_Target)
                  • Hashtable - Save 600.00 as 7 of Handle_Ice in Hashtable_Ice
                  • Hashtable - Save (Angle from PI1 to PI2) as 8 of Handle_Ice in Hashtable_Ice
                  • Unit - Cause Caster to damage Target, dealing TempReal_Ice[4] damage of attack type Spells and damage type Cold
                  • Special Effect - Create a special effect attached to the origin of Target using Abilities\Weapons\FrostWyrmMissile\FrostWyrmMissile.mdl
                  • Special Effect - Destroy (Last created special effect)
                  • Unit Group - Add Target to Group_IceKB
                  • Custom script: call RemoveLocation(udg_PI2)
                  • Set IceTrig = (IceTrig + 1)
          • Custom script: call RemoveLocation(udg_PI1)
          • Custom script: call RemoveLocation(udg_PI2)
          • Custom script: call RemoveRect(udg_KBCheck)
      • -------- ------------------------------------ --------
      • -------- ------------------------------------ --------
      • -------- ------------------------------------ --------
      • -------- ------------------------------------ --------
      • -------- ------------------------------------ --------
      • -------- ------------------------------------ --------
      • Unit Group - Pick every unit in Group_IceKB and do (Actions)
        • Loop - Actions
          • Set Target = (Picked unit)
          • Custom script: set udg_Handle_Ice = GetHandleId(udg_Target)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Mana of (Picked unit)) Greater than or equal to 1.00
              • (Target has buff ()Nightmare ) Equal to True
            • Then - Actions
              • Unit - Set mana of Target to ((Mana of Target) - Damage_Dark)
            • Else - Actions
          • -------- ------------------------------ --------
          • Set TempReal_Ice[7] = (Load 7 of Handle_Ice from Hashtable_Ice)
          • Set TempReal_Ice[8] = (Load 8 of Handle_Ice from Hashtable_Ice)
          • -------- ------------------------------ --------
          • Set TempReal_Ice[7] = (TempReal_Ice[7] x 0.95)
          • Hashtable - Save TempReal_Ice[7] as 7 of Handle_Ice in Hashtable_Ice
          • Set PI1 = (Position of Target)
          • Set PI2 = (PI1 offset by (TempReal_Ice[7] x 0.03) towards TempReal_Ice[8] degrees)
          • Unit - Move Target instantly to PI2, facing TempReal_Ice[8] degrees
          • Set KBCheck = (Region centered at PI2 with size (64.00, 64.00))
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Or - Any (Conditions) are true
                • Conditions
                  • TempReal_Ice[7] Less than or equal to 60.00
                  • (KBCheck contains Target) Equal to False
                  • (Target is alive) Equal to False
                  • (Target is paused) Equal to True
                  • (Target is hidden) Equal to True
                  • (Target is sleeping) Equal to True
                  • (Target has buff Anti-magic Shell) Equal to True
                  • (Target has buff Anti-magic Shell (Extra)) Equal to True
                  • (Target has buff Divine Shield) Equal to True
                  • (Target is Snared) Equal to True
                  • (Target is in Group_KnockBackBlast) Equal to True
            • Then - Actions
              • Unit Group - Remove Target from Group_IceKB
              • -------- ------------------------------ --------
              • Hashtable - Clear all child hashtables of child Handle_Ice in Hashtable_Ice
              • Set IceTrig = (IceTrig - 1)
              • -------- ------------------------------ --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • IceTrig Equal to 0
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                • Else - Actions
              • Special Effect - Create a special effect at PI1 using Abilities\Weapons\FrostWyrmMissile\FrostWyrmMissile.mdl
              • Special Effect - Destroy (Last created special effect)
              • Special Effect - Create a special effect at PI2 using Abilities\Weapons\FrostWyrmMissile\FrostWyrmMissile.mdl
              • Special Effect - Destroy (Last created special effect)
            • Else - Actions
          • Custom script: call RemoveLocation(udg_PI1)
          • Custom script: call RemoveLocation(udg_PI2)
          • Custom script: call RemoveRect(udg_KBCheck)
170705-albums4602-picture45061.jpg


Ingame Description - Electric Storm - Instant, No Target

The caster launches several bolts of lightning outward. Units caught in the lightning's path will suffer damage and a reduction to damage.

Level 1 - Damage Minimum - 15
Bolts - 2
Level 2 - Damage Minimum - 30
Bolts - 4
Level 3 - Damage Minimum - 45
Bolts - 6


  • StormCast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Electric Storm
    • Actions
      • Set Caster = (Triggering unit)
      • Set PS1 = (Position of Caster)
      • Set TempReal_Storm[0] = ((Facing of Caster) - (20.00 x (Real((Level of Electric Storm for Caster)))))
      • -------- ------------------------------------------------------------ --------
      • For each (Integer Loop) from 1 to ((Level of Electric Storm for Caster) x 2), do (Actions)
        • Loop - Actions
          • -------- ------------------------------------------------------------ --------
          • Set TempReal_Storm[0] = (TempReal_Storm[0] + 20.00)
          • Set PS2 = (PS1 offset by Offset_Storm towards TempReal_Storm[0] degrees)
          • -------- ------------------------------------------------------------ --------
          • Unit - Create 1 Lightningish Thing for (Triggering player) at PS2 facing Default building facing degrees
          • Set Target = (Last created unit)
          • Custom script: set udg_Handle_Storm = GetHandleId(udg_Target)
          • Unit Group - Add Target to Group_Storm
          • -------- ------------------------------------------------------------ --------
          • Set TempReal_Storm[1] = TempReal_Storm[0]
          • Set TempReal_Storm[2] = 40.00
          • Set TempReal_Storm[3] = (Damage_Storm x (Real((Level of Electric Storm for Caster))))
          • Set TempReal_Storm[4] = (30.00 x (Real((Level of Electric Storm for Caster))))
          • Set TempReal_Storm[5] = (Offset_Storm x 1.50)
          • Set TempReal_Storm[6] = 0.00
          • Set TempReal_Storm[7] = 0.00
          • Set TempReal_Storm[8] = 0.00
          • -------- ------------------------------------------------------------ --------
          • Hashtable - Save Handle OfCaster as 9 of Handle_Storm in Hashtable_Storm
          • -------- ------------------------------------------------------------ --------
          • Hashtable - Save TempReal_Storm[1] as 1 of Handle_Storm in Hashtable_Storm
          • Hashtable - Save TempReal_Storm[2] as 2 of Handle_Storm in Hashtable_Storm
          • Hashtable - Save TempReal_Storm[3] as 3 of Handle_Storm in Hashtable_Storm
          • Hashtable - Save TempReal_Storm[4] as 4 of Handle_Storm in Hashtable_Storm
          • Hashtable - Save TempReal_Storm[5] as 5 of Handle_Storm in Hashtable_Storm
          • Hashtable - Save TempReal_Storm[6] as 6 of Handle_Storm in Hashtable_Storm
          • Hashtable - Save TempReal_Storm[7] as 7 of Handle_Storm in Hashtable_Storm
          • Hashtable - Save TempReal_Storm[8] as 8 of Handle_Storm in Hashtable_Storm
          • Set StormTrig = (StormTrig + 1)
          • Custom script: call RemoveLocation(udg_PS2)
      • Custom script: call RemoveLocation(udg_PS1)
      • Trigger - Turn on StormLOOP <gen>
  • StormLOOP
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in Group_Storm and do (Actions)
        • Loop - Actions
          • Set Target = (Picked unit)
          • Custom script: set udg_Handle_Storm = GetHandleId(udg_Target)
          • Set PS1 = (Position of Target)
          • Set TempReal_Storm[1] = (Load 1 of Handle_Storm from Hashtable_Storm)
          • Set TempReal_Storm[2] = (Load 2 of Handle_Storm from Hashtable_Storm)
          • Set TempReal_Storm[3] = (Load 3 of Handle_Storm from Hashtable_Storm)
          • Set TempReal_Storm[4] = (Load 4 of Handle_Storm from Hashtable_Storm)
          • Set TempReal_Storm[5] = (Load 5 of Handle_Storm from Hashtable_Storm)
          • Set TempReal_Storm[6] = (Load 6 of Handle_Storm from Hashtable_Storm)
          • Set TempReal_Storm[7] = (Load 7 of Handle_Storm from Hashtable_Storm)
          • Set TempReal_Storm[8] = (Load 8 of Handle_Storm from Hashtable_Storm)
          • -------- ------------------------------------------------------------------------------------- --------
          • Set Caster = (Load 9 of Handle_Storm in Hashtable_Storm)
          • -------- ------------------------------------------------------------------------------------- --------
          • -------- 1 = Angle --------
          • -------- 2 = Offset --------
          • -------- 3 = Damage --------
          • -------- 4 = AoE --------
          • -------- 5 = Maximum Distance --------
          • -------- 6 = Count --------
          • -------- 7 = Boolean Statement --------
          • -------- 8 = Current Distance --------
          • -------- ------------------------------------------------------------------------------------- --------
          • Set TempReal_Storm[6] = (TempReal_Storm[6] + 1.00)
          • Set TempReal_Storm[8] = (TempReal_Storm[8] + TempReal_Storm[2])
          • Hashtable - Save TempReal_Storm[1] as 1 of Handle_Storm in Hashtable_Storm
          • Hashtable - Save TempReal_Storm[6] as 6 of Handle_Storm in Hashtable_Storm
          • Hashtable - Save TempReal_Storm[8] as 8 of Handle_Storm in Hashtable_Storm
          • Set PS2 = (PS1 offset by TempReal_Storm[2] towards TempReal_Storm[1] degrees)
          • -------- ------------------------------------------------------------------------------------- --------
          • -------- ------------------------------------------------------------------------------------- --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • TempReal_Storm[6] Equal to 10.00
            • Then - Actions
              • Animation - Change Target's animation speed to 0.00% of its original speed
            • Else - Actions
          • Custom script: call SetUnitX(udg_Target,GetLocationX(udg_PS2))
          • Custom script: call SetUnitY(udg_Target,GetLocationY(udg_PS2))
          • Custom script: set bj_wantDestroyGroup = true
          • Unit Group - Pick every unit in (Units within TempReal_Storm[4] of PS2 matching (((((Matching unit) has buff Divine Shield) Equal to False) and ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and ((((Matching unit) is alive) Equal t and do (Actions)
            • Loop - Actions
              • Set PickedUnit = (Picked unit)
              • Unit - Cause Caster to damage PickedUnit, dealing TempReal_Storm[3] damage of attack type Spells and damage type Lightning
              • Special Effect - Create a special effect attached to the origin of PickedUnit using Abilities\Weapons\FarseerMissile\FarseerMissile.mdl
              • Special Effect - Destroy (Last created special effect)
              • -------- ----------------------------------------------- --------
              • -------- ----------------------------------------------- --------
              • -------- ----------------------------------------------- --------
              • -------- ----------------------------------------------- --------
              • Set AbilityLevel = (Level of Electric Storm for Caster)
              • Unit - Create 1 DummyUnit for (Owner of Caster) at PS2 facing Default building facing degrees
              • Unit - Add Reduced Damage (Neutral Hostile) to (Last created unit)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (PickedUnit has buff ()Blast Burn ) Equal to True
                • Then - Actions
                  • Unit - Set level of Reduced Damage (Neutral Hostile) for (Last created unit) to (AbilityLevel x 2)
                • Else - Actions
                  • Unit - Set level of Reduced Damage (Neutral Hostile) for (Last created unit) to AbilityLevel
              • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
              • Unit - Make (Last created unit) Explode on death
              • Unit - Order (Last created unit) to Undead Necromancer - Cripple PickedUnit
              • -------- ----------------------------------------------- --------
              • -------- ----------------------------------------------- --------
              • -------- ----------------------------------------------- --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (PickedUnit has buff ()IceSlow ) Equal to True
                • Then - Actions
                  • Unit - Create 1 DummyUnit for (Owner of Caster) at PS2 facing Default building facing degrees
                  • Unit - Add DoT (Neutral Hostile) to (Last created unit)
                  • Unit - Set level of DoT (Neutral Hostile) for (Last created unit) to AbilityLevel
                  • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                  • Unit - Make (Last created unit) Explode on death
                  • Unit - Order (Last created unit) to Undead Necromancer - Unholy Frenzy PickedUnit
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (PickedUnit has buff ()IceSlowExtra ) Equal to True
                    • Then - Actions
                      • Unit - Create 1 DummyUnit for (Owner of Caster) at PS2 facing Default building facing degrees
                      • Unit - Add DoT (Neutral Hostile) to (Last created unit)
                      • Unit - Set level of DoT (Neutral Hostile) for (Last created unit) to (AbilityLevel x 2)
                      • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                      • Unit - Make (Last created unit) Explode on death
                      • Unit - Order (Last created unit) to Undead Necromancer - Unholy Frenzy PickedUnit
                    • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • BooleanStorm Equal to False
                  • Or - Any (Conditions) are true
                    • Conditions
                      • (PickedUnit is in Group_LightDamage) Equal to True
                      • (PickedUnit is in Group_IceKB) Equal to True
                      • (PickedUnit is in Group_KnockBackBlast) Equal to True
                • Then - Actions
                  • Set BooleanStorm = True
                  • Hashtable - Save BooleanStorm as 13 of Handle_Storm in Hashtable_Storm
                • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • TempReal_Storm[6] Equal to 15.00
            • Then - Actions
              • Set BooleanStorm = (Load 13 of Handle_Storm from Hashtable_Storm)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • BooleanStorm Equal to True
                • Then - Actions
                  • Unit - Create 1 DummyUnit for (Owner of Caster) at PS2 facing Default building facing degrees
                  • Unit - Add Lightflare+E to (Last created unit)
                  • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                  • Unit - Make (Last created unit) Explode on death
                  • Unit - Order (Last created unit) to Human Mortar Team - Flare PS2
                • Else - Actions
              • Special Effect - Create a special effect at PS2 using Abilities\Spells\Human\ThunderClap\ThunderClapCaster.mdl
              • Special Effect - Destroy (Last created special effect)
              • Animation - Change Target's animation speed to 100.00% of its original speed
              • Unit - Add a 0.01 second Generic expiration timer to Target
              • Unit - Make Target Explode on death
              • Unit Group - Remove Target from Group_Storm
              • Hashtable - Clear all child hashtables of child Handle_Storm in Hashtable_Storm
              • Set StormTrig = (StormTrig - 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • StormTrig Equal to 0
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                • Else - Actions
            • Else - Actions
          • Custom script: call RemoveLocation(udg_PS1)
          • Custom script: call RemoveLocation(udg_PS2)
170705-albums4602-picture45062.jpg


Ingame Description - Darkness Overflow - Point, Targeting Image

The caster unleashes a massive wave of darkness. All units within the darkness begin to enter a nightmare. Units in a nightmare are asleep and suffer damage to mana.

Level 1 - Mana Drain Base - .33
Level 2 - Mana Drain Base - .66
Level 3 - Mana Drain Base - .99


  • DarkOver
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Darkness Overflow
    • Actions
      • Set Caster = (Triggering unit)
      • Set PD1 = (Target point of ability being cast)
      • Unit - Create 1 Death Dummy for (Triggering player) at PD1 facing Default building facing degrees
      • Set Target = (Last created unit)
      • Unit Group - Add Target to Group_Dark
      • Animation - Change Target's animation speed to 300.00% of its original speed
      • Custom script: set udg_Handle_Dark = GetHandleId(udg_Target)
      • Set TempReal_Dark[1] = 100.00
      • Set TempReal_Dark[2] = 20.00
      • Set TempReal_Dark[3] = (Damage_Dark x (Real((Level of Darkness Overflow for Caster))))
      • Set TempReal_Dark[4] = 900.00
      • Set TempReal_Dark[5] = 0.00
      • Hashtable - Save Handle OfCaster as 7 of Handle_Dark in Hashtable_Dark
      • Hashtable - Save TempReal_Dark[1] as 1 of Handle_Dark in Hashtable_Dark
      • Hashtable - Save TempReal_Dark[2] as 2 of Handle_Dark in Hashtable_Dark
      • Hashtable - Save TempReal_Dark[3] as 3 of Handle_Dark in Hashtable_Dark
      • Hashtable - Save TempReal_Dark[4] as 4 of Handle_Dark in Hashtable_Dark
      • Hashtable - Save TempReal_Dark[5] as 5 of Handle_Dark in Hashtable_Dark
      • Set DarkTrig = (DarkTrig + 1)
      • Trigger - Turn on DarkLoop <gen>
      • Special Effect - Create a special effect at PD1 using Abilities\Spells\Undead\Unsummon\UnsummonTarget.mdl
      • Special Effect - Destroy (Last created special effect)
      • Custom script: call RemoveLocation(udg_PD1)
  • DarkLoop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in Group_Dark and do (Actions)
        • Loop - Actions
          • Set Target = (Picked unit)
          • Custom script: set udg_Handle_Dark = GetHandleId(udg_Target)
          • Set TempReal_Dark[1] = (Load 1 of Handle_Dark from Hashtable_Dark)
          • Set TempReal_Dark[2] = (Load 2 of Handle_Dark from Hashtable_Dark)
          • Set TempReal_Dark[3] = (Load 3 of Handle_Dark from Hashtable_Dark)
          • Set TempReal_Dark[4] = (Load 4 of Handle_Dark from Hashtable_Dark)
          • Set TempReal_Dark[5] = (Load 5 of Handle_Dark from Hashtable_Dark)
          • -------- ------------------------------------------ --------
          • -------- 1 = Size --------
          • -------- 2 = Size Increase --------
          • -------- 3 = Mana Drain --------
          • -------- 4 = Maximum --------
          • -------- 5 = Boolean True/False --------
          • -------- ------------------------------------------ --------
          • Custom script: call SetUnitFacing( udg_Target, ( GetUnitFacing(udg_Target) + 32.00 ))
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • TempReal_Dark[5] Equal to 1.00
            • Then - Actions
              • Set TempReal_Dark[1] = (TempReal_Dark[1] - TempReal_Dark[2])
            • Else - Actions
              • Set TempReal_Dark[1] = (TempReal_Dark[1] + TempReal_Dark[2])
          • -------- ------------------------------------------ --------
          • -------- ------------------------------------------ --------
          • -------- ------------------------------------------ --------
          • -------- ------------------------------------------ --------
          • Animation - Change Target's size to (TempReal_Dark[1]%, TempReal_Dark[1]%, TempReal_Dark[1]%) of its original size
          • Hashtable - Save TempReal_Dark[1] as 1 of Handle_Dark in Hashtable_Dark
          • -------- ------------------------------------------ --------
          • -------- ------------------------------------------ --------
          • -------- ------------------------------------------ --------
          • -------- ------------------------------------------ --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • TempReal_Dark[5] Equal to 1.00
              • TempReal_Dark[1] Less than or equal to 70.00
            • Then - Actions
              • Set PD1 = (Position of Target)
              • Special Effect - Create a special effect at PD1 using Abilities\Spells\Undead\Unsummon\UnsummonTarget.mdl
              • Special Effect - Destroy (Last created special effect)
              • Custom script: call RemoveLocation(udg_PD1)
              • -------- ------------------------------------------ --------
              • -------- ------------------------------------------ --------
              • -------- ------------------------------------------ --------
              • Unit Group - Remove Target from Group_Dark
              • Hashtable - Clear all child hashtables of child Handle_Dark in Hashtable_Dark
              • Set DarkTrig = (DarkTrig - 1)
              • -------- ------------------------------------------ --------
              • -------- ------------------------------------------ --------
              • -------- ------------------------------------------ --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • DarkTrig Equal to 0
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                • Else - Actions
              • Unit - Explode Target
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • TempReal_Dark[1] Greater than or equal to TempReal_Dark[4]
              • TempReal_Dark[5] Not equal to 1.00
            • Then - Actions
              • Set PD1 = (Position of Target)
              • Custom script: call RemoveLocation(udg_PD1)
              • -------- ------------------------------------------ --------
              • -------- ------------------------------------------ --------
              • -------- ------------------------------------------ --------
              • Set TempReal_Dark[5] = 1.00
              • Set TempReal_Dark[2] = (TempReal_Dark[2] x 2.75)
              • Hashtable - Save TempReal_Dark[5] as 5 of Handle_Dark in Hashtable_Dark
              • Hashtable - Save TempReal_Dark[2] as 2 of Handle_Dark in Hashtable_Dark
              • Set PD1 = (Position of Target)
              • Set Caster = (Load 7 of Handle_Dark in Hashtable_Dark)
              • -------- ------------------------------------------ --------
              • -------- ------------------------------------------ --------
              • -------- ------------------------------------------ --------
              • Custom script: set bj_wantDestroyGroup = true
              • Unit Group - Pick every unit in (Units within 500.00 of PD1 matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Mechanical) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and ((((Matching unit) is Sleeping) Equal to False) and ((((M and do (Actions)
                • Loop - Actions
                  • Set PickedUnit = (Picked unit)
                  • Unit - Create 1 DummyUnit for (Owner of Target) at PD1 facing Default building facing degrees
                  • Unit - Add Nightmare (Neutral Hostile) to (Last created unit)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (PickedUnit has buff ()Damage Reduced ) Equal to True
                    • Then - Actions
                      • Unit - Set level of Nightmare (Neutral Hostile) for (Last created unit) to ((Level of Darkness Overflow for Caster) x 2)
                    • Else - Actions
                      • Unit - Set level of Nightmare (Neutral Hostile) for (Last created unit) to (Level of Darkness Overflow for Caster)
                  • Unit - Order (Last created unit) to Undead Dreadlord - Sleep PickedUnit
                  • Unit Group - Add PickedUnit to Group_DarkDrain
                  • Set DarkTrig = (DarkTrig + 1)
                  • Custom script: set udg_Handle_Dark = GetHandleId(GetEnumUnit())
                  • Hashtable - Save TempReal_Dark[3] as 8 of Handle_Dark in Hashtable_Dark
                  • Hashtable - Save 0.00 as 9 of Handle_Dark in Hashtable_Dark
              • Custom script: call RemoveLocation(udg_PD1)
            • Else - Actions
      • Unit Group - Pick every unit in Group_DarkDrain and do (Actions)
        • Loop - Actions
          • Set Target = (Picked unit)
          • Custom script: set udg_Handle_Dark = GetHandleId(udg_Target)
          • Set TempReal_Dark[8] = (Load 8 of Handle_Dark from Hashtable_Dark)
          • Set TempReal_Dark[8] = (TempReal_Dark[8] x 1.25)
          • Set TempReal_Dark[9] = (Load 9 of Handle_Dark from Hashtable_Dark)
          • Set TempReal_Dark[9] = (TempReal_Dark[9] + 1.00)
          • Hashtable - Save TempReal_Dark[8] as 8 of Handle_Dark in Hashtable_Dark
          • Hashtable - Save TempReal_Dark[9] as 9 of Handle_Dark in Hashtable_Dark
          • Unit - Set mana of (Picked unit) to ((Mana of (Picked unit)) - (Damage_Dark x TempReal_Dark[8]))
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Or - Any (Conditions) are true
                • Conditions
                  • TempReal_Dark[9] Greater than or equal to 17.00
                  • (Mana of Target) Less than or equal to 10.00
                  • (Target is alive) Equal to False
            • Then - Actions
              • Set PD1 = (Position of Target)
              • Special Effect - Create a special effect at PD1 using Abilities\Spells\Undead\DeathPact\DeathPactTarget.mdl
              • Special Effect - Destroy (Last created special effect)
              • Unit Group - Remove Target from Group_DarkDrain
              • Set DarkTrig = (DarkTrig - 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • DarkTrig Equal to 0
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                • Else - Actions
              • Hashtable - Clear all child hashtables of child Handle_Dark in Hashtable_Dark
              • Custom script: call RemoveLocation(udg_PD1)
            • Else - Actions
170705-albums4602-picture45063.jpg




170705-albums4602-picture45064.jpg

170705-albums4602-picture45102.jpg



Upload Log
1.0 Uploaded
1.1 Edited Knockback a bit, Changed Lightning Effects slightly.
1.2 Big Overhaul for Lightflare & Blast Burn, thanks to Bribe.
1.3 Several updates to the knockback, made it look better. Also fixed a bug thanks to Marsal2000.
1.4 More updates thanks to Bribe.
1.5 " "
Keywords:
Elemental,Ele,Dark,Evil,Ebil,Light,Good,Goodeness,Paladin,Heal,Healing,Spell,MUI,Pack,Leak,Leakless,Hashtable,Water,Ice,Shatter,Burn,Fire,Blast,Angel,
Contents

Archangel678 Elemental Spell Pack (Map)

Reviews
Bribe: The system itself looks extremely good, you've patched up all the memory leaks that I could find and it's also extremely efficient. Very good work you've put into this library and I'm proud to approve it.

Moderator

M

Moderator

Bribe:

The system itself looks extremely good, you've patched up all the memory leaks that I could find and it's also extremely efficient. Very good work you've put into this library and I'm proud to approve it.
 
Level 10
Joined
Apr 25, 2009
Messages
296
Please comment and [rainbow]rate.[/rainbow]


[rainbow]PRO[/rainbow]

Mui
Leakless
Configurable
All abilities interlock with another.
Buffs can affect other buffs.
Little Lagg
Eyecandy, but not enough to kill your taste buds.
Pictures!

[rainbow]CON[/rainbow]
Uses Hashtables
Affects can be a tab bit overpowered.
Knockbacks aren't 'perfect.' That's fixed.



This is original right? There's only like 10 others? Still original?

Considering that about 7 out of 10 are rejected/non mui, this was made. Also, few include lightning and fire...

This was intended for a friend to help, but he was unable to. We were trying to create a spellpack. Thus, this was my half of the pack.

Note that I feel this is my best work overall - pictures don't really describe it. Just... test it.


The extra buffs have to be applied when both effects are active.
Example: You cast blast burn, wait a bit, then cast lightflare. Blast Burn crashed down, and because the units are in the lightflare group, they receive the 2x stun duration.


1 = Lightflare
2 = Blast Burn
3 = Ice Shatter
4 = Electric Storm
5 = Darkness Overflow


100+ Hits in 3 days - Thanks guys ^.^


Click Here for more pictures...
 
Last edited:
I'm checking it out
one minute.

EDIT:
I will be constantly editting this post for the next 10-20 minutes.

1- Using hashtables is definitely not a con.

2- Anytime you create lightning, try to use the Custom script for it because it will give it Z (height)
This way, it'll look MUCH better (Give it a Z of about 35.00 - 40.00)

...

3- You may be moving lightning and giving it height, but if you create it with the custom script too, it would
be better (idk how, but it will lol ;p)

4- If you want to make your Knockback better all by yourself and be proud of it, use math and linear functions.

5- Make sure your speed will decrease exponentially.

For example:

This is how the speed should decrease over a time of 3 seconds:

attachment.php


...

Is darkness overflow MUI? Idk.. it just seems like it should bug with the "DarkTrig" integer.

I like the fact you're using SetUnitX / SetUnitY



That's the end of my review for this spell.
It's time for me to go to sleep now before my dad finds me xD
Good night.

Rating and Comment:

5/5
I see no flaws in your spells.
Just fix the knockback and some other things i pointed out.
Good Job!


EDIT:
One more thing i forgot to mention: The linear function i used for the diagram in Microsoft Excel is y = Sqrt(x)
I'll attatch the file if you want.
One minute.

NVM - Xlsx files are not supported here.
I gave it in a screenshot:
attachment.php


Good luck :)
 

Attachments

  • exponential dec.png
    exponential dec.png
    17.9 KB · Views: 6,559
  • v;rbenlvrnls.png
    v;rbenlvrnls.png
    29.3 KB · Views: 6,387
Last edited:
Level 10
Joined
Apr 25, 2009
Messages
296
Thanks!

I'll see about editing the lightning - The knockbacks aren't perfect mostly due to it may move into a cliff and out, usually the case with most knockbacks. I'll defiantly look through them though. - Done.

I'll give you rep when I can.

Oh, and Darkness is Mui. It turns off when it reaches 0, thus, It should work. If anyone sees any bugs I'll fix 'em.
 
Last edited:

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,180
This spell uses arrays where by normal variables would be more suited. The only time an array should be used is if the index referenced is variable. Utalizing an array only via static indicies defeats its purpose and has the same results as using separate variables except that separate variables are faster as no index bytes have to be loaded.
 
Level 16
Joined
Jun 24, 2009
Messages
1,409
Such a nice bunch of spells and the effects are pretty good :)
The only problem I noticed is that when you spawn the Electric Storm it will only damage a unit once until there is any running instance.

5/5 ~.~

1- Using hashtables is definitely not a con.

It's definetly a con because it's slower than indexing. But that's not a big problem until it's MUI ~.~
 
Level 10
Joined
Apr 25, 2009
Messages
296
This spell uses arrays where by normal variables would be more suited. The only time an array should be used is if the index referenced is variable. Utalizing an array only via static indicies defeats its purpose and has the same results as using separate variables except that separate variables are faster as no index bytes have to be loaded.

I'll see what I can update, any specifications will help alot.
I used arrays mostly for making my life easier, but if it makes the spells better/more efficient then I'll see what I can updated.

Such a nice bunch of spells and the effects are pretty good :)
The only problem I noticed is that when you spawn the Electric Storm it will only damage a unit once until there is any running instance.

5/5 ~.~

Thanks Marsal2000!
I didn't have any trouble with that - Could you tell me how your produced it?
(If its with the triggers point those out ^^)
 
Level 16
Joined
Jun 24, 2009
Messages
1,409
Of course! But I can't point in the trigger because I don't know how to use hashtables ~.~
For example: If you cast the spell 2 or more times in a sec (so you spawn it as hell) only the first one will damage the units and until all the instances are done this unit can't take more damage from this spell. Well it's maybe just for me, I don't know. A time ago I made a spell that had problems because some instances are bugged and I asked for help and attached the spell. The ones who tested the spell just didn't have that problem ~.~
 
Good Job Archangel :D
Just one more thing to increase efficiency.
In one of your triggers (I forgot which one since i'm writing this on the second page =P), you repeated the function (Last Created Unit) about 5-6 times xD
If you store the Last Created Unit in a variable, it'll be much faster.

And btw, i now agree that hashtables are a con, but they're only 2x slower than indexing, and indexing is pretty fast lol (for GUI XD)
 
Level 10
Joined
Apr 25, 2009
Messages
296
Good Job Archangel :D
Just one more thing to increase efficiency.
In one of your triggers (I forgot which one since i'm writing this on the second page =P), you repeated the function (Last Created Unit) about 5-6 times xD
If you store the Last Created Unit in a variable, it'll be much faster.

And btw, i now agree that hashtables are a con, but they're only 2x slower than indexing, and indexing is pretty fast lol (for GUI XD)

Thanks!
I'll see to this when I can - I've been busy lately.


I like this spell pack, already added your name to the credits list of spell makers. XD XD

Glad to hear this :)
 
Top