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

Explosion Spellpack v1.1

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
  • Like
Reactions: maddeem
Boom Spellpack by Dogzz
Hello these are my first spells so sorry if they are messy. Also my first post here.
Credits to Paladon for the Knockback system
Credits to Spinnaker for the tree revival system

v1.0 is released
v1.1 - fixed some leaks



Spell Descriptions

Fire Slam Slam the ground at the targeted location with a mirror image creating a fire explosion the smash destroys trees, and leaving flames that deal damage over time Flames last 10 seconds.Level 1 - Deals 2x Strength Level 2 - Deals 3x Strength Level 3 - Deals 4x Strength

Holy Lightning Strikes the ground with a holy lightning that heals friendly units and damages enemy units it also increases armor by 10 and damage by 60% for friendly units and decreases enemy units by 10 armor and 3% damage.

Shockwave Barrage Throws shockwaves toward horizontal and vertical directions of your facing the shock waves will knock units to the side or carry them with the shockwave, the more the wave carries the unit, the more damage will be done.

Water Wave throw a Water Wave toward the casting point the Water Wave will knock units to the side or carry them with the wave, the more the wave carries the unit, the more damage will be done

Starlight Breaker (ultimate) Throws a beam of destruction magic toward the target. deals x3 intellect damage kills trees and knocks back enemies.


