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

Christmas Spellpack

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
12th Dec 2015
IcemanBo: Too long time as NeedsFix. Rejected.

Christmas Spellpack

Created by x-omg-x




About this pack

This spellpack is made for the upcoming christmas and includes four unique theme-based spells.
The four spells is using a total of six triggers and is easily configureable and understandable.
If you need information about how to import, check the description in the trigger editor.
Each spell contains many comments to make evey single action understandable for the readers.
The pack also contains a well made test map, with a totally unique administration of your hero.
All of the four spells are fully GUI, MUI, leakless, bugless and laggless.
How to import

Go to File->Preferences and check "Automatically create unknown variables when pasting trigger data".
Open the trigger editor and copy the spellfolder.
Open your object editor and copy the unit "Dummy" and the spell(s) for the spell you are importing. // Note that only one spell can be copied at a time
Press on the Open and select your own map.
Open the object editor and paste the copied spell(s) and dummy unit.
Open your trigger editor and paste the spellfolder.
Repair broken links in the code, if there is any.
You're done!
Descriptions

Greedisgood
Slams the ground, making gold coins pop up in a circle and on every enemy unit, and the caster sends shiny waves of gold to all nearby enemy units, dealing 50/100/150 damage. The circle of goins will deal the same damage to all units in 50 range.

Snow Cannon
Freezing a target unit, dealing 75/150/215 damage and knocking the targeted unit back over 5 seconds.

Blizzard
Fires a heavy wave of icecold missiles at a target location, dealing 20/40/60 damage each second in 3 seconds. The damaged units will also have a slightly slowed move- and attackspeed for 10 seconds.

Christmas Star
The hero summons a heavy star of light in a shiny circle, dealing 60/120/180 damage to all enemy units inside the circle.
Triggers

  • Greedisgood
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Greedisgood
    • Actions
      • -------- Greedisgood --------
      • -------- Created by X-OMG-X --------
      • -------- --------
      • -------- --------
      • -------- Setting the variables --------
      • Set GG_Caster = (Triggering unit)
      • Set GG_Point = (Position of GG_Caster)
      • Set GG_Group = (Units within 500.00 of GG_Point matching ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of GG_Caster)) Equal to True)))
      • -------- Picking needed units --------
      • Unit Group - Pick every unit in GG_Group and do (Actions)
        • Loop - Actions
          • -------- Setting their positions --------
          • Set GG_PickedPoint = (Position of (Picked unit))
          • -------- Creating the dummy and ordering it to cast --------
          • Unit - Create 1 Dummy for (Owner of GG_Caster) at GG_Point facing Default building facing degrees
          • Unit - Add a 1.50 second Generic expiration timer to (Last created unit)
          • Unit - Add Greedisgood (Dummy) to (Last created unit)
          • Unit - Order (Last created unit) to Special Archimonde - Finger Of Death (Picked unit)
          • Unit - Cause (Last created unit) to damage (Picked unit), dealing (50.00 x (Real((Level of Greedisgood for GG_Caster)))) damage of attack type Spells and damage type Normal
          • -------- Creating special effects --------
          • Special Effect - Create a special effect at GG_PickedPoint using UI\Feedback\GoldCredit\GoldCredit.mdl
          • Special Effect - Destroy (Last created special effect)
          • -------- Removing a memory leak --------
          • Custom script: call RemoveLocation(udg_GG_PickedPoint)
      • -------- Removing a memory leak --------
      • Custom script: call DestroyGroup(udg_GG_Group)
      • -------- ForeachInteger means that the following lines will be done (in this case 36) several times --------
      • For each (Integer GG_Integer) from 1 to 36, do (Actions)
        • Loop - Actions
          • -------- Setting the variables --------
          • Set GG_Offset = (GG_Point offset by 500.00 towards (10.00 x (Real(GG_Integer))) degrees)
          • Set GG_Group = (Units within 50.00 of GG_Offset matching ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of GG_Caster)) Equal to True)))
          • -------- Picking the needed units --------
          • Unit Group - Pick every unit in GG_Group and do (Actions)
            • Loop - Actions
              • -------- Dealing damage to all the units inside the circle --------
              • Unit - Cause GG_Caster to damage (Picked unit), dealing (50.00 x (Real((Level of Greedisgood for GG_Caster)))) damage of attack type Spells and damage type Normal
          • -------- Creating special effects --------
          • Special Effect - Create a special effect at GG_Offset using UI\Feedback\GoldCredit\GoldCredit.mdl
          • Special Effect - Destroy (Last created special effect)
          • -------- Removing a memory leak --------
          • Custom script: call DestroyGroup(udg_GG_Group)
      • -------- Removing a memory leak --------
      • Custom script: call RemoveLocation(udg_GG_Point)
  • SnowCannon
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Snow Cannon
    • Actions
      • -------- Snow Cannon --------
      • -------- Created by X-OMG-X --------
      • -------- --------
      • -------- --------
      • -------- Setting the index --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • SC_IndexSize Equal to 0
        • Then - Actions
          • -------- Turns the loop on --------
          • Trigger - Turn on SnowCannonLoop <gen>
        • Else - Actions
      • -------- Increase the index size --------
      • Set SC_IndexSize = (SC_IndexSize + 1)
      • -------- Dynamic Index --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • SC_IndexSize Greater than SC_IndexMaxSize
        • Then - Actions
          • Set SC_Index[SC_IndexSize] = SC_IndexSize
          • Set SC_IndexMaxSize = SC_IndexSize
        • Else - Actions
      • -------- Dynamic Index End --------
      • Set TempInt = SC_Index[SC_IndexSize]
      • -------- Setting the needed variables --------
      • Set TempLoc = (Position of (Triggering unit))
      • Set TempLoc2 = (Target point of ability being cast)
      • Set SC_Caster[TempInt] = (Triggering unit)
      • Set SC_Target[TempInt] = (Target unit of ability being cast)
      • Set SC_Angle[TempInt] = (Angle from TempLoc to TempLoc2)
      • Set SC_Speed[TempInt] = 5.00
      • Set SC_Duration[TempInt] = 5.00
      • -------- Damaging the targeted unit --------
      • Unit - Cause SC_Caster[TempInt] to damage SC_Target[TempInt], dealing (75.00 x (Real((Level of Snow Cannon for SC_Caster[TempInt])))) damage of attack type Spells and damage type Normal
      • -------- Creating special effects --------
      • Special Effect - Create a special effect at TempLoc2 using Abilities\Spells\Undead\FrostNova\FrostNovaTarget.mdl
      • Special Effect - Destroy (Last created special effect)
      • -------- Removing memory leaks --------
      • Custom script: call RemoveLocation(udg_TempLoc)
      • Custom script: call RemoveLocation(udg_TempLoc2)
  • SnowCannonLoop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • -------- --------
      • -------- DO NOT EDIT ANYTHING BELOW THIS LINE --------
      • -------- UNLESS YOU KNOW WHAT YOU ARE DOING --------
      • -------- --------
      • For each (Integer SPELL_LOOP) from 1 to SC_IndexSize, do (Actions)
        • Loop - Actions
          • -------- This let look everything cleaner. --------
          • Set TempInt = SC_Index[SPELL_LOOP]
          • -------- Condition... --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • SC_Duration[TempInt] Greater than 0.00
            • Then - Actions
              • -------- Actions --------
              • Set TempLoc = (Position of SC_Target[TempInt])
              • Set TempLoc2 = (TempLoc offset by SC_Speed[TempInt] towards SC_Angle[TempInt] degrees)
              • Unit - Move SC_Target[TempInt] instantly to TempLoc2, facing (SC_Angle[TempInt] + 180.00) degrees
              • Special Effect - Create a special effect at TempLoc using Abilities\Spells\Other\FrostBolt\FrostBoltMissile.mdl
              • Special Effect - Destroy (Last created special effect)
              • Special Effect - Create a special effect at TempLoc2 using Abilities\Spells\Undead\FrostArmor\FrostArmorDamage.mdl
              • Special Effect - Destroy (Last created special effect)
              • Set SC_Duration[TempInt] = (SC_Duration[TempInt] - 0.03)
              • Set SC_Speed[TempInt] = (SC_Speed[TempInt] - 0.03)
              • Custom script: call RemoveLocation(udg_TempLoc)
              • Custom script: call RemoveLocation(udg_TempLoc2)
            • Else - Actions
              • -------- RecycleIndex --------
              • Special Effect - Create a special effect at TempLoc2 using Abilities\Spells\Undead\FrostNova\FrostNovaTarget.mdl
              • Special Effect - Destroy (Last created special effect)
              • Set SC_Index[SPELL_LOOP] = SC_Index[SC_IndexSize]
              • Set SC_Index[SC_IndexSize] = TempInt
              • Set SC_IndexSize = (SC_IndexSize - 1)
              • Set SPELL_LOOP = (SPELL_LOOP - 1)
      • -------- Turn the trigger again off if the index_size is below 0... --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • SC_IndexSize Equal to 0
        • Then - Actions
          • Trigger - Turn off (This trigger)
        • Else - Actions
      • -------- --------
      • -------- DO NOT EDIT ANYTHING ABOVE THIS LINE --------
      • -------- UNLESS YOU KNOW WHAT YOU ARE DOING --------
      • -------- --------
  • Blizzard
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Blizzard
    • Actions
      • -------- Blizzard --------
      • -------- Created by X-OMG-X --------
      • -------- --------
      • -------- --------
      • -------- Setting the index --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • IM_IndexSize Equal to 0
        • Then - Actions
          • Trigger - Turn on BlizzardLoop <gen>
        • Else - Actions
      • -------- Increase the index size --------
      • Set IM_IndexSize = (IM_IndexSize + 1)
      • -------- Dynamic Index --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • IM_IndexSize Greater than IM_IndexMaxSize
        • Then - Actions
          • Set IM_Index[IM_IndexSize] = IM_IndexSize
          • Set IM_IndexMaxSize = IM_IndexSize
        • Else - Actions
      • -------- Dynamic Index End --------
      • Set IM_TempInt = IM_Index[IM_IndexSize]
      • -------- Setting the variables --------
      • Set IM_Position = (Position of (Triggering unit))
      • Set IM_TargetPos = (Target point of ability being cast)
      • Set IM_Caster[IM_TempInt] = (Triggering unit)
      • Set IM_Duration[IM_TempInt] = 3.00
      • -------- Creating a dummy unit --------
      • Unit - Create 1 Dummy for (Owner of IM_Caster[IM_TempInt]) at IM_TargetPos facing Default building facing degrees
      • -------- Setting the dummy in variable --------
      • Set IM_Dummy[IM_TempInt] = (Last created unit)
      • -------- Doing the dummies' utillity --------
      • Unit - Add a IM_Duration[IM_TempInt] second Generic expiration timer to IM_Dummy[IM_TempInt]
      • Unit - Add Blizzard (Dummy) to IM_Dummy[IM_TempInt]
      • -------- Setting the group of units --------
      • Set IM_Group[IM_TempInt] = (Units within 250.00 of IM_TargetPos matching ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of IM_Caster[IM_TempInt])) Equal to True)))
      • -------- Picking all the units --------
      • Unit Group - Pick every unit in IM_Group[IM_TempInt] and do (Actions)
        • Loop - Actions
          • -------- Ordering our dummy to slow them --------
          • Unit - Order IM_Dummy[IM_TempInt] to Human Sorceress - Slow (Picked unit)
      • -------- Creating the special effects --------
      • Special Effect - Create a special effect at IM_TargetPos using Abilities\Spells\Undead\ReplenishMana\ReplenishManaCaster.mdl
      • Special Effect - Destroy (Last created special effect)
      • -------- Removing memory leaks --------
      • Custom script: call RemoveLocation(udg_IM_Position)
      • Custom script: call RemoveLocation(udg_IM_TargetPos)
      • Custom script: call DestroyGroup(udg_IM_Group[udg_IM_TempInt])
  • BlizzardLoop
    • Events
      • Time - Every 0.10 seconds of game time
    • Conditions
    • Actions
      • -------- --------
      • -------- DO NOT EDIT ANYTHING BELOW THIS LINE --------
      • -------- UNLESS YOU KNOW WHAT YOU ARE DOING --------
      • -------- --------
      • For each (Integer IM_Integer) from 1 to IM_IndexSize, do (Actions)
        • Loop - Actions
          • -------- This let look everything cleaner. --------
          • Set IM_TempInt = IM_Index[IM_Integer]
          • -------- Condition... --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • IM_Duration[IM_TempInt] Greater than 0.00
            • Then - Actions
              • -------- Actions --------
              • Set IM_TargetPos = (Position of IM_Dummy[IM_TempInt])
              • Special Effect - Create a special effect at IM_TargetPos using Abilities\Spells\Human\Blizzard\BlizzardTarget.mdl
              • Special Effect - Destroy (Last created special effect)
              • Set IM_Duration[IM_TempInt] = (IM_Duration[IM_TempInt] - 0.10)
              • Set IM_Group[IM_TempInt] = (Units within 250.00 of IM_TargetPos matching ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of IM_Caster[IM_TempInt])) Equal to True)))
              • Unit Group - Pick every unit in IM_Group[IM_TempInt] and do (Actions)
                • Loop - Actions
                  • Unit - Order IM_Dummy[IM_TempInt] to Human Sorceress - Slow (Picked unit)
                  • Unit - Cause IM_Dummy[IM_TempInt] to damage (Picked unit), dealing (2.00 x (Real((Level of Blizzard for IM_Caster[IM_TempInt])))) damage of attack type Spells and damage type Normal
              • Custom script: call RemoveLocation(udg_IM_TargetPos)
              • Custom script: call DestroyGroup(udg_IM_Group[udg_IM_TempInt])
            • Else - Actions
              • -------- RecycleIndex --------
              • Set IM_Index[IM_Integer] = IM_Index[IM_IndexSize]
              • Set IM_Index[IM_IndexSize] = IM_TempInt
              • Set IM_IndexSize = (IM_IndexSize - 1)
              • Set IM_Integer = (IM_Integer - 1)
      • -------- Turn the trigger again off if the index_size is below 0... --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • IM_IndexSize Equal to 0
        • Then - Actions
          • Trigger - Turn off (This trigger)
        • Else - Actions
      • -------- --------
      • -------- DO NOT EDIT ANYTHING ABOVE THIS LINE --------
      • -------- UNLESS YOU KNOW WHAT YOU ARE DOING --------
      • -------- --------
  • Christmas Star
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Christmas Star
    • Actions
      • -------- Christmas Star --------
      • -------- Created by X-OMG-X --------
      • -------- --------
      • -------- --------
      • -------- Setting the variables --------
      • Set CS_Caster = (Triggering unit)
      • Set CS_Position = (Position of CS_Caster)
      • -------- Creating a dummy --------
      • Unit - Create 1 Dummy for Player 2 (Blue) at CS_Position facing Default building facing degrees
      • -------- Setting the dummy --------
      • Set CS_Dummy = (Last created unit)
      • Unit - Add a 3.00 second Generic expiration timer to CS_Dummy
      • -------- ForeachInteger means that the following lines will be done (in this case 36) several times --------
      • For each (Integer CS_Integer) from 1 to 36, do (Actions)
        • Loop - Actions
          • -------- Setting the offset --------
          • Set CS_Offset = (CS_Position offset by 400.00 towards (10.00 x (Real(CS_Integer))) degrees)
          • -------- Creating special effects --------
          • Special Effect - Create a special effect at CS_Offset using Abilities\Spells\Demon\DarkPortal\DarkPortalTarget.mdl
          • Special Effect - Destroy (Last created special effect)
          • -------- Removing memory leaks --------
          • Custom script: call RemoveLocation(udg_CS_Offset)
      • -------- ForeachInteger means that the following lines will be done (in this case 5) several times --------
      • For each (Integer CS_Integer) from 1 to 5, do (Actions)
        • Loop - Actions
          • -------- Setting the offset --------
          • Set CS_Angle = (72.00 x (Real(CS_Integer)))
          • -------- ForeachInteger means that the following lines will be done (in this case 5) several times --------
          • For each (Integer CS_Integer2) from 1 to 5, do (Actions)
            • Loop - Actions
              • -------- Setting the offset --------
              • Set CS_OffsetStar[CS_Integer2] = (CS_Position offset by (50.00 x (Real(CS_Integer2))) towards CS_Angle degrees)
              • -------- Creating special effects --------
              • Special Effect - Create a special effect at CS_OffsetStar[CS_Integer2] using Abilities\Spells\Undead\ReplenishHealth\ReplenishHealthCasterOverhead.mdl
              • Special Effect - Destroy (Last created special effect)
              • -------- Removing memory leaks --------
              • Custom script: call RemoveLocation(udg_CS_OffsetStar[udg_CS_Integer2])
      • -------- Setting the group of units that needs to be damaged --------
      • Set CS_Group = (Units within 400.00 of CS_Position matching ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of CS_Caster)) Equal to True)))
      • -------- Picking all the units --------
      • Unit Group - Pick every unit in CS_Group and do (Actions)
        • Loop - Actions
          • -------- Dealing damage to all the units inside the unit group --------
          • Unit - Cause CS_Caster to damage (Picked unit), dealing (60.00 x (Real((Level of Christmas Star for CS_Caster)))) damage of attack type Spells and damage type Normal
      • -------- Removing memory leaks --------
      • Custom script: call RemoveLocation(udg_CS_Position)
      • Custom script: call DestroyGroup(udg_CS_Group)

Please comment and rate
Give credits if used in your map
Do not distribute this pack to any other sites
Now, enjoy and have fun! Merry christmas everybody!



Keywords:
christmas, pack, spellpack, xmas, merry, x-omg-x, blizzard, snow, cannon, ice, freeze, cold, star, light, lightning, damage, santa, hohoho, greed, is,
Contents

Christmas Pack (Map)

Reviews
12:58, 17th Jun 2010 Hanky: Ups my fault. Didn't saw that you got a leak in your greedisgood trigger. Fix the leak and I'll approve your spellpack.

Moderator

M

Moderator

12:58, 17th Jun 2010
Hanky:
Ups my fault. Didn't saw that you got a leak in your greedisgood trigger. Fix the leak and I'll approve your spellpack.
 
Top