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

X-OMG-X's Spellpack v1.4

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
  • Like
Reactions: Piwlady and Azsure
Yo.

A spellpack with currently 10 spells. Some of them will be improved soon and there will also be added new spells. My goal is to create 2 spells for each of the categories below:
Lightning, Light, Earth, Nature, Fire, Water, Darkness, ???


Electricity Stomp
Stomps the ground, stunning and damaging all nearby enemies hit by the electricity coming up from the ground. Units close to the caster will take 25 extra damage. If an enemy hero is hit by the electricity it will take 2x its own intelligence in damage and will have a 10% chance to release a new electricity stomp.

Electric Push
Charges massive lightnings to push the target enemy. The pushed unit will be knocked back for 400 range. When pushed the caster throws electricity in all directions around the caster dealing 25/50/75 damage to all nearby units.

Divine Surrounding
When attacked, there will be a 15/30/45% chance to surround the attacking unit with a divine shield thats blocks all attacks from the unit and makes it unable to move for 1/2/3 seconds.

Sunrise
Creates a shiny sun that shines on all units in 200/400/600 range. The sun will heal all friendly units in range and there will be a 50% chance to make the sun shiny really much and damage all enemy units in rage by 2x intelligence.

Torment of Spikes
Creates a box of spikes at a target area. Units within the box will be tormented by massive spikes coming up from the ground. The spiked units will be damaged by 45/90/135 and be stunned for 1/2/3 seconds.

Rockcircle
Creates a circle of massive rocks around the caster that boxes ground units within the circle and makes ground units outside the circle unable to enter it. Each rock lasts for 10 seconds and upon death they will explode and deal 30/60/90 damage to all enemy units near them.

Entangelious
The caster causes the ground to overgroth and entangle all enemy units in 200/300/400 range. The entangled units will not be able to move and will take 20/30/40 damage every second. The overgroth lasts 3/5/8 seconds.

Overgrown
The caster makes the ground overgrowth and stops all units in its area. The units hit by the ovegrowth will take 20/40/60 damage each overgrowth explosion.

Flame Wheel
Sends a wave of flames in a target direction and when it reaches its target it explodes and creates a circle of fire around the targeted point. The fire deals damage equalt to 0.5/1.0/1.5 x the casters strenght, but units with more than 60% hitpoints is resistant for the flames and wont take damage.

Fire Burst
Causes random 3/5/7 explosions around the caster, splitting into smaller fire bolts, that deals 10/20/30 damage to all close enemy units.

Black Hole
Opens a black hole at a target area that pulls nearby enemy units into it. When a unit reaches the center of the hole, it will be damaged for 25/50/75 + 2x the level of the casting unit. Destroys trees.

