This is my first 'official' spellpack/hero. All coding was done by myself and the I came up with these ideas on my own. If you decide to use any of the spells, please do not claim them as your own.
Thanks to:
GUI/JASS - GUI
MUI - Nope
MPI - Whats the difference between this and mui ...
Leakless - 95% certain.
Icecrown Overlord
Description
Abilities
Hammer Smash Coding
Frozen Wall Coding
Frost Mastery Coding
Blizzard Storm Coding
Thanks to:
Tinki3 for his help on some questions I asked as well as this spell template map. Link: http://www.thehelper.net/forums/showthread.php?t=65846
PandaMine for his tutorial on animations.
Link: http://world-editor-tutorials.thehelper.net/cat_usersubmit.php?view=32588
Freeze for his fantastic blizzard model.
Link: http://www.hiveworkshop.com/forums/resource.php?t=48015
General Frank for creating the Icecrown Reaver model which inspired me to make the spells in the first place, as well as all his other awesome models which i might make spells for in the future.
Link: http://www.wc3campaigns.net/showthread.php?t=90652
DarthFett for his tutorial on reducing lag, it helped me reduced lags in the spells.
Link: http://www.thehelper.net/forums/showthread.php?t=41198
emjlr3 for his tutorial about leaks.
Link: http://www.thehelper.net/forums/showthread.php?t=27219
And to all those who have been helpful at TheHelper.net that I may have forgot to mention =D
PandaMine for his tutorial on animations.
Link: http://world-editor-tutorials.thehelper.net/cat_usersubmit.php?view=32588
Freeze for his fantastic blizzard model.
Link: http://www.hiveworkshop.com/forums/resource.php?t=48015
General Frank for creating the Icecrown Reaver model which inspired me to make the spells in the first place, as well as all his other awesome models which i might make spells for in the future.
Link: http://www.wc3campaigns.net/showthread.php?t=90652
DarthFett for his tutorial on reducing lag, it helped me reduced lags in the spells.
Link: http://www.thehelper.net/forums/showthread.php?t=41198
emjlr3 for his tutorial about leaks.
Link: http://www.thehelper.net/forums/showthread.php?t=27219
And to all those who have been helpful at TheHelper.net that I may have forgot to mention =D
GUI/JASS - GUI
MUI - Nope
MPI - Whats the difference between this and mui ...
Leakless - 95% certain.
Icecrown Overlord
Description
Empowered by the core energy of Icecrown itself, Urak was created countless centuries ago. to defend and protect Icecrown from invaders and those who tried to take it.
Ever since Ner'zhul conquered Icecrown he has been sealed, encased into an ice tomb where he was created, destined to come back when the time was right.
Now that the Lich King has fused himself with his loyal knight, Arthas, he has freed and enslaved Urak, his power had to be reduced to a fraction because he was too powerful to be fully controlled. He serves his new master Ner'zhul, and commands his greatest armies into battle. His skills and strength allow him to slay enormous armies, chase down single foes and survive in combat.
Ever since Ner'zhul conquered Icecrown he has been sealed, encased into an ice tomb where he was created, destined to come back when the time was right.
Now that the Lich King has fused himself with his loyal knight, Arthas, he has freed and enslaved Urak, his power had to be reduced to a fraction because he was too powerful to be fully controlled. He serves his new master Ner'zhul, and commands his greatest armies into battle. His skills and strength allow him to slay enormous armies, chase down single foes and survive in combat.
Hammer Smash Coding
Code:
HammerSmash
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Hammer Smash
Actions
Set HSCaster = (Casting unit)
Set HSCasterPoint = (Position of HSCaster)
Set HSCasterAngle = (Facing of HSCaster)
Set HSDirectDmg = ((Level of Hammer Smash for HSCaster) x 100)
Set HSAfterDmg = ((Level of Hammer Smash for HSCaster) x 25)
For each (Integer A) from 1 to 5, do (Actions)
Loop - Actions
Set HSTarget[(Integer A)] = (HSCasterPoint offset by (175.00 x (Real((Integer A)))) towards HSCasterAngle degrees)
Wait 0.01 seconds
Custom script: call SetUnitAnimationByIndex(udg_HSCaster,5)
Wait 0.40 seconds
-------- First Impact --------
Set HSTempGroup = (Units within 200.00 of HSTarget[1] matching (((Matching unit) belongs to an enemy of (Owner of HSCaster)) Equal to True))
Special Effect - Create a special effect at HSTarget[1] using Abilities\Spells\Human\Thunderclap\ThunderClapCaster.mdl
Unit - Create 1 DummyCaster for (Owner of HSCaster) at HSTarget[1] facing Default building facing degrees
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Unit - Add Hammer Smash(Slow) (Direct) to (Last created unit)
Unit - Set level of Hammer Smash(Slow) (Direct) for (Last created unit) to (Level of Hammer Smash for HSCaster)
Unit - Order (Last created unit) to Human Mountain King - Thunder Clap
Unit - Cause HSCaster to damage circular area after 0.00 seconds of radius 200.00 at HSTarget[1], dealing (Real(HSDirectDmg)) damage of attack type Normal and damage type Normal
Special Effect - Destroy (Last created special effect)
Custom script: call DestroyGroup (udg_HSTempGroup)
Wait 0.10 seconds
Animation - Reset HSCaster's animation
Wait 0.10 seconds
-------- Second Impact --------
Set HSTempGroup = (Units within 200.00 of HSTarget[2] matching (((Matching unit) belongs to an enemy of (Owner of HSCaster)) Equal to True))
Special Effect - Create a special effect at HSTarget[2] using Abilities\Spells\Human\Thunderclap\ThunderClapCaster.mdl
Unit - Create 1 DummyCaster for (Owner of HSCaster) at HSTarget[2] facing Default building facing degrees
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Unit - Add Hammer Smash(Slow) (Aftershock) to (Last created unit)
Unit - Set level of Hammer Smash(Slow) (Aftershock) for (Last created unit) to (Level of Hammer Smash for HSCaster)
Unit - Order (Last created unit) to Human Mountain King - Thunder Clap
Unit - Cause HSCaster to damage circular area after 0.00 seconds of radius 200.00 at HSTarget[1], dealing (Real(HSAfterDmg)) damage of attack type Normal and damage type Normal
Special Effect - Destroy (Last created special effect)
Custom script: call DestroyGroup (udg_HSTempGroup)
Wait 0.10 seconds
-------- Third Impact --------
Set HSTempGroup = (Units within 200.00 of HSTarget[3] matching (((Matching unit) belongs to an enemy of (Owner of HSCaster)) Equal to True))
Special Effect - Create a special effect at HSTarget[3] using Abilities\Spells\Human\Thunderclap\ThunderClapCaster.mdl
Unit - Create 1 DummyCaster for (Owner of HSCaster) at HSTarget[3] facing Default building facing degrees
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Unit - Add Hammer Smash(Slow) (Aftershock) to (Last created unit)
Unit - Set level of Hammer Smash(Slow) (Aftershock) for (Last created unit) to (Level of Hammer Smash for HSCaster)
Unit - Order (Last created unit) to Human Mountain King - Thunder Clap
Unit - Cause HSCaster to damage circular area after 0.00 seconds of radius 200.00 at HSTarget[3], dealing (Real(HSAfterDmg)) damage of attack type Normal and damage type Normal
Special Effect - Destroy (Last created special effect)
Custom script: call DestroyGroup (udg_HSTempGroup)
Wait 0.10 seconds
-------- Fourth Impact --------
Set HSTempGroup = (Units within 200.00 of HSTarget[4] matching (((Matching unit) belongs to an enemy of (Owner of HSCaster)) Equal to True))
Special Effect - Create a special effect at HSTarget[4] using Abilities\Spells\Human\Thunderclap\ThunderClapCaster.mdl
Unit - Create 1 DummyCaster for (Owner of HSCaster) at HSTarget[4] facing Default building facing degrees
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Unit - Add Hammer Smash(Slow) (Aftershock) to (Last created unit)
Unit - Set level of Hammer Smash(Slow) (Aftershock) for (Last created unit) to (Level of Hammer Smash for HSCaster)
Unit - Order (Last created unit) to Human Mountain King - Thunder Clap
Unit - Cause HSCaster to damage circular area after 0.00 seconds of radius 200.00 at HSTarget[4], dealing (Real(HSAfterDmg)) damage of attack type Normal and damage type Normal
Special Effect - Destroy (Last created special effect)
Custom script: call DestroyGroup (udg_HSTempGroup)
Wait 0.10 seconds
-------- Fifth Impact --------
Set HSTempGroup = (Units within 200.00 of HSTarget[5] matching (((Matching unit) belongs to an enemy of (Owner of HSCaster)) Equal to True))
Special Effect - Create a special effect at HSTarget[5] using Abilities\Spells\Human\Thunderclap\ThunderClapCaster.mdl
Unit - Create 1 DummyCaster for (Owner of HSCaster) at HSTarget[5] facing Default building facing degrees
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Unit - Add Hammer Smash(Slow) (Aftershock) to (Last created unit)
Unit - Set level of Hammer Smash(Slow) (Aftershock) for (Last created unit) to (Level of Hammer Smash for HSCaster)
Unit - Order (Last created unit) to Human Mountain King - Thunder Clap
Unit - Cause HSCaster to damage circular area after 0.00 seconds of radius 200.00 at HSTarget[5], dealing (Real(HSAfterDmg)) damage of attack type Normal and damage type Normal
Special Effect - Destroy (Last created special effect)
Custom script: call DestroyGroup (udg_HSTempGroup)
Set HSCaster = No unit
Set HSCasterAngle = 0.00
Set HSDirectDmg = 0
Set HSAfterDmg = 0
Custom script: call RemoveLocation (udg_HSTarget[1])
Custom script: call RemoveLocation (udg_HSTarget[2])
Custom script: call RemoveLocation (udg_HSTarget[3])
Custom script: call RemoveLocation (udg_HSTarget[4])
Custom script: call RemoveLocation (udg_HSTarget[5])
Custom script: call RemoveLocation (udg_HSCasterPoint)
Frozen Wall Coding
Code:
Frozen Wall Activate
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Frozen Wall
Actions
Set FWTarget = (Target unit of ability being cast)
Set FWCaster = (Casting unit)
Unit - Add Immunity to FWTarget
Player - Disable Immunity for (Owner of FWCaster)
Trigger - Turn on Frozen Wall Absorb <gen>
Trigger - Turn on Frozen Wall Melt <gen>
Code:
Frozen Wall Absorb
Events
Unit - A unit Is attacked
Conditions
(Attacked unit) Equal to FWTarget
Actions
Set FWAtksAbsorbed = (FWAtksAbsorbed + 1)
Code:
Frozen Wall Melt
Events
Time - Every 0.01 seconds of game time
Conditions
Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
FWAtksAbsorbed Greater than or equal to (((Level of Frozen Wall for FWCaster) + 3) + (Level of Frost Mastery for FWCaster))
Then - Actions
Unit - Remove Frozen Wall buff from FWTarget
Unit - Remove Immunity from FWTarget
Set FWTempPoint = (Position of FWTarget)
Special Effect - Create a special effect at FWTempPoint using Objects\Spawnmodels\Naga\NagaDeath\NagaDeath.mdl
Unit - Create 1 DummyCaster for Neutral Passive at FWTempPoint facing Default building facing degrees
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Unit - Add Frozen Wall(Slow) to (Last created unit)
Unit - Set level of Frozen Wall(Slow) for (Last created unit) to (Level of Frozen Wall for FWCaster)
Unit - Order (Last created unit) to Human Mountain King - Thunder Clap
Special Effect - Destroy (Last created special effect)
Set FWCaster = No unit
Set FWTarget = No unit
Set FWAtksAbsorbed = 0
Custom script: call RemoveLocation (udg_FWTempPoint)
Trigger - Turn off Frozen Wall Absorb <gen>
Trigger - Turn off (This trigger)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(FWTarget has buff Frozen Wall ) Equal to False
Then - Actions
Unit - Remove Immunity from FWTarget
Set FWTempPoint = (Position of FWTarget)
Special Effect - Create a special effect at FWTempPoint using Objects\Spawnmodels\Naga\NagaDeath\NagaDeath.mdl
Unit - Create 1 DummyCaster for Neutral Passive at FWTempPoint facing Default building facing degrees
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Unit - Add Frozen Wall(Slow) to (Last created unit)
Unit - Set level of Frozen Wall(Slow) for (Last created unit) to (Level of Frozen Wall for FWCaster)
Unit - Order (Last created unit) to Human Mountain King - Thunder Clap
Special Effect - Destroy (Last created special effect)
Set FWCaster = No unit
Set FWTarget = No unit
Set FWAtksAbsorbed = 0
Custom script: call RemoveLocation (udg_FWTempPoint)
Trigger - Turn off Frozen Wall Absorb <gen>
Trigger - Turn off (This trigger)
Else - Actions
Do nothing
Frost Mastery Coding
Code:
Frost Mastery Learn
Events
Unit - A unit Learns a skill
Conditions
(Learned Hero Skill) Equal to Frost Mastery
Actions
Trigger - Turn on Frost Mastery <gen>
Trigger - Turn off (This trigger)
Code:
Frost Mastery
Events
Unit - A unit Is attacked
Conditions
Actions
Set FMTarget = (Attacking unit)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
((Level of Frost Mastery for (Attacked unit)) Equal to 1) and ((Random integer number between 1 and 100) Less than or equal to 5)
Then - Actions
Set FM_TempPoint = (Position of (Attacking unit))
Unit - Create 1 DummyCaster for (Owner of (Attacked unit)) at FM_TempPoint facing Default building facing degrees
Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
Unit - Add Frost Nova(FrostMastery) to (Last created unit)
Unit - Set level of Frost Nova(FrostMastery) for (Last created unit) to 1
Unit - Order (Last created unit) to Undead Lich - Frost Nova FMTarget
Custom script: call RemoveLocation (udg_FWTempPoint)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
((Level of Frost Mastery for (Attacked unit)) Equal to 2) and ((Random integer number between 1 and 100) Less than or equal to (15 / 2))
Then - Actions
Set FM_TempPoint = (Position of (Attacking unit))
Unit - Create 1 DummyCaster for (Owner of (Attacked unit)) at FM_TempPoint facing Default building facing degrees
Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
Unit - Add Frost Nova(FrostMastery) to (Last created unit)
Unit - Set level of Frost Nova(FrostMastery) for (Last created unit) to 1
Unit - Order (Last created unit) to Undead Lich - Frost Nova FMTarget
Custom script: call RemoveLocation (udg_FWTempPoint)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
((Level of Frost Mastery for (Attacked unit)) Equal to 3) and ((Random integer number between 1 and 100) Less than or equal to 10)
Then - Actions
Set FM_TempPoint = (Position of (Attacking unit))
Unit - Create 1 DummyCaster for (Owner of (Attacked unit)) at FM_TempPoint facing Default building facing degrees
Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
Unit - Add Frost Nova(FrostMastery) to (Last created unit)
Unit - Set level of Frost Nova(FrostMastery) for (Last created unit) to 1
Unit - Order (Last created unit) to Undead Lich - Frost Nova FMTarget
Custom script: call RemoveLocation (udg_FWTempPoint)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
((Level of Frost Mastery for (Attacked unit)) Equal to 4) and ((Random integer number between 1 and 100) Less than or equal to (25 / 2))
Then - Actions
Set FM_TempPoint = (Position of (Attacking unit))
Unit - Create 1 DummyCaster for (Owner of (Attacked unit)) at FM_TempPoint facing Default building facing degrees
Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
Unit - Add Frost Nova(FrostMastery) to (Last created unit)
Unit - Set level of Frost Nova(FrostMastery) for (Last created unit) to 1
Unit - Order (Last created unit) to Undead Lich - Frost Nova FMTarget
Custom script: call RemoveLocation (udg_FWTempPoint)
Else - Actions
Do nothing
Set FMTarget = No unit
Blizzard Storm Coding
Code:
Blizzard Storm Cast
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Blizzard Storm
Actions
Set BSCaster = (Casting unit)
Set BSCasterPoint = (Position of BSCaster)
Set BSSoundPoints[1] = (BSCasterPoint offset by (-600.00, 0.00))
Set BSSoundPoints[2] = (BSCasterPoint offset by (600.00, 0.00))
Set BSSoundPoints[3] = (BSCasterPoint offset by (0.00, -600.00))
Set BSSoundPoints[4] = (BSCasterPoint offset by (0.00, 600.00))
Unit - Add bliizard storm spellbook to BSCaster
Player - Disable bliizard storm spellbook for (Owner of BSCaster)
Unit - Create 1 DummyCaster for (Owner of BSCaster) at BSCasterPoint facing Default building facing degrees
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Unit - Add Blizzard Storm(Armor) to (Last created unit)
Unit - Set level of Blizzard Storm(Armor) for (Last created unit) to (Level of Blizzard Storm for BSCaster)
Unit - Order (Last created unit) to Human Priest - Inner Fire BSCaster
Sound - Play BlizzardLoop1 <gen> at 100.00% volume, located at BSCasterPoint with Z offset 0.00
Set BSSound[1] = (Last played sound)
Sound - Play BlizzardLoop1 <gen> at 100.00% volume, located at BSSoundPoints[1] with Z offset 0.00
Set BSSound[2] = (Last played sound)
Sound - Play BlizzardLoop1 <gen> at 100.00% volume, located at BSSoundPoints[2] with Z offset 0.00
Set BSSound[3] = (Last played sound)
Sound - Play BlizzardLoop1 <gen> at 100.00% volume, located at BSSoundPoints[3] with Z offset 0.00
Set BSSound[4] = (Last played sound)
Sound - Play BlizzardLoop1 <gen> at 100.00% volume, located at BSSoundPoints[4] with Z offset 0.00
Set BSSound[5] = (Last played sound)
Trigger - Turn on Blizzard Storm Loop <gen>
Trigger - Turn on Blizzard Storm Stop <gen>
Code:
Blizzard Storm Loop
Events
Time - Every 3.50 seconds of game time
Conditions
Actions
Special Effect - Create a special effect attached to the origin of BSCaster using Abilities\Spells\Other\Charm\CharmTarget.mdl
Sound - Play BlizzardLoop1 <gen> at 100.00% volume, located at BSCasterPoint with Z offset 0.00
Set BSSound[1] = (Last played sound)
Sound - Play BlizzardLoop1 <gen> at 100.00% volume, located at BSSoundPoints[1] with Z offset 0.00
Set BSSound[2] = (Last played sound)
Sound - Play BlizzardLoop1 <gen> at 100.00% volume, located at BSSoundPoints[2] with Z offset 0.00
Set BSSound[3] = (Last played sound)
Sound - Play BlizzardLoop1 <gen> at 100.00% volume, located at BSSoundPoints[3] with Z offset 0.00
Set BSSound[4] = (Last played sound)
Sound - Play BlizzardLoop1 <gen> at 100.00% volume, located at BSSoundPoints[4] with Z offset 0.00
Set BSSound[5] = (Last played sound)
Special Effect - Destroy (Last created special effect)
Code:
Blizzard Storm Stop
Events
Time - Every 0.05 seconds of game time
Conditions
(Current order of BSCaster) Not equal to (Order(starfall))
Actions
Unit - Remove Blizzard Storm (Armor) buff from BSCaster
Unit - Remove bliizard storm spellbook from BSCaster
Set BSCaster = No unit
Custom script: call RemoveLocation (udg_BSCasterPoint)
Custom script: call RemoveLocation (udg_BSSoundPoints[1])
Custom script: call RemoveLocation (udg_BSSoundPoints[2])
Custom script: call RemoveLocation (udg_BSSoundPoints[3])
Custom script: call RemoveLocation (udg_BSSoundPoints[4])
Custom script: call RemoveLocation (udg_BSSoundPoints[5])
For each (Integer A) from 1 to 5, do (Actions)
Loop - Actions
Sound - Destroy BSSound[(Integer A)]
Trigger - Turn off Blizzard Storm Loop <gen>
Trigger - Turn off (This trigger)
[code][/spoiler]
Yes i know the spells arent THAT great and are pretty simple to create, but i'd just like some feedback and tips on how i could make it better.
Right now i've only included implementation instructions and screenshots for Hammer Smash. Once i get back i will update the post. All feedback is appreciated.
update - added in implementation methods for all of the skills, as well as a new skill 'melt' which is obtained when you learn level 4 Frost Mastery, as for the screen shots i cant really be bothered since Hammer Smash is the only decent eye candy imo anyway. I also probably wont be maknig any changes to the map anymore.