Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
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)
-------- 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)
-------- 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
-------- 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
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!
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.