Sacrificial
Casts an unholy mist around the caster. The mist steals 10/20/30% hitpoints from all enemy units and if the unit have less than 30% hitpoints it will be instantly killed. The casting unit will pay 2% of its life, for each enemy unit affacted by the mist. When the mist disappears it destroys all the casters negative buffs and there will be a 40% chance to give the casting unit an incredibly fast attackspeed but will take 5 hitpoints each second. Lasts 10 seconds.


  • Electricity Stomp
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Electricity Stomp
    • Actions
      • -------- Okay lets start with setting the variables --------
      • Set ES_Caster = (Triggering unit)
      • Set ES_Point = (Position of ES_Caster)
      • Set ES_Level = (Level of Electricity Stomp for ES_Caster)
      • -------- Now we start the pretty circle --------
      • For each (Integer ES_Integer) from 1 to 10, do (Actions)
        • Loop - Actions
          • -------- Here we set the points in the circle --------
          • Set ES_Offset = (ES_Point offset by 250.00 towards ((Real(ES_Integer)) x 36.00) degrees)
          • -------- Now we create the dummies --------
          • Unit - Create 1 Dummy for (Owner of ES_Caster) at ES_Offset facing Default building facing degrees
          • Unit - Add Electricity Stomp (Dummy) to (Last created unit)
          • Unit - Set level of Electricity Stomp (Dummy) for (Last created unit) to ES_Level
          • Unit - Order (Last created unit) to Orc Tauren Chieftain - War Stomp
          • -------- And now its time for the effects --------
          • Special Effect - Create a special effect at ES_Offset using Abilities\Weapons\Bolt\BoltImpact.mdl
          • Special Effect - Destroy (Last created special effect)
          • Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
          • -------- And now we remove the leaks --------
          • Custom script: call RemoveLocation(udg_ES_Offset)
      • For each (Integer ES_Integer) from 1 to 15, do (Actions)
        • Loop - Actions
          • -------- As we did in the lines above we set variables --------
          • Set ES_Offset2 = (ES_Point offset by 400.00 towards ((Real(ES_Integer)) x 24.00) degrees)
          • -------- And creates the dummies --------
          • Unit - Create 1 Dummy for (Owner of ES_Caster) at ES_Offset2 facing Default building facing degrees
          • Unit - Add Electricity Stomp (Dummy) to (Last created unit)
          • Unit - Set level of Electricity Stomp (Dummy) for (Last created unit) to ES_Level
          • Unit - Order (Last created unit) to Orc Tauren Chieftain - War Stomp
          • -------- Creates the effects --------
          • Special Effect - Create a special effect at ES_Offset2 using Abilities\Weapons\Bolt\BoltImpact.mdl
          • Special Effect - Destroy (Last created special effect)
          • Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
          • -------- And removing the leaks --------
          • Custom script: call RemoveLocation(udg_ES_Offset2)
      • -------- Now we pick all heroes in the area --------
      • Set ES_Group = (Units within 550.00 of ES_Point matching ((((Matching unit) is A Hero) Equal to True) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an ally of (Owner of ES_Caster)) Equal to False))))
      • Unit Group - Pick every unit in ES_Group and do (Actions)
        • Loop - Actions
          • -------- And we damage the picked units --------
          • Unit - Cause ES_Caster to damage (Picked unit), dealing ((Real((Intelligence of (Picked unit) (Include bonuses)))) x 2.00) damage of attack type Spells and damage type Normal
          • -------- Now we show the special effects --------
          • Special Effect - Create a special effect attached to the overhead of (Picked unit) using Abilities\Spells\Items\AIlb\AIlbSpecialArt.mdl
          • Special Effect - Destroy (Last created special effect)
      • -------- Here we set the chance to do doublecast --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Random real number between 1.00 and 100.00) Less than or equal to 10.00
        • Then - Actions
          • -------- And we simply makes a dummy cast the spell --------
          • Set ES_PickedPos = (Position of (Picked unit))
          • Unit - Create 1 Dummy for (Owner of ES_Caster) at ES_PickedPos facing Default building facing degrees
          • Unit - Add Electricity Stomp to (Last created unit)
          • Unit - Order (Last created unit) to Orc Tauren Chieftain - War Stomp
          • Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
        • Else - Actions
      • -------- And at last we remove the leaks --------
      • Custom script: call RemoveLocation(udg_ES_Point)
      • Custom script: call DestroyGroup(udg_ES_Group)
      • -------- ---------------------------- --------
      • -------- ---------------------------- --------
      • -------- Spell by X-OMG-X --------
      • -------- ---------------------------- --------
  • Electric Push
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Electric Push
    • Actions
      • -------- First of all we set all the needed variables --------
      • Set KBA_Caster = (Triggering unit)
      • Set KBA_TargetUnit = (Target unit of ability being cast)
      • Set KBA_StartingPosition = (Position of (Triggering unit))
      • Set KBA_Level = 1
      • Set KBA_Speed = 3.00
      • Set KBA_DistancePerLevel = 450.00
      • Set KBA_SpecialEffects[1] = Abilities\Weapons\Bolt\BoltImpact.mdl
      • Set KBA_SpecialEffects[2] = Abilities\Weapons\Bolt\BoltImpact.mdl
      • Set KBA_DestroyTrees = True
      • -------- Now we deal damage to the targeted unti --------
      • Unit - Cause KBA_TargetUnit to damage KBA_TargetUnit, dealing 100.00 damage of attack type Spells and damage type Normal
      • -------- And here we go --------
      • For each (Integer EP_Integer) from 1 to 10, do (Actions)
        • Loop - Actions
          • -------- We set the variable --------
          • Set EP_Offset = (KBA_StartingPosition offset by 250.00 towards ((Real(EP_Integer)) x 36.00) degrees)
          • -------- We create the dummies and makes them cast the spell --------
          • Unit - Create 1 Dummy for (Owner of KBA_Caster) at EP_Offset facing Default building facing degrees
          • Unit - Add Electricity Stomp (Dummy) to (Last created unit)
          • Unit - Set level of Electricity Stomp (Dummy) for (Last created unit) to (Level of Electric Push for KBA_Caster)
          • Unit - Order (Last created unit) to Orc Tauren Chieftain - War Stomp
          • -------- Creates the special effects --------
          • Special Effect - Create a special effect at EP_Offset using Abilities\Spells\Human\Thunderclap\ThunderClapCaster.mdl
          • Special Effect - Destroy (Last created special effect)
          • Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
          • -------- And removes the leaks --------
          • Custom script: call RemoveLocation(udg_EP_Offset)
      • -------- And now we turn the knockback on --------
      • -------- ---------------------------- --------
      • -------- DO NOT EDIT THE KNOCKBACK TRIGGERS --------
      • Trigger - Run Cast A Knockback <gen> (checking conditions)
      • -------- DO NOT EDIT THE KNOCKBACK TRIGGERS --------
      • -------- ---------------------------- --------
      • -------- ---------------------------- --------
      • -------- Spell by X-OMG-X --------
      • -------- ---------------------------- --------
  • Cast A Knockback
    • Events
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (KBA_TargetUnit is in KB_KnockbackedUnits) Equal to True
        • Then - Actions
          • Unit Group - Remove KBA_TargetUnit from KB_KnockbackedUnits
          • Set KB_CountBuffs = (KB_CountBuffs - 1)
          • For each (Integer KB_GeneralIntegers[2]) from 1 to KB_TotalKnockUnits, do (Actions)
            • Loop - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • KB_Units[KB_GeneralIntegers[1]] Equal to KBA_TargetUnit
                • Then - Actions
                  • Set KB_GeneralIntegers[1] = KB_GeneralIntegers[2]
                  • Set KB_GeneralIntegers[2] = KB_TotalKnockUnits
                • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • KB_TotalKnockUnits Greater than KB_GeneralIntegers[1]
            • Then - Actions
              • Set KB_Levels[KB_GeneralIntegers[1]] = KB_Levels[KB_TotalKnockUnits]
              • Set KB_Units[KB_GeneralIntegers[1]] = KB_Units[KB_TotalKnockUnits]
              • Set KB_Angle[KB_GeneralIntegers[1]] = KB_Angle[KB_TotalKnockUnits]
              • Set KB_MaxDistance[KB_GeneralIntegers[1]] = KB_MaxDistance[KB_TotalKnockUnits]
              • Set KB_ReachedDistance[KB_GeneralIntegers[1]] = KB_ReachedDistance[KB_TotalKnockUnits]
              • Set KB_ReduceSpeedReal[KB_GeneralIntegers[1]] = KB_ReduceSpeedReal[KB_TotalKnockUnits]
              • Set KB_SpecificSpeed[KB_GeneralIntegers[1]] = KB_SpecificSpeed[KB_TotalKnockUnits]
              • Set KB_Effects_1[KB_GeneralIntegers[1]] = KB_Effects_1[KB_TotalKnockUnits]
              • Set KB_Effects_2[KB_GeneralIntegers[1]] = KB_Effects_2[KB_TotalKnockUnits]
              • Set KB_DestroyTrees[KB_GeneralIntegers[1]] = KB_DestroyTrees[KB_TotalKnockUnits]
              • Set KB_EffectCounter[KB_GeneralIntegers[1]] = KB_EffectCounter[KB_TotalKnockUnits]
              • Set KB_EffectCounter2[KB_GeneralIntegers[1]] = KB_EffectCounter2[KB_TotalKnockUnits]
              • Set KB_GeneralIntegers[1] = (KB_GeneralIntegers[1] - 1)
            • Else - Actions
          • Set KB_Units[KB_TotalKnockUnits] = No unit
          • Set KB_TotalKnockUnits = (KB_TotalKnockUnits - 1)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • KB_CountBuffs Equal to 0
            • Then - Actions
              • Set KB_TotalKnockUnits = 0
              • Trigger - Turn off Get Knockback <gen>
            • Else - Actions
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • KB_CountBuffs Equal to 0
        • Then - Actions
          • Trigger - Turn on Get Knockback <gen>
        • Else - Actions
      • Set KB_CountBuffs = (KB_CountBuffs + 1)
      • Set KB_TotalKnockUnits = (KB_TotalKnockUnits + 1)
      • Set KB_Casters[KB_TotalKnockUnits] = KBA_Caster
      • Set KB_Levels[KB_TotalKnockUnits] = KBA_Level
      • Set KB_Units[KB_TotalKnockUnits] = KBA_TargetUnit
      • Set KB_StartPositions[KB_TotalKnockUnits] = KBA_StartingPosition
      • Set KB_TempPoint[KB_TotalKnockUnits] = (Position of KBA_TargetUnit)
      • Set KB_Angle[KB_TotalKnockUnits] = (Angle from KB_StartPositions[KB_TotalKnockUnits] to KB_TempPoint[KB_TotalKnockUnits])
      • Set KB_MaxDistance[KB_TotalKnockUnits] = (KBA_DistancePerLevel x (Real(KBA_Level)))
      • Set KB_ReachedDistance[KB_TotalKnockUnits] = 0.00
      • Set KB_ReduceSpeedReal[KB_GeneralIntegers[1]] = 0.00
      • Set KB_SpecificSpeed[KB_TotalKnockUnits] = KBA_Speed
      • Set KB_Effects_1[KB_TotalKnockUnits] = KBA_SpecialEffects[1]
      • Set KB_Effects_2[KB_TotalKnockUnits] = KBA_SpecialEffects[2]
      • Set KB_DestroyTrees[KB_TotalKnockUnits] = KBA_DestroyTrees
      • Set KB_EffectCounter[KB_GeneralIntegers[1]] = 0
      • Set KB_EffectCounter2[KB_GeneralIntegers[1]] = 0
      • Unit Group - Add KBA_TargetUnit to KB_KnockbackedUnits
      • Custom script: call RemoveLocation (udg_KBA_StartingPosition)
      • Custom script: call RemoveLocation (udg_KB_TempPoint [udg_KB_TotalKnockUnits] )
      • Custom script: call RemoveLocation (udg_KB_StartPositions [udg_KB_TotalKnockUnits] )
      • -------- ---------------------------- --------
      • -------- ---------------------------- --------
      • -------- Spell by X-OMG-X --------
      • -------- ---------------------------- --------
  • Get Knockback
    • Events
      • Time - Every 0.02 seconds of game time
    • Conditions
    • Actions
      • For each (Integer KB_GeneralIntegers[1]) from 1 to KB_TotalKnockUnits, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (KB_Units[KB_GeneralIntegers[1]] is in KB_KnockbackedUnits) Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • KB_ReachedDistance[KB_GeneralIntegers[1]] Greater than or equal to KB_MaxDistance[KB_GeneralIntegers[1]]
                • Then - Actions
                  • Unit Group - Remove KB_Units[KB_GeneralIntegers[1]] from KB_KnockbackedUnits
                  • Set KB_CountBuffs = (KB_CountBuffs - 1)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • KB_TotalKnockUnits Greater than KB_GeneralIntegers[1]
                    • Then - Actions
                      • Set KB_Levels[KB_GeneralIntegers[1]] = KB_Levels[KB_TotalKnockUnits]
                      • Set KB_Units[KB_GeneralIntegers[1]] = KB_Units[KB_TotalKnockUnits]
                      • Set KB_Angle[KB_GeneralIntegers[1]] = KB_Angle[KB_TotalKnockUnits]
                      • Set KB_MaxDistance[KB_GeneralIntegers[1]] = KB_MaxDistance[KB_TotalKnockUnits]
                      • Set KB_ReachedDistance[KB_GeneralIntegers[1]] = KB_ReachedDistance[KB_TotalKnockUnits]
                      • Set KB_ReduceSpeedReal[KB_GeneralIntegers[1]] = KB_ReduceSpeedReal[KB_TotalKnockUnits]
                      • Set KB_SpecificSpeed[KB_GeneralIntegers[1]] = KB_SpecificSpeed[KB_TotalKnockUnits]
                      • Set KB_Effects_1[KB_GeneralIntegers[1]] = KB_Effects_1[KB_TotalKnockUnits]
                      • Set KB_Effects_2[KB_GeneralIntegers[1]] = KB_Effects_2[KB_TotalKnockUnits]
                      • Set KB_DestroyTrees[KB_GeneralIntegers[1]] = KB_DestroyTrees[KB_TotalKnockUnits]
                      • Set KB_EffectCounter[KB_GeneralIntegers[1]] = KB_EffectCounter[KB_TotalKnockUnits]
                      • Set KB_EffectCounter2[KB_GeneralIntegers[1]] = KB_EffectCounter2[KB_TotalKnockUnits]
                      • Set KB_GeneralIntegers[1] = (KB_GeneralIntegers[1] - 1)
                    • Else - Actions
                  • Set KB_Units[KB_TotalKnockUnits] = No unit
                  • Set KB_TotalKnockUnits = (KB_TotalKnockUnits - 1)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • KB_CountBuffs Equal to 0
                    • Then - Actions
                      • Set KB_TotalKnockUnits = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                • Else - Actions
                  • Set KB_ReducedReal = ((KB_SpecificSpeed[KB_GeneralIntegers[1]] / KB_MaxDistance[KB_GeneralIntegers[1]]) x KB_ReachedDistance[KB_GeneralIntegers[1]])
                  • Set KB_ReduceSpeedReal[KB_GeneralIntegers[1]] = (KB_ReducedReal - (KB_ReduceSpeedReal[KB_GeneralIntegers[1]] x 0.10))
                  • Set KB_TempReal = ((KB_SpecificSpeed[KB_GeneralIntegers[1]] - KB_ReduceSpeedReal[KB_GeneralIntegers[1]]) x 2.00)
                  • Set KB_TempPoint[1] = (Position of KB_Units[KB_GeneralIntegers[1]])
                  • Set KB_TempPoint[2] = (KB_TempPoint[1] offset by KB_TempReal towards KB_Angle[KB_GeneralIntegers[1]] degrees)
                  • Set KB_EffectCounter[KB_GeneralIntegers[1]] = (KB_EffectCounter[KB_GeneralIntegers[1]] + 1)
                  • Set KB_EffectCounter2[KB_GeneralIntegers[1]] = (KB_EffectCounter2[KB_GeneralIntegers[1]] + 1)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • KB_DestroyTrees[KB_GeneralIntegers[1]] Equal to True
                    • Then - Actions
                      • Destructible - Pick every destructible within 200.00 of KB_TempPoint[2] and do (Actions)
                        • Loop - Actions
                          • Destructible - Kill (Picked destructible)
                    • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • KB_EffectCounter[KB_GeneralIntegers[1]] Equal to 6
                    • Then - Actions
                      • Set KB_EffectCounter[KB_GeneralIntegers[1]] = 0
                      • Special Effect - Create a special effect at KB_TempPoint[1] using KB_Effects_1[KB_GeneralIntegers[1]]
                      • Special Effect - Destroy (Last created special effect)
                    • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • KB_EffectCounter2[KB_GeneralIntegers[1]] Equal to 8
                    • Then - Actions
                      • Set KB_EffectCounter2[KB_GeneralIntegers[1]] = 0
                      • Special Effect - Create a special effect at KB_TempPoint[1] using KB_Effects_2[KB_GeneralIntegers[1]]
                      • Special Effect - Destroy (Last created special effect)
                    • Else - Actions
                  • Unit - Move KB_Units[KB_GeneralIntegers[1]] instantly to KB_TempPoint[2]
                  • Custom script: call RemoveLocation (udg_KB_TempPoint[1])
                  • Custom script: call RemoveLocation (udg_KB_TempPoint[2])
                  • Set KB_ReachedDistance[KB_GeneralIntegers[1]] = (KB_ReachedDistance[KB_GeneralIntegers[1]] + KB_TempReal)
            • Else - Actions
      • -------- ---------------------------- --------
      • -------- ---------------------------- --------
      • -------- Spell by X-OMG-X --------
      • -------- ---------------------------- --------
  • Divine Surrounding
    • Events
      • Unit - A unit Is attacked
    • Conditions
      • (Random integer number between 1 and 100) Less than or equal to (15 x (Level of Divine Surrounding for (Attacked unit)))
      • (Level of Divine Surrounding for (Attacked unit)) Not equal to 0
    • Actions
      • -------- Okay here we go. We set variables --------
      • Set ED_Attacked = (Attacked unit)
      • Set ED_Attacking = (Attacking unit)
      • -------- We create the needed dummy --------
      • Unit - Create 1 Dummy for (Owner of ED_Attacked) at (Position of ED_Attacking) facing Default building facing degrees
      • Unit - Add a 1.50 second Generic expiration timer to (Last created unit)
      • Unit - Add Divine Surrounding (Dummy) to (Last created unit)
      • Unit - Order (Last created unit) to Human Sorceress - Slow ED_Attacking
      • -------- And now set the level. --------
      • -------- DO NOT EDIT THIS LINE --------
      • If ((Level of Divine Surrounding for ED_Attacked) Equal to 1) then do (Unit - Add Divine Surrounding (Dummy) to (Last created unit)) else do (Unit - Set level of Divine Surrounding (Dummy) for (Last created unit) to (Level of Divine Surrounding for ED_Attacked))
      • -------- DO NOT EDIT THIS LINE --------
      • -------- ---------------------------- --------
      • -------- ---------------------------- --------
      • -------- Spell by X-OMG-X --------
      • -------- ---------------------------- --------
  • Sunrise
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Sunrise
    • Actions
      • -------- Setting the required variables --------
      • Set SU_Caster = (Triggering unit)
      • Set SU_Intelligence = (Intelligence of SU_Caster (Include bonuses))
      • Set SU_Position = (Position of (Triggering unit))
      • Set SU_Group = (Units within (200.00 x (Real((Level of Sunrise for SU_Caster)))) of SU_Position matching (((Matching unit) belongs to an ally of (Owner of SU_Caster)) Equal to True))
      • -------- Picking the units in range --------
      • Unit Group - Pick every unit in SU_Group and do (Actions)
        • Loop - Actions
          • -------- Creating special effects and heals --------
          • 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)
          • Unit - Cause (Picked unit) to damage (Picked unit), dealing ((Real(SU_Intelligence)) x -2.00) damage of attack type Spells and damage type Normal
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Random real number between 1.00 and 100.00) Less than or equal to 50.00
        • Then - Actions
          • -------- Picking enemy units --------
          • Set SU_Enemies = (Units within (200.00 x (Real((Level of Sunrise for SU_Caster)))) of SU_Position matching (((Matching unit) belongs to an enemy of (Owner of SU_Caster)) Equal to True))
          • Unit Group - Pick every unit in SU_Enemies and do (Actions)
            • Loop - Actions
              • -------- Creates effects and deals damage --------
              • Special Effect - Create a special effect attached to the origin of (Picked unit) using Abilities\Spells\Human\Resurrect\ResurrectTarget.mdl
              • Special Effect - Destroy (Last created special effect)
              • Unit - Cause (Picked unit) to damage (Picked unit), dealing ((Real(SU_Intelligence)) x 2.00) damage of attack type Spells and damage type Normal
          • Custom script: call DestroyGroup(udg_SU_Enemies)
        • Else - Actions
      • -------- Removes the leaks --------
      • Custom script: call RemoveLocation(udg_SU_Position)
      • Custom script: call DestroyGroup(udg_SU_Group)
      • -------- ---------------------------- --------
      • -------- ---------------------------- --------
      • -------- Spell by X-OMG-X --------
      • -------- ---------------------------- --------
  • Torment of Spikes
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Torment of Spikes
    • Actions
      • -------- Setting the variables --------
      • Set CU_Caster = (Triggering unit)
      • Set CU_Point = (Target point of ability being cast)
      • Set CU_Group = (Units within 400.00 of CU_Point)
      • For each (Integer CU_Integer) from 1 to 10, do (Actions)
        • Loop - Actions
          • -------- Setting the circle --------
          • Set CU_Offset = (CU_Point offset by 400.00 towards ((Real(CU_Integer)) x 36.00) degrees)
          • -------- Creating effects --------
          • Special Effect - Create a special effect at CU_Offset using Abilities\Spells\Undead\Impale\ImpaleHitTarget.mdl
          • Special Effect - Destroy (Last created special effect)
          • -------- Creating the needed dummies --------
          • Unit - Create 1 Dummy for (Owner of CU_Caster) at CU_Offset facing Default building facing degrees
          • Unit - Add Torment of Spikes (Dummy) to (Last created unit)
          • Unit - Order (Last created unit) to Undead Crypt Lord - Impale CU_Point
          • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
          • Custom script: call RemoveLocation(udg_CU_Offset)
      • -------- Removes the leaks --------
      • Custom script: call RemoveLocation(udg_CU_Point)
      • Custom script: call DestroyGroup(udg_CU_Group)
      • -------- ---------------------------- --------
      • -------- ---------------------------- --------
      • -------- Spell by X-OMG-X --------
      • -------- ---------------------------- --------
  • Rockcircle
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Rockcircle
    • Actions
      • -------- Setting variables --------
      • Set RC_Caster = (Triggering unit)
      • Set RC_Point = (Position of RC_Caster)
      • For each (Integer RC_Integer) from 1 to 10, do (Actions)
        • Loop - Actions
          • -------- Setting the circle --------
          • Set RC_Offset = (RC_Point offset by (((Real((Level of Rockcircle for RC_Caster))) x 100.00) + 200.00) towards ((Real(RC_Integer)) x 18.00) degrees)
          • -------- Creates the rocks --------
          • Unit - Create 1 Dummy (Rockcircle) for (Owner of RC_Caster) at RC_Offset facing Default building facing degrees
          • Unit - Add a 10.00 second Generic expiration timer to (Last created unit)
          • -------- Makes the summon effects --------
          • Special Effect - Create a special effect at RC_Offset using Abilities\Spells\Other\Volcano\VolcanoDeath.mdl
          • Special Effect - Destroy (Last created special effect)
          • Custom script: call RemoveLocation(udg_RC_Offset)
      • -------- Removes the leaks --------
      • Custom script: call RemoveLocation(udg_RC_Point)
      • -------- ---------------------------- --------
      • -------- ---------------------------- --------
      • -------- Spell by X-OMG-X --------
      • -------- ---------------------------- --------
  • RockcircleDestroy
    • Events
      • Unit - A unit Dies
    • Conditions
      • (Unit-type of (Dying unit)) Equal to Dummy (Rockcircle)
    • Actions
      • -------- Sets the point --------
      • Set RC_EffectPoint = (Position of (Dying unit))
      • -------- Creates the effect --------
      • Special Effect - Create a special effect at RC_EffectPoint using Abilities\Spells\Orc\WarStomp\WarStompCaster.mdl
      • Special Effect - Destroy (Last created special effect)
      • -------- Creates a dummy --------
      • Unit - Create 1 Dummy for (Owner of RC_Caster) at RC_EffectPoint facing Default building facing degrees
      • Unit - Add Rockcircle (Dummy) to (Last created unit)
      • Unit - Order (Last created unit) to Orc Tauren Chieftain - War Stomp
      • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
      • -------- Removes the leaks --------
      • Custom script: call RemoveLocation(udg_RC_EffectPoint)
      • -------- ---------------------------- --------
      • -------- ---------------------------- --------
      • -------- Spell by X-OMG-X --------
      • -------- ---------------------------- --------
  • Entangelious
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Entangelious
    • Actions
      • -------- Setting needed variables --------
      • Set EN_Caster = (Triggering unit)
      • Set EN_Point = (Position of EN_Caster)
      • Set EN_Group = (Units within (((Real((Level of Entangelious for EN_Caster))) x 100.00) + 200.00) of EN_Point matching ((Matching unit) Not equal to EN_Caster))
      • -------- Picking the units --------
      • Unit Group - Pick every unit in EN_Group and do (Actions)
        • Loop - Actions
          • -------- Setting the picked unit --------
          • Set EN_PickedPos = (Position of (Picked unit))
          • -------- Creating dummies and entangles --------
          • Unit - Create 1 Dummy for (Owner of EN_Caster) at EN_PickedPos facing Default building facing degrees
          • Unit - Add Entangelious (Dummy) to (Last created unit)
          • Unit - Set level of Entangelious (Dummy) for (Last created unit) to (Level of Entangelious for EN_Caster)
          • Unit - Order (Last created unit) to Night Elf Keeper Of The Grove - Entangling Roots (Picked unit)
          • Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
      • -------- Removes all leaks --------
      • Custom script: call RemoveLocation(udg_EN_Point)
      • Custom script: call DestroyGroup(udg_EN_Group)
      • -------- ---------------------------- --------
      • -------- ---------------------------- --------
      • -------- Spell by X-OMG-X --------
      • -------- ---------------------------- --------
  • Overgrown
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Overgrown
    • Actions
      • -------- Sets the variables --------
      • Set OV_Caster = (Triggering unit)
      • Set OV_Point = (Position of OV_Caster)
      • For each (Integer OV_Integer) from 1 to 5, do (Actions)
        • Loop - Actions
          • -------- Sets the circle's area --------
          • Set OV_Offset = (OV_Point offset by 200.00 towards ((Real(OV_Integer)) x 72.00) degrees)
          • -------- Creating the dummies and makes them cast their spell --------
          • Unit - Create 1 Dummy for (Owner of OV_Caster) at OV_Offset facing Default building facing degrees
          • Unit - Add Overgrown (Dummy) to (Last created unit)
          • Unit - Set level of Overgrown (Dummy) for (Last created unit) to (Level of Overgrown for OV_Caster)
          • Unit - Order (Last created unit) to Orc Tauren Chieftain - War Stomp
          • -------- Now to the special effects --------
          • Special Effect - Create a special effect at OV_Offset using Objects\Spawnmodels\NightElf\EntBirthTarget\EntBirthTarget.mdl
          • Special Effect - Destroy (Last created special effect)
          • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
          • -------- Removing leaks --------
          • Custom script: call RemoveLocation(udg_OV_Offset)
          • For each (Integer OV_Integer) from 1 to 10, do (Actions)
            • Loop - Actions
              • -------- Making the second circle --------
              • Set OV_Offset = (OV_Point offset by 400.00 towards ((Real(OV_Integer)) x 36.00) degrees)
              • -------- Making the effects for it --------
              • Special Effect - Create a special effect at OV_Offset using Objects\Spawnmodels\NightElf\EntBirthTarget\EntBirthTarget.mdl
              • Special Effect - Destroy (Last created special effect)
              • Custom script: call RemoveLocation(udg_OV_Offset)
      • -------- Removes the leaks --------
      • Custom script: call RemoveLocation(udg_OV_Point)
      • -------- ---------------------------- --------
      • -------- ---------------------------- --------
      • -------- Spell by X-OMG-X --------
      • -------- ---------------------------- --------
  • Flame Wheel
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Flame Wheel
    • Actions
      • Set FW_Caster = (Triggering unit)
      • Set FW_Level = (Level of Flame Wheel for FW_Caster)
      • Set FW_Strength = (Strength of FW_Caster (Include bonuses))
      • Set FW_Integer = (Level of Flame Wheel for FW_Caster)
      • Set FW_Point = (Target point of ability being cast)
      • For each (Integer FW_Integer) from 1 to 20, do (Actions)
        • Loop - Actions
          • -------- Here we set the points in the circle --------
          • Set FW_Offset = (FW_Point offset by 300.00 towards ((Real(FW_Integer)) x 18.00) degrees)
          • -------- Now we create the dummies --------
          • Unit - Create 1 Dummy for (Owner of FW_Caster) at FW_Offset facing Default building facing degrees
          • Unit - Add Flame Wheel (Dummy) to (Last created unit)
          • Unit - Order (Last created unit) to Night Elf Mountain Giant - Taunt
          • -------- And now its time for the effects --------
          • Special Effect - Create a special effect at FW_Offset using Environment\LargeBuildingFire\LargeBuildingFire2.mdl
          • Special Effect - Destroy (Last created special effect)
          • Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
          • -------- Here we pick the units --------
          • Set FW_Group = (Units within 75.00 of FW_Offset matching (((Matching unit) Not equal to FW_Caster) and ((((Matching unit) is alive) Equal to True) and ((((Matching unit) belongs to an enemy of (Owner of FW_Caster)) Equal to True) and ((Percentage life of (Matching unit)) Le
          • Unit Group - Pick every unit in FW_Group and do (Actions)
            • Loop - Actions
              • -------- and we damage --------
              • Unit - Cause FW_Caster to damage (Picked unit), dealing ((Real(FW_Strength)) x (0.50 x (Real(FW_Level)))) damage of attack type Spells and damage type Normal
              • Special Effect - Create a special effect attached to the origin of (Picked unit) using Abilities\Spells\Undead\Cripple\CrippleTarget.mdl
              • Special Effect - Destroy (Last created special effect)
          • -------- And now we remove the leaks --------
          • Custom script: call DestroyGroup(udg_FW_Group)
          • Custom script: call RemoveLocation(udg_FW_Offset)
      • Custom script: call RemoveLocation(udg_FW_Point)
      • -------- ---------------------------- --------
      • -------- ---------------------------- --------
      • -------- Spell by X-OMG-X --------
      • -------- ---------------------------- --------
  • Fire Burst
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Fire Burst
    • Actions
      • -------- Starting with setting the variables --------
      • Set FB_Caster = (Triggering unit)
      • Set FB_Point = (Position of FB_Caster)
      • Set FB_Level = (Level of Fire Burst for FB_Caster)
      • -------- We start the spell effect --------
      • For each (Integer FB_Integer) from 1 to ((FB_Level x 2) + 1), do (Actions)
        • Loop - Actions
          • Set FB_Offset = (Random point in (Region centered at FB_Point with size (700.00, 700.00)))
          • -------- We create the dummies --------
          • Unit - Create 1 Dummy for (Owner of FB_Caster) at FB_Offset facing Default building facing degrees
          • Unit - Add Fire Burst (Dummy) to (Last created unit)
          • Unit - Set level of Fire Burst (Dummy) for (Last created unit) to FB_Level
          • Unit - Order (Last created unit) to Neutral Tinker - Cluster Rockets FB_Offset
          • Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
          • -------- And we remove leaks --------
          • Custom script: call RemoveLocation(udg_FB_Offset)
      • Custom script: call RemoveLocation(udg_FB_Point)
      • -------- ---------------------------- --------
      • -------- ---------------------------- --------
      • -------- Spell by X-OMG-X --------
      • -------- ---------------------------- --------
  • Black Hole
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Black Hole
    • Actions
      • -------- Setting variables --------
      • Set BH_Caster = (Triggering unit)
      • Set BH_Position = (Target point of ability being cast)
      • Set BH_Level = (Level of Black Hole for BH_Caster)
      • Set BH_Stats = (Hero level of BH_Caster)
      • Set BH_Range = (300.00 + (100.00 x (Real(BH_Level))))
      • Set BH_Group = (Units within BH_Range of BH_Position matching ((((Matching unit) is alive) Equal to True) and ((((Matching unit) is Mechanical) Equal to False) and (((Matching unit) belongs to an ally of (Owner of BH_Caster)) Equal to False))))
      • Set BH_Units = (Number of units in BH_Group)
      • -------- Creating effects --------
      • Special Effect - Create a special effect at BH_Position using Abilities\Spells\Human\FlameStrike\FlameStrikeTarget.mdl
      • Special Effect - Destroy (Last created special effect)
      • -------- Destroys trees --------
      • Destructible - Pick every destructible within BH_Range of BH_Position and do (Actions)
        • Loop - Actions
          • Destructible - Kill (Last created destructible)
          • Special Effect - Create a special effect at (Position of (Picked destructible)) using Abilities\Spells\Orc\FeralSpirit\feralspiritdone.mdl
          • Special Effect - Destroy (Last created special effect)
      • -------- Starting the loop --------
      • Unit Group - Pick every unit in BH_Group and do (Actions)
        • Loop - Actions
          • Set BH_Caster = (Picked unit)
          • -------- ---------------------------- --------
          • -------- DO NOT EDIT THIS TRIGGER --------
          • Trigger - Turn on Black Hole Loop <gen>
          • -------- DO NOT EDIT THIS TRIGGER --------
          • -------- ---------------------------- --------
      • -------- ---------------------------- --------
      • -------- ---------------------------- --------
      • -------- Spell by X-OMG-X --------
      • -------- ---------------------------- --------
  • Black Hole Loop
    • Events
      • Time - Every 0.07 seconds of game time
    • Conditions
    • Actions
      • -------- ---------------------------- --------
      • -------- DO NOT EDIT THIS TRIGGER --------
      • -------- DO NOT EDIT THIS TRIGGER --------
      • -------- ---------------------------- --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Current order of BH_Caster) Not equal to (Order(move))
          • (Current order of BH_Caster) Not equal to (Order(attack))
          • (Current order of BH_Caster) Not equal to (Order(stop))
        • Then - Actions
          • Unit Group - Pick every unit in BH_Group and do (Actions)
            • Loop - Actions
              • Unit - Move (Picked unit) instantly to ((Position of (Picked unit)) offset by 4.00 towards (Angle from (Position of (Picked unit)) to BH_Position) degrees)
              • Unit - Pause (Picked unit)
              • For each (Integer BH_Integers) from 1 to BH_Units, do (Actions)
                • Loop - Actions
                  • Unit - Remove All buffs from (Picked unit)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (((Picked unit) is alive) Equal to True) and ((Integer((Distance between (Position of (Picked unit)) and BH_Position))) Greater than or equal to 90)
                    • Then - Actions
                      • Special Effect - Create a special effect at (Position of (Picked unit)) using Abilities\Spells\Undead\DeathandDecay\DeathandDecayTarget.mdl
                      • Special Effect - Destroy (Last created special effect)
                    • Else - Actions
                      • Unit - Unpause (Picked unit)
                      • Unit - Cause BH_Caster to damage (Picked unit), dealing ((25.00 x (Real(BH_Level))) + (2.00 x (Real(BH_Stats)))) damage of attack type Spells and damage type Normal
                      • Special Effect - Create a special effect at (Position of (Picked unit)) using Abilities\Spells\Undead\AnimateDead\AnimateDeadTarget.mdl
                      • Special Effect - Destroy (Last created special effect)
                      • Unit Group - Remove (Picked unit) from BH_Group
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • BH_Units Less than or equal to 0
                    • Then - Actions
                      • Unit - Unpause (Picked unit)
                      • Special Effect - Create a special effect at BH_Position using Abilities\Spells\Undead\Darksummoning\DarkSummonTarget.mdl
                      • Special Effect - Destroy (Last created special effect)
                      • Set BH_Level = 0
                      • Set BH_Stats = 0
                      • Set BH_Range = 0.00
                      • Set BH_Units = 0
                      • Custom script: call RemoveLocation(udg_BH_Position)
                      • Custom script: call DestroyGroup(udg_BH_Group)
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
        • Else - Actions
          • Set BH_Level = 0
          • Set BH_Stats = 0
          • Set BH_Range = 0.00
          • Set BH_Units = 0
          • Custom script: call RemoveLocation(udg_BH_Position)
          • Custom script: call DestroyGroup(udg_BH_Group)
          • Trigger - Turn off (This trigger)
          • -------- ---------------------------- --------
          • -------- DO NOT EDIT THIS TRIGGER --------
          • -------- DO NOT EDIT THIS TRIGGER --------
          • -------- ---------------------------- --------
      • -------- ---------------------------- --------
      • -------- ---------------------------- --------
      • -------- Spell by X-OMG-X --------
      • -------- ---------------------------- --------
  • Sacrificial
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Sacrificial
    • Actions
      • -------- Setting the variables --------
      • Set SA_Caster = (Triggering unit)
      • Set SA_Point = (Position of SA_Caster)
      • Set SA_Level = (Level of Sacrificial for SA_Caster)
      • Set SA_Group = (Units within 400.00 of SA_Point matching ((((Matching unit) is alive) Equal to True) and ((((Matching unit) belongs to an enemy of (Owner of SA_Caster)) Equal to True) and (((Matching unit) is Mechanical) Equal to False))))
      • Set SA_TotalUnits = (Real((Number of units in SA_Group)))
      • -------- Creating special effects --------
      • Special Effect - Create a special effect attached to the origin of (Picked unit) using Objects\Spawnmodels\Undead\UndeadDissipate\UndeadDissipate.mdl
      • Special Effect - Destroy (Last created special effect)
      • -------- Picking the needed units --------
      • Unit Group - Pick every unit in SA_Group and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Percentage life of (Picked unit)) Greater than or equal to 30.00
            • Then - Actions
              • -------- We damage the unit if its life is more than 30% --------
              • Unit - Set life of (Picked unit) to ((Percentage life of (Picked unit)) - (10.00 x (Real(SA_Level))))%
              • Special Effect - Create a special effect attached to the origin of (Picked unit) using Abilities\Spells\Undead\DeathandDecay\DeathandDecayTarget.mdl
              • Special Effect - Destroy (Last created special effect)
              • For each (Integer SA_Integer) from 1 to (Integer(SA_TotalUnits)), do (Actions)
                • Loop - Actions
                  • -------- We damage the caster --------
                  • Unit - Set life of SA_Caster to ((Percentage life of SA_Caster) - 2.00)%
                  • Unit - Remove All buffs from SA_Caster
            • Else - Actions
              • -------- We kill the unit if its life is less than 30% --------
              • Unit - Cause SA_Caster to damage (Picked unit), dealing 1000000000.00 damage of attack type Chaos and damage type Normal
              • Special Effect - Create a special effect attached to the origin of (Picked unit) using Abilities\Spells\Undead\DeathandDecay\DeathandDecayTarget.mdl
              • Special Effect - Destroy (Last created special effect)
              • For each (Integer SA_Integer) from 1 to (Integer(SA_TotalUnits)), do (Actions)
                • Loop - Actions
                  • -------- We damage the caster --------
                  • Unit - Set life of SA_Caster to ((Percentage life of SA_Caster) - 2.00)%
                  • Unit - Remove Negative buffs considered Magic or physical from SA_Caster (Exclude expiration timers, Exclude auras)
      • -------- Now for the buff --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Random integer number between 1 and 100) Less than or equal to 40
        • Then - Actions
          • -------- Creating dummy, gives the buff to the caster --------
          • Unit - Create 1 Dummy for (Owner of SA_Caster) at SA_Point facing Default building facing degrees
          • Unit - Add a 1.50 second Generic expiration timer to (Last created unit)
          • Unit - Add Sacrificial (Dummy) to (Last created unit)
          • Unit - Order (Last created unit) to Undead Necromancer - Unholy Frenzy SA_Caster
        • Else - Actions
      • Custom script: call RemoveLocation(udg_SA_Point)
      • Custom script: call DestroyGroup(udg_SA_Group)
      • -------- ---------------------------- --------
      • -------- ---------------------------- --------
      • -------- Spell by X-OMG-X --------
      • -------- ---------------------------- --------

Fixed leaks
Fixed a bug
Added better documention
Fixed the rock selection
Made some small changes
Made the whole pack work lol
Added 4 new spells
Fixed a few leaks


Keywords:
X-OMG-X, spell, pack, spellpack, lightning, thunder, electricity, light, holy, holyness, earth, ground, sand, mud, nature, green, forest, fire, flame,
Contents

Spell Pack (Map)

Reviews
15:00, 16th Jun 2010 Hanky: I found leaks in some of your trigger. Fix them and I'll approve your spellpack.

Moderator

M

Moderator

15:00, 16th Jun 2010
Hanky:
I found leaks in some of your trigger. Fix them and I'll approve your spellpack.
 
Level 19
Joined
Feb 25, 2009
Messages
2,004
Ok, first of all its good that you finally released an entire spellpack.

But lets start with the critics...

1. Usage of multiple Integer A handles may cause the entire trigger to bug if its used more than once - use your own integers though.

2. Divine Surrounding does not protect the unit from triggered damage - when I was attacked by the wendingos and then I use the electric push thingy, the unit still take damage from the knockback

3. Its better to determine the level of the ability into a separated integer veriable, than using "Real((Level of Sunrise for SU_Caster))))" - check -BeRZeKeR- spells. By the way (Level of <Ability> for <Unit>) is an integer, you don't need to convert it.

4. I suggest you to use (Triggering Unit) instead of (Casting Unit) - its not a mistake, but (Triggering Unit) can be used multiple times and its work faster

5. Rockcircle - make the rocks (dummies) somehow unselectable, because they are selectable now and may cause errors or misclicks. Also I suggest you to make the explosion event more flexible, because if a unit stay near 3-4 rocks it will take realy high amount of damage and that makes the spell very imbalanced - try to make a group in a loop for every dying dummy, then damage the units within its range and put them into the group, so they won't be damaged more than once.

6. Theres a leak into the "Electricity Stomp":
  • Unit - Create 1 Dummy for (Owner of ES_Caster) at (Position of (Picked unit)) facing Default building facing degrees
7. That
  • Unit - Cause (Picked unit) to damage (Picked unit), dealing ((Real((Intelligence of (Picked unit) (Include bonuses)))) x 2.00) damage of attack type Spells and damage type Normal
will make the picked unit to suicide, eg. the kill and bounty will not go to the caster of the spell - use the "ES_Caster" veriable as a damage source.

8. This effect here:
  • Special Effect - Create a special effect attached to the overhead of (Picked unit) using Abilities\Spells\Items\AIlb\AIlbSpecialArt.mdl
Is not cleared, it may cause intense lag after certain usages.

9. Limit the units here:
  • Set ES_Group = (Units within 550.00 of ES_Point matching (((Matching unit) is A Hero) Equal to True))
So it won't trigger if the Hero is dead or its an friendly - add (Matching is Alive) and (Matching Unit) belongs to an enemy of (Owner of (ES_Caster).

10. The entire spellpack LACKS of documentation... Ok I see that theres an documentation how to import them (well its not the best but... I'm sure you can do it better) also try to implement "trigger comments" into the triggers for easy understanding of the triggers, because I'm 100% sure that you'll receive alot of comments regarding to this matter.

11. Discriptions are not well made, I had to test the spell and after that I finally realize what does the spell actually do. Try to improve this and add information below the spell discription, regarding the spell is instant-cast, channeling, passive and put the "level-information" in the normal way, b/c in this way its kinda... stupid :).

12. This thing:
  • Unit - Cause (Picked unit) to damage (Picked unit), dealing ((Real(SU_Intelligence)) x -2.00) damage of attack type Spells and damage type Normal
can be done by (Unit - Set life of unit to (Life of (Picked Unit)) + ((Real(SU_Intelligence)) x 2.00)

13. This thing:
  • Unit - Create 1 Dummy for (Owner of EN_Caster) at (Position of (Picked unit)) facing Default building facing degrees
Also leaks too, you can use one point into the loop for each picked unit.

On the other hand, the spellpack is good, but the SFXs (special effects) are a bit too much and using more than 2 abilities at the same time caused my FPS to drop realy bad, causing the game to lag. Try to make it more clear and avoid usage of multiple (Interger A).

At the end, I can surely give a 4/5 and vote for approval, but after you fix the things I mention above.

Best regards,
MortAr-
 
Last edited:
Level 31
Joined
Sep 11, 2009
Messages
1,812
hahah... i understand why you werent posting it... :p

but now im on the comp taht i have Wc3... LOL

here is some bugs.. like.. if u kill the target of the electricity push it wont give u the credit of the kill.. so no gold, the Electricity Stomp chance to remake it if an enemy hero is damaged works on allies too...

The wall of rock u made is using dummy.. thats good but... u can click them (thats not good) and the icon it shows is the one of a human peason (thats rly not good) :p lol... fix this... i didnt find any other bugs... i didnt check the triggers... so read what mortar said for the triggers

Oh also.. Add the damage that it is doing in the spell description that is shown in the game... and the Hit point that it heals...
 
Last edited:
Level 9
Joined
Aug 2, 2008
Messages
219
Mhh an OK spellpack you made there. The ideas are not the most creative ones but that is nothing too bad. The visuals and the ingame descriptions are alright but there could be a more detailed manual for each spell on 'How to Import' and i also miss some inCode comments. The coding itself is not too bad but there is still some room for improvements. All spells seem to be instant and therefore they are MUI, but not all of them are leakless.


Trigger
Suggestions

Electricity Stomp

Here you use Integer-A in both of your loops. Thats not really bad because the spell is instant but it´s still not recommended, just create your own loop integer. In your Group-Loop near the end of the trigger you leak effects, you create them on units but you never remove them. In the IF you create a dummy on a location which you never cleaned up.
I think it´s a bit imbalanced that there is a chance to recast the spell if there are heros.
Electric PushAgain the Integer-A issue.
Divine Surrounding
The trigger looks ok for me, no leaks found. The only thing you could improve is to replace the one-line-IF by a multi-line-If for the sake of readability.
SunriseLooks good sofar but dealing negative damage to heal units is a bit confusing IMO, but i dont think doing it that way is wrong.
Tormenting of SpikesInteger-A
Rock CircleCoding looks okay but again you use Integer-A for the loop. In the Destroy Trigger you leak a location, you saved it into a variable but you didn´t remove it. IMO you should use destructabels instead of dummy unit, because you can select the dummies ingame.
EntangeliousIn the Group-Loop you create a dummy on a location which you did not clean up.
OvergrownLooks ok but here you use Integer-A and Integer-B
Well that´s it form my point of view.

~TNT

[edit]
Damn Mortar was faster xD
 
Thanks guys. I have done almost everything you guys said.

@MortAr- Its not a bug that divine surrounding doesnt protect the unit :p The only thing that the shield does it that it stops the unit from attacking/moving. Also, i havent made a better description on the spell right now but i will. (i mean 'instant, no target') Thanks for the rating and the review.
@Thanathos Yes mortar was faster but you found some things he didnt find :p Anyways i have added more description on how to import and fixed all the leaks you and mortar notified me about. Thanks for testing and reviewing.
 
Level 13
Joined
May 10, 2009
Messages
868
Yea i just noticed:cry:
After i updated and added integers instead of 'integer a' it bugs:sad:
Its because of the for each integer.
Could someone please tell me how to fix it?
--
You created a loop with a variable ES_Integer and you still using Integer A at the effects o_O:
  • Electricity Stomp
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Electricity Stomp
    • Actions
      • -------- Okay lets start with setting the variables --------
      • Set ES_Caster = (Triggering unit)
      • Set ES_Point = (Position of ES_Caster)
      • Set ES_Level = (Level of Electricity Stomp for ES_Caster)
      • -------- Now we start the pretty circle --------
      • For each (Integer ES_Integer) from 1 to 10, do (Actions)
        • Loop - Actions
          • -------- Here we set the points in the circle --------
          • Set ES_Offset = (ES_Point offset by 250.00 towards ((Real(Integer A)) x 36.00) degrees)
          • -------- Now we create the dummies --------
          • Unit - Create 1 Dummy for (Owner of ES_Caster) at ES_Offset facing Default building facing degrees
          • Unit - Add Electricity Stomp (Dummy) to (Last created unit)
          • Unit - Set level of Electricity Stomp (Dummy) for (Last created unit) to ES_Level
          • Unit - Order (Last created unit) to Orc Tauren Chieftain - War Stomp
          • -------- And now its time for the effects --------
          • Special Effect - Create a special effect at ES_Offset using Abilities\Weapons\Bolt\BoltImpact.mdl
          • Special Effect - Destroy (Last created special effect)
          • Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
          • -------- And now we remove the leaks --------
          • Custom script: call RemoveLocation(udg_ES_Offset)
      • For each (Integer ES_Integer) from 1 to 15, do (Actions)
        • Loop - Actions
          • -------- As we did in the lines above we set variables --------
          • Set ES_Offset2 = (ES_Point offset by 400.00 towards ((Real(Integer A)) x 24.00) degrees)
          • -------- And creates the dummies --------
          • Unit - Create 1 Dummy for (Owner of ES_Caster) at ES_Offset2 facing Default building facing degrees
          • Unit - Add Electricity Stomp (Dummy) to (Last created unit)
          • Unit - Set level of Electricity Stomp (Dummy) for (Last created unit) to ES_Level
          • Unit - Order (Last created unit) to Orc Tauren Chieftain - War Stomp
          • -------- Creates the effects --------
          • Special Effect - Create a special effect at ES_Offset2 using Abilities\Weapons\Bolt\BoltImpact.mdl
          • Special Effect - Destroy (Last created special effect)
          • Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
          • -------- And removing the leaks --------
          • Custom script: call RemoveLocation(udg_ES_Offset2)
      • -------- Now we pick all heroes in the area --------
      • Set ES_Group = (Units within 550.00 of ES_Point matching ((((Matching unit) is A Hero) Equal to True) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an ally of (Owner of ES_Caster)) Equal to False))))
      • Unit Group - Pick every unit in ES_Group and do (Actions)
        • Loop - Actions
          • -------- And we damage the picked units --------
          • Unit - Cause ES_Caster to damage (Picked unit), dealing ((Real((Intelligence of (Picked unit) (Include bonuses)))) x 2.00) damage of attack type Spells and damage type Normal
          • -------- Now we show the special effects --------
          • Special Effect - Create a special effect attached to the overhead of (Picked unit) using Abilities\Spells\Items\AIlb\AIlbSpecialArt.mdl
          • Special Effect - Destroy (Last created special effect)
      • -------- Here we set the chance to do doublecast --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Random real number between 1.00 and 100.00) Less than or equal to 10.00
        • Then - Actions
          • -------- And we simply makes a dummy cast the spell --------
          • Set ES_PickedPos = (Position of (Picked unit))
          • Unit - Create 1 Dummy for (Owner of ES_Caster) at ES_PickedPos facing Default building facing degrees
          • Unit - Add Electricity Stomp to (Last created unit)
          • Unit - Order (Last created unit) to Orc Tauren Chieftain - War Stomp
          • Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
        • Else - Actions
      • -------- And at last we remove the leaks --------
      • Custom script: call RemoveLocation(udg_ES_Point)
      • Custom script: call DestroyGroup(udg_ES_Group)
      • -------- ---------------------------- --------
      • -------- ---------------------------- --------
      • -------- Spell by X-OMG-X --------
      • -------- ---------------------------- --------
Change Integer A to Integer Variable. :p
  • Electricity Stomp
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Electricity Stomp
    • Actions
      • -------- Okay lets start with setting the variables --------
      • Set ES_Caster = (Triggering unit)
      • Set ES_Point = (Position of ES_Caster)
      • Set ES_Level = (Level of Electricity Stomp for ES_Caster)
      • -------- Now we start the pretty circle --------
      • For each (Integer ES_Integer) from 1 to 10, do (Actions)
        • Loop - Actions
          • -------- Here we set the points in the circle --------
          • Set ES_Offset = (ES_Point offset by 250.00 towards ((Real(ES_Integer)) x 36.00) degrees)
          • -------- Now we create the dummies --------
          • Unit - Create 1 Dummy for (Owner of ES_Caster) at ES_Offset facing Default building facing degrees
          • Unit - Add Electricity Stomp (Dummy) to (Last created unit)
          • Unit - Set level of Electricity Stomp (Dummy) for (Last created unit) to ES_Level
          • Unit - Order (Last created unit) to Orc Tauren Chieftain - War Stomp
          • -------- And now its time for the effects --------
          • Special Effect - Create a special effect at ES_Offset using Abilities\Weapons\Bolt\BoltImpact.mdl
          • Special Effect - Destroy (Last created special effect)
          • Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
          • -------- And now we remove the leaks --------
          • Custom script: call RemoveLocation(udg_ES_Offset)
      • For each (Integer ES_Integer) from 1 to 15, do (Actions)
        • Loop - Actions
          • -------- As we did in the lines above we set variables --------
          • Set ES_Offset2 = (ES_Point offset by 400.00 towards ((Real(ES_Integer)) x 24.00) degrees)
          • -------- And creates the dummies --------
          • Unit - Create 1 Dummy for (Owner of ES_Caster) at ES_Offset2 facing Default building facing degrees
          • Unit - Add Electricity Stomp (Dummy) to (Last created unit)
          • Unit - Set level of Electricity Stomp (Dummy) for (Last created unit) to ES_Level
          • Unit - Order (Last created unit) to Orc Tauren Chieftain - War Stomp
          • -------- Creates the effects --------
          • Special Effect - Create a special effect at ES_Offset2 using Abilities\Weapons\Bolt\BoltImpact.mdl
          • Special Effect - Destroy (Last created special effect)
          • Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
          • -------- And removing the leaks --------
          • Custom script: call RemoveLocation(udg_ES_Offset2)
      • -------- Now we pick all heroes in the area --------
      • Set ES_Group = (Units within 550.00 of ES_Point matching ((((Matching unit) is A Hero) Equal to True) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an ally of (Owner of ES_Caster)) Equal to False))))
      • Unit Group - Pick every unit in ES_Group and do (Actions)
        • Loop - Actions
          • -------- And we damage the picked units --------
          • Unit - Cause ES_Caster to damage (Picked unit), dealing ((Real((Intelligence of (Picked unit) (Include bonuses)))) x 2.00) damage of attack type Spells and damage type Normal
          • -------- Now we show the special effects --------
          • Special Effect - Create a special effect attached to the overhead of (Picked unit) using Abilities\Spells\Items\AIlb\AIlbSpecialArt.mdl
          • Special Effect - Destroy (Last created special effect)
      • -------- Here we set the chance to do doublecast --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Random real number between 1.00 and 100.00) Less than or equal to 10.00
        • Then - Actions
          • -------- And we simply makes a dummy cast the spell --------
          • Set ES_PickedPos = (Position of (Picked unit))
          • Unit - Create 1 Dummy for (Owner of ES_Caster) at ES_PickedPos facing Default building facing degrees
          • Unit - Add Electricity Stomp to (Last created unit)
          • Unit - Order (Last created unit) to Orc Tauren Chieftain - War Stomp
          • Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
        • Else - Actions
      • -------- And at last we remove the leaks --------
      • Custom script: call RemoveLocation(udg_ES_Point)
      • Custom script: call DestroyGroup(udg_ES_Group)
      • -------- ---------------------------- --------
      • -------- ---------------------------- --------
      • -------- Spell by X-OMG-X --------
      • -------- ---------------------------- --------
 
Level 19
Joined
Feb 25, 2009
Messages
2,004
  • Unit - Move (Picked unit) instantly to ((Position of (Picked unit)) offset by 4.00 towards (Angle from (Position of (Picked unit)) to BH_Position) degrees)
  • Special Effect - Create a special effect at (Position of (Picked unit)) using Abilities\Spells\Undead\DeathandDecay\DeathandDecayTarget.mdl
  • Special Effect - Create a special effect at (Position of (Picked unit)) using Abilities\Spells\Undead\AnimateDead\AnimateDeadTarget.mdl
These leaks

This thing here:
  • Unit - Set life of SA_Caster to ((Percentage life of SA_Caster) - 2.00)%
Returns a random percentage of the life (eg. it can hit 100% or 40%), use a different math.

Since the spellpack contain a recycling trigger for knockback, try to use it for the black hole as well.
 
Thanks for all the useful feedback.
I have fixed the life percentages but i have a few questions.
First, about the picked units location.
How do i set up a variable that works for all picked units and not only one?
And what do i need to do, to make the black hole MUI? I wont use the knockback system, cuz using other peoples systems doesnt improve my works in the future.
 
Level 7
Joined
Nov 6, 2009
Messages
279
man how do u lvlup heroes?

EDIT: black hole DOESNT destroy trees as it say and u should make sacrificial not to kill caster but to leave him with a minimum amount of hp
 
Level 4
Joined
Nov 8, 2009
Messages
25
Well i don´t know what exactly you mean by this
How do i set up a variable that works for all picked units and not only one?
, but i guess you want to know how you can move each unit individuality with variables, or am i wrong? If i am right you just can set up the position variable for each unit in the loop and remove it in the loop

example
  • Einheitengruppe - Pick every unit in BH_Group and do (Actions)
    • Schleifen - Aktionen
      • Set Loc_temp[1] = (Position of (Picked unit))
      • Set Loc_temp[2] = (Loc_temp[1] offset by 4.00 towards (Angle from Loc_temp[1] to BH_Position) degrees)
      • Einheit - Move (Picked unit) instantly to Loc_temp[2]
      • Einheit - Pause ein (Picked unit)
      • Custom script: call RemoveLocation(udg_Loc_temp[1])
      • Custom script: call RemoveLocation(udg_Loc_temp[2])
 
Top