Triggers

  • Fire Slam
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Fire Slam
    • Actions
      • -------- -AoE (Area of Effect) is the ONLY configurable, it will determine the knockback range, damage range and destructable death range.- --------
      • Set TempUnit = (Triggering unit)
      • Set TempPoint = (Target point of ability being cast)
      • Set TempPoint2 = (TempPoint offset by (20.00, 140.00))
      • Set AoE = 300.00
      • Set KnockBackGroup = (Units within AoE of TempPoint matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of (Triggeri
      • -------- - Configurables - --------
      • Set Damage[3] = ((Real((Strength of TempUnit (Exclude bonuses)))) x ((Real((Level of Fire Slam for TempUnit))) + 1.00))
      • Unit Group - Pick every unit in KnockBackGroup and do (Actions)
        • Loop - Actions
          • Set KBA_Caster = (Triggering unit)
          • Set KBA_TargetUnit = (Picked unit)
          • Set KBA_StartingPosition = (Target point of ability being cast)
          • Set KBA_Level = (Level of (Ability being cast) for (Triggering unit))
          • Set KBA_Speed = 9.00
          • Set KBA_DistancePerLevel = 250.00
          • Set KBA_SpecialEffects[1] = Abilities\Spells\Human\FlakCannons\FlakTarget.mdl
          • Set KBA_SpecialEffects[2] = Abilities\Weapons\FireBallMissile\FireBallMissile.mdl
          • Set KBA_DestroyTrees = True
          • Trigger - Run Cast A Knockback <gen> (checking conditions)
      • -------- - Spell - --------
      • Unit - Create 1 FlameStrikeDummyexplode for (Owner of TempUnit) at TempPoint facing Default building facing degrees
      • Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
      • Unit - Make (Last created unit) Explode on death
      • Unit - Create 1 FlameStrikeDummySlam for (Owner of TempUnit) at TempPoint2 facing Default building facing degrees
      • Animation - Play (Last created unit)'s attack slam animation
      • Animation - Change (Last created unit)'s vertex coloring to (100.00%, 100.00%, 100.00%) with 50.00% transparency
      • Special Effect - Create a special effect at TempPoint2 using Abilities\Spells\Orc\MirrorImage\MirrorImageCaster.mdl
      • Special Effect - Destroy (Last created special effect)
      • Special Effect - Create a special effect attached to the chest of TempUnit using Abilities\Spells\Orc\MirrorImage\MirrorImageCaster.mdl
      • Special Effect - Destroy (Last created special effect)
      • Unit - Add a 1.50 second Generic expiration timer to (Last created unit)
      • Unit - Make (Last created unit) Explode on death
      • Unit - Create 1 FlameStrikeDummy for (Owner of TempUnit) at TempPoint facing Default building facing degrees
      • Unit - Add a 4.00 second Generic expiration timer to (Last created unit)
      • Unit - Make (Last created unit) Explode on death
      • Unit - Create 1 FlameStrikeDummy3 for (Owner of TempUnit) at TempPoint facing Default building facing degrees
      • Unit - Add a 10.00 second Generic expiration timer to (Last created unit)
      • Unit - Make (Last created unit) Explode on death
      • Unit - Create 1 FlameStrikeDummy2 for (Owner of TempUnit) at TempPoint facing Default building facing degrees
      • Unit - Add a 10.00 second Generic expiration timer to (Last created unit)
      • Unit - Make (Last created unit) Explode on death
      • Destructible - Pick every destructible within AoE of TempPoint and do (Actions)
        • Loop - Actions
          • Destructible - Kill (Picked destructible)
      • Custom script: set bj_wantDestroyGroup=true
      • Unit Group - Pick every unit in (Units within AoE of TempPoint matching ((((Matching unit) belongs to an enemy of (Owner of TempUnit)) Equal to True) and (((Matching unit) is alive) Equal to True))) and do (Actions)
        • Loop - Actions
          • Unit - Cause TempUnit to damage (Picked unit), dealing Damage[3] damage of attack type Chaos and damage type Fire
      • Custom script: call RemoveLocation(udg_TempPoint)
      • Custom script: call RemoveLocation(udg_TempPoint2)
Holy Lightning

  • Holy Lightning
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Holy Lightning
    • Actions
      • Set TempUnit = (Triggering unit)
      • Set TempLoc = (Target point of ability being cast)
      • -------- Configurables --------
      • Set Damage[1] = ((Real((Level of (Ability being cast) for TempUnit))) x 100.00)
      • Set Healing[1] = ((Real((Level of (Ability being cast) for TempUnit))) x 200.00)
      • Set AoE = 300.00
      • -------- ---------------------- --------
      • -------- Spell --------
      • Unit - Create 1 HolyLightningDummy1 for (Owner of TempUnit) at TempLoc facing Default building facing degrees
      • Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
      • Unit - Make (Last created unit) Explode on death
      • Unit - Add Holy Lightning (Debuff) to (Last created unit)
      • Set DebuffUnit = (Last created unit)
      • Unit - Create 1 HolyLightningDummy2 for (Owner of TempUnit) at TempLoc facing Default building facing degrees
      • Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
      • Unit - Make (Last created unit) Explode on death
      • Unit - Add Holy Lightning (Buff) to (Last created unit)
      • Set BuffUnit = (Last created unit)
      • Custom script: set bj_wantDestroyGroup=true
      • Unit Group - Pick every unit in (Units within AoE of TempLoc) and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Picked unit) belongs to an enemy of (Owner of TempUnit)) Equal to True
              • ((Picked unit) is alive) Equal to True
              • ((Picked unit) is A structure) Equal to False
            • Then - Actions
              • Unit - Cause TempUnit to damage (Picked unit), dealing Damage[1] damage of attack type Chaos and damage type Divine
              • Unit - Order DebuffUnit to Neutral Pit Lord - Howl Of Terror
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Picked unit) belongs to an enemy of (Owner of TempUnit)) Equal to False
              • ((Picked unit) is alive) Equal to True
              • ((Picked unit) is A structure) Equal to False
            • Then - Actions
              • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + Healing[1])
              • Unit - Order BuffUnit to Neutral Pit Lord - Howl Of Terror
            • Else - Actions
      • Destructible - Pick every destructible within AoE of TempLoc and do (Actions)
        • Loop - Actions
          • Destructible - Kill (Picked destructible)
      • Custom script: call RemoveLocation(udg_TempLoc)


Water Wave

  • Water Wave
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Water Wave
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Index_Size Equal to 0
        • Then - Actions
          • Trigger - Turn on Water Wave Loop <gen>
        • Else - Actions
      • Set Index_Size = (Index_Size + 1)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Index_Size Greater than Index_MaxSize
        • Then - Actions
          • Set Index[Index_Size] = Index_Size
          • Set Index_MaxSize = Index_Size
        • Else - Actions
      • Set TempInteger = Index[Index_Size]
      • Set TempLoc = (Position of (Triggering unit))
      • Set TempLoc2 = (Target point of ability being cast)
      • Set TempUnit_MUI[TempInteger] = (Triggering unit)
      • Unit - Create 1 WaterWaveDummy for (Owner of TempUnit_MUI[TempInteger]) at TempLoc facing (Angle from TempLoc to TempLoc2) degrees
      • Unit - Turn collision for (Last created unit) Off
      • Unit - Move (Last created unit) instantly to TempLoc
      • Set Missile[TempInteger] = (Last created unit)
      • Set Angle[TempInteger] = (Angle from TempLoc to TempLoc2)
      • -------- Configurables --------
      • Set Speed[TempInteger] = 15.00
      • Set Duration[TempInteger] = 2.00
      • Set AoE = 200.00
      • Set Damage[TempInteger] = ((Real((Level of Water Wave for TempUnit_MUI[TempInteger]))) x 100.00)
      • -------- ---------------------- --------
      • Unit - Add a Duration[TempInteger] second Generic expiration timer to (Last created unit)
      • Unit - Make (Last created unit) Explode on death
      • Custom script: call RemoveLocation(udg_TempLoc)
      • Custom script: call RemoveLocation(udg_TempLoc2)
  • Water Wave Loop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • For each (Integer WWLoop) from 1 to Index_Size, do (Actions)
        • Loop - Actions
          • Set TempInteger = Index[WWLoop]
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Duration[TempInteger] Greater than 0.00
            • Then - Actions
              • Set TempLoc = (Position of Missile[TempInteger])
              • Set TempLoc2 = (TempLoc offset by Speed[TempInteger] towards Angle[TempInteger] degrees)
              • Unit - Move Missile[TempInteger] instantly to TempLoc2, facing Angle[TempInteger] degrees
              • Custom script: set bj_wantDestroyGroup=true
              • Unit Group - Pick every unit in (Units within AoE of TempLoc2) and do (Actions)
                • Loop - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (TempUnit_MUI[TempInteger] belongs to an enemy of (Owner of (Picked unit))) Equal to True
                      • ((Picked unit) is in WWGroup[TempInteger]) Equal to False
                      • ((Picked unit) is alive) Equal to True
                      • ((Picked unit) is A structure) Equal to False
                    • Then - Actions
                      • Unit - Cause TempUnit_MUI[TempInteger] to damage (Picked unit), dealing Damage[TempInteger] damage of attack type Chaos and damage type Demolition
                      • Unit Group - Add (Picked unit) to WWGroup[TempInteger]
                      • Set KnockBackGroup = (Units within AoE of TempLoc2 matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of TempUnit_M
                      • Unit Group - Pick every unit in KnockBackGroup and do (Actions)
                        • Loop - Actions
                          • Set KBA_Caster = TempUnit_MUI[TempInteger]
                          • Set KBA_TargetUnit = (Picked unit)
                          • Set KBA_StartingPosition = TempLoc2
                          • Set KBA_Level = (Level of Water Wave for TempUnit_MUI[TempInteger])
                          • Set KBA_Speed = 7.00
                          • Set KBA_DistancePerLevel = 150.00
                          • Set KBA_SpecialEffects[1] = Abilities\Spells\Human\FlakCannons\FlakTarget.mdl
                          • Set KBA_SpecialEffects[2] = Abilities\Weapons\SeaElementalMissile\SeaElementalMissile.mdl
                          • Set KBA_DestroyTrees = True
                          • Trigger - Run Cast A Knockback <gen> (checking conditions)
                    • Else - Actions
              • Set Duration[TempInteger] = (Duration[TempInteger] - 0.03)
              • Custom script: call RemoveLocation(udg_TempLoc)
              • Custom script: call RemoveLocation(udg_TempLoc2)
            • Else - Actions
              • Custom script: call DestroyGroup(udg_WWGroup[udg_TempInteger])
              • Set Index[WWLoop] = Index[Index_Size]
              • Set Index[Index_Size] = TempInteger
              • Set Index_Size = (Index_Size - 1)
              • Set WWLoop = (WWLoop - 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Index_Size Equal to 0
                • Then - Actions
                  • Set Duration[TempInteger] = 0.00
                  • Trigger - Turn off (This trigger)
                • Else - Actions


Shockwave Barrage

  • ShockwaveStarter
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Shockwave Barrage
    • Actions
      • Set TempUnit = (Triggering unit)
      • Set TempLoc2_2 = (Position of TempUnit)
      • Set AoE = 20.00
      • -------- Spell --------
      • For each (Integer TempLoop) from 1 to 4, do (Actions)
        • Loop - Actions
          • Unit - Create 1 DummyCaster for (Owner of TempUnit) at TempLoc2_2 facing Default building facing degrees
          • Set DummyCaster = (Last created unit)
          • Set TempReal = (TempReal + 90.00)
          • Set TempLoc1_2 = (TempLoc2_2 offset by AoE towards ((Facing of TempUnit) + TempReal) degrees)
          • Unit - Order DummyCaster to Undead Dreadlord - Inferno TempLoc1_2
          • Unit - Add a 0.50 second Generic expiration timer to DummyCaster
          • Custom script: call RemoveLocation(udg_TempLoc1_2)
      • Custom script: call RemoveLocation(udg_TempLoc2_2)
      • Set TempReal = 0.00
  • Shockwave
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to ShockwaveBarrageDummy
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Index_Size3 Equal to 0
        • Then - Actions
          • Trigger - Turn on Shockwave Loop <gen>
        • Else - Actions
      • Set Index_Size3 = (Index_Size3 + 1)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Index_Size3 Greater than Index_MaxSize2
        • Then - Actions
          • Set Index2[Index_Size3] = Index_Size3
          • Set Index_MaxSize2 = Index_Size3
        • Else - Actions
      • Set TempInteger2 = Index2[Index_Size3]
      • Set TempLoc1_2 = (Position of (Triggering unit))
      • Set TempLoc2_2 = (Target point of ability being cast)
      • Set TempUnit_MUI[TempInteger2] = (Triggering unit)
      • Unit - Create 1 ShockWaveDummy for (Owner of TempUnit_MUI[TempInteger2]) at TempLoc1_2 facing (Angle from TempLoc1_2 to TempLoc2_2) degrees
      • Unit - Turn collision for (Last created unit) Off
      • Unit - Move (Last created unit) instantly to TempLoc1_2
      • Set Missile2[TempInteger2] = (Last created unit)
      • Set Angle3[TempInteger2] = (Angle from TempLoc1_2 to TempLoc2_2)
      • -------- Configurables --------
      • Set Speed2[TempInteger2] = 15.00
      • Set Duration2[TempInteger2] = ((Real((Level of Shockwave Barrage for TempUnit))) x 0.50)
      • Set AoE = 200.00
      • Set Damage[TempInteger2] = ((Real((Level of Shockwave Barrage for TempUnit))) x 150.00)
      • -------- ---------------------- --------
      • Unit - Add a Duration2[TempInteger2] second Generic expiration timer to Missile2[TempInteger2]
      • Unit - Make Missile2[TempInteger2] Explode on death
      • Custom script: call RemoveLocation(udg_TempLoc)
      • Custom script: call RemoveLocation(udg_TempLoc2)
  • Shockwave Loop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • For each (Integer SWLoop) from 1 to Index_Size3, do (Actions)
        • Loop - Actions
          • Set TempInteger2 = Index2[SWLoop]
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Duration2[TempInteger2] Greater than 0.00
            • Then - Actions
              • Set TempLoc1_2 = (Position of Missile2[TempInteger2])
              • Set TempLoc2_2 = (TempLoc1_2 offset by Speed2[TempInteger2] towards Angle3[TempInteger2] degrees)
              • Unit - Move Missile2[TempInteger2] instantly to TempLoc2_2, facing Angle3[TempInteger2] degrees
              • Special Effect - Create a special effect at TempLoc2_2 using Abilities\Spells\Human\FlakCannons\FlakTarget.mdl
              • Special Effect - Destroy (Last created special effect)
              • Special Effect - Create a special effect at TempLoc2_2 using Abilities\Weapons\AncientProtectorMissile\AncientProtectorMissile.mdl
              • Special Effect - Destroy (Last created special effect)
              • Destructible - Pick every destructible within 200.00 of TempLoc2_2 and do (Actions)
                • Loop - Actions
                  • Destructible - Kill (Picked destructible)
              • Custom script: set bj_wantDestroyGroup=true
              • Unit Group - Pick every unit in (Units within AoE of TempLoc2_2) and do (Actions)
                • Loop - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (TempUnit_MUI[TempInteger2] belongs to an enemy of (Owner of (Picked unit))) Equal to True
                      • ((Picked unit) is in SWGroup[TempInteger2]) Equal to False
                      • ((Picked unit) is alive) Equal to True
                      • ((Picked unit) is A structure) Equal to False
                    • Then - Actions
                      • Unit - Cause Missile2[TempInteger2] to damage (Picked unit), dealing Damage[TempInteger2] damage of attack type Chaos and damage type Demolition
                      • Unit Group - Add (Picked unit) to SWGroup[TempInteger2]
                      • Set KnockBackGroup = (Units within AoE of TempLoc2_2 matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of TempUnit
                      • Unit Group - Pick every unit in KnockBackGroup and do (Actions)
                        • Loop - Actions
                          • Set KBA_Caster = TempUnit_MUI[TempInteger2]
                          • Set KBA_TargetUnit = (Picked unit)
                          • Set KBA_StartingPosition = TempLoc2
                          • Set KBA_Level = 3
                          • Set KBA_Speed = 7.00
                          • Set KBA_DistancePerLevel = 150.00
                          • Set KBA_SpecialEffects[1] = Abilities\Spells\Human\FlakCannons\FlakTarget.mdl
                          • Set KBA_SpecialEffects[2] = Abilities\Weapons\AncientProtectorMissile\AncientProtectorMissile.mdl
                          • Set KBA_DestroyTrees = True
                          • Trigger - Run Cast A Knockback <gen> (checking conditions)
                    • Else - Actions
              • Set Duration2[TempInteger2] = (Duration2[TempInteger2] - 0.03)
              • Custom script: call RemoveLocation(udg_TempLoc)
              • Custom script: call RemoveLocation(udg_TempLoc2)
            • Else - Actions
              • Custom script: call DestroyGroup(udg_SWGroup[udg_TempInteger2])
              • Set Index2[SWLoop] = Index2[Index_Size3]
              • Set Index2[Index_Size3] = TempInteger2
              • Set Index_Size3 = (Index_Size3 - 1)
              • Set SWLoop = (SWLoop - 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Index_Size3 Equal to 0
                • Then - Actions
                  • Set Duration2[TempInteger2] = 0.00
                  • Trigger - Turn off (This trigger)
                • Else - Actions


Starlight Breaker

  • Starlight Breaker
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Starlight Breaker
    • Actions
      • -------- Configurables --------
      • Set TempEffectDamageRange = 7
      • Set TempDamage = ((Real((Intelligence of (Triggering unit) (Exclude bonuses)))) x 3.00)
      • Set TempDamageType = Universal
      • Set TempAttackType = Chaos
      • Set AoE = 200.00
      • -------- Spell --------
      • Set TempPointArr[1] = (Position of (Triggering unit))
      • Set TempPointArr[2] = (Target point of ability being cast)
      • Set TempReal = (Angle from TempPointArr[1] to TempPointArr[2])
      • Set TempPointArr[3] = (TempPointArr[1] offset by -100.00 towards TempReal degrees)
      • Animation - Play (Triggering unit)'s attack animation, using only Common animations
      • Unit - Create 1 Dummy for (Triggering player) at TempPointArr[3] facing TempReal degrees
      • Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
      • Animation - Play (Last created unit)'s channel animation
      • Unit - Create 1 Dummy for (Triggering player) at TempPointArr[3] facing TempReal degrees
      • Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
      • Custom script: call RemoveLocation(udg_TempPointArr[1])
      • Custom script: call RemoveLocation(udg_TempPointArr[2])
      • For each (Integer TempInteger) from 1 to TempEffectDamageRange, do (Actions)
        • Loop - Actions
          • Set TempPointArr[2] = (TempPointArr[3] offset by (200.00 x (Real(TempInteger))) towards TempReal degrees)
          • Special Effect - Create a special effect at TempPointArr[2] using Abilities\Spells\Other\Doom\DoomDeath.mdl
          • Special Effect - Destroy (Last created special effect)
          • Custom script: set bj_wantDestroyGroup = true
          • Unit Group - Pick every unit in (Units within AoE of TempPointArr[2] matching (((Triggering player) is an enemy of (Owner of (Matching unit))) Equal to True)) and do (Actions)
            • Loop - Actions
              • Unit - Cause (Triggering unit) to damage (Picked unit), dealing TempDamage damage of attack type TempAttackType and damage type TempDamageType
          • Set KnockBackGroup = (Units within AoE of TempPointArr[2] matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of (Tr
          • Unit Group - Pick every unit in KnockBackGroup and do (Actions)
            • Loop - Actions
              • Set KBA_Caster = (Triggering unit)
              • Set KBA_TargetUnit = (Picked unit)
              • Set KBA_StartingPosition = (Target point of ability being cast)
              • Set KBA_Level = 3
              • Set KBA_Speed = 9.00
              • Set KBA_DistancePerLevel = 250.00
              • Set KBA_SpecialEffects[1] = Abilities\Spells\Human\FlakCannons\FlakTarget.mdl
              • Set KBA_SpecialEffects[2] = Abilities\Spells\Undead\OrbOfDeath\OrbOfDeathMissile.mdl
              • Set KBA_DestroyTrees = True
              • Trigger - Run Cast A Knockback <gen> (checking conditions)
          • Destructible - Pick every destructible within AoE of TempPointArr[2] and do (Actions)
            • Loop - Actions
              • Destructible - Kill (Picked destructible)
          • Custom script: call RemoveLocation(udg_TempPointArr[2])
      • Custom script: call RemoveLocation(udg_TempPointArr[3])





Keywords:
big booms, knockback, explode, bang, blow up, destructable destruction, GUI
Contents

SpellbyDogzz (Map)

Reviews
12th Dec 2015 IcemanBo: Too long as NeedsFix. Rejected. 15:31, 17th Jul 2012 Magtheridon96: There's room for a lot of improvement here. I'd recommend using Bribe's Knockback system. It's a lot better. Spell configurations should be...

Moderator

M

Moderator

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

15:31, 17th Jul 2012
Magtheridon96:

There's room for a lot of improvement here.

  • I'd recommend using Bribe's Knockback system. It's a lot better.
  • Spell configurations should be done in a totally different trigger that runs on map initialization, not the spell-cast trigger.
  • When you're repeating things like (Owner of TempUnit), it's always better to put them into a variable so you can reuse them again rather than calling them over and over again. The same applies to (Last created unit), (Triggering unit), (Triggering player), etc...
  • I don't know about Paladon's Knockback system, but it seems that you aren't destroying the knockback group or the locations. Does it do that automatically for you? If yes, that's totally fine.
  • Currently, you're not using a safe method to destroy destructibles. You can destroy bridges as well. You need to use safe tree detection. You can do this by picking all the destructibles, having a dummy peasant with the harvest ability attempt to harvest it, then check if his current order is "harvest", and if that is true, then you can destroy the destructible, because then you would be totally sure of the fact that you're only destroying trees.
  • (Ability being cast) is the most redundant thing ever when you already know what ability is being cast o_O
  • Your method of indexing seems very outdated. Refer to this.
    • Unit - Turn collision for (Last created unit) Off
    • Unit - Move (Last created unit) instantly to TempLoc1_2
    • Set Missile2[TempInteger2] = (Last created unit)
    You can switch these lines up so that you don't have to repeat (Last created unit). This way, you'd just look up the value from the array.
 
Top