Spellpack Shinjhitszho the Elementalist

XeNiM666

I lurk for pizza
Reaction score
138
Shinjhitszho the Elementalist

GUI/JASS/vJASS - All GUI
Leakless - Yes to all
Lagless - Only Infernal Blast and Hoarfrost Lags when spammed
MUI/MPI - Yes to all

Rock Shield

Summons rocks from itself to create a barrier that will protect you from near units. Enemy units that will come in contact with the rocks will be stunned for 1 second and deal 125 damage.
Shield lasts for 15 seconds.

Level 1 - 3 rocks.
Level 2 - 4 rocks.
Level 3 - 5 rocks.

Trigger:
Code:
RS Cast
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Rock Shield 
    Actions
        Set Number = (2 + (Level of Rock Shield  for (Triggering unit)))
        For each (Integer A) from 1 to Number, do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        MUI Less than 1000
                    Then - Actions
                        Set MUI = (MUI + 1)
                    Else - Actions
                        Set MUI = 1
                Set Caster[MUI] = (Triggering unit)
                Set Caster_pos[MUI] = (Position of Caster[MUI])
                Set Temp_Point = (Caster_pos[MUI] offset by 175.00 towards ((Real((Integer A))) x (360.00 / (Real(Number)))) degrees)
                Unit - Create 1 Rock (Earth) for (Owner of Caster[MUI]) at Temp_Point facing Default building facing degrees
                Unit - Set the custom value of (Last created unit) to MUI
                Unit - Add a 15.00 second Generic expiration timer to (Last created unit)
                Unit - Turn collision for (Last created unit) Off
                Trigger - Add to RS Stun <gen> the event (Unit - A unit comes within 75.00 of (Last created unit))
                Set Speed[(Custom value of (Last created unit))] = ((Real((Integer A))) x (360.00 / (Real(Number))))
                Custom script:   call RemoveLocation(udg_Temp_Point)
                Custom script:   call RemoveLocation(udg_Caster_pos[udg_MUI])
Code:
RS Move
    Events
        Time - Every 0.03 seconds of game time
    Conditions
    Actions
        Set Group[1] = (Units of type Rock (Earth))
        Unit Group - Pick every unit in Group[1] and do (Actions)
            Loop - Actions
                Set Speed[(Custom value of (Picked unit))] = (Speed[(Custom value of (Picked unit))] + 5.00)
                Set Caster_pos[(Custom value of (Picked unit))] = (Position of Caster[(Custom value of (Picked unit))])
                Set Point[1] = (Caster_pos[(Custom value of (Picked unit))] offset by 175.00 towards Speed[(Custom value of (Picked unit))] degrees)
                Unit - Move (Picked unit) instantly to Point[1]
                Custom script:   call RemoveLocation(udg_Caster_pos[GetUnitUserData(GetEnumUnit())])
                Custom script:   call RemoveLocation(udg_Point[1])
        Custom script:   call DestroyGroup(udg_Group[1])
Code:
RS Stun
    Events
    Conditions
        ((Triggering unit) is dead) Equal to False
        (Unit-type of (Triggering unit)) Not equal to Rock (Earth)
        ((Triggering unit) belongs to an enemy of (Owner of Caster[MUI])) Equal to True
    Actions
        Set Point[2] = (Position of (Triggering unit))
        Set Group[2] = (Units within 125.00 of Point[2] matching ((Unit-type of (Matching unit)) Equal to Rock (Earth)))
        Unit - Create 1 Dummy Unit for (Owner of Caster[MUI]) at Point[2] facing Default building facing degrees
        Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
        Unit - Add Rock Shield Stun  to (Last created unit)
        Unit - Order (Last created unit) to Neutral - Hurl Boulder (Triggering unit)
        Unit Group - Pick every unit in Group[2] and do (Actions)
            Loop - Actions
                Unit - Kill (Picked unit)
                Unit - Remove (Picked unit) from the game
        Custom script:   call RemoveLocation(udg_Point[2])
        Custom script:   call DestroyGroup(udg_Group[2])

Screenie:
RockShield1.jpg
RockShield2.jpg

Infernal Blast

Fires a concentrated orb of fire in a targeted location. The orb will continue to move to a 1250 range, leaving a trail of fire that damages enemy units that step on them while destroying trees. After travelling a 1250 range, the orb will blow up, destroying trees and damaging units within 300 range of the explosion.
Explosion lasts for 10 seconds.

Level 1 - 200 damage in contact, 10 damage per second,
35 explosion damage, 15 moderate damage.
Level 2 - 300 damage in contact, 15 damage per second,
50 explosion damage, 22.5 moderate damage.
Level 3 - 400 damage in contact, 20 damage per second,
65 explosion damage, 30 moderate damage.

Trigger:
Code:
I Cast
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Infernal Blast 
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                MUI Less than 1000
            Then - Actions
                Set MUI = (MUI + 1)
            Else - Actions
                Set MUI = 1
        Set Caster[MUI] = (Triggering unit)
        Set Caster_pos[MUI] = (Position of Caster[MUI])
        Set Target[MUI] = (Target point of ability being cast)
        Set Angle[MUI] = (Angle from Caster_pos[MUI] to Target[MUI])
        Set Distance[MUI] = 1260.00
        Set Traveled[MUI] = 0.00
        Set Interval[MUI] = 0
        Unit - Create 1 Inferno Ball (Fire) for (Owner of Caster[MUI]) at Caster_pos[MUI] facing Angle[MUI] degrees
        Unit - Set the custom value of (Last created unit) to MUI
        Unit - Add a 1.25 second Generic expiration timer to (Last created unit)
        Unit - Turn collision for (Last created unit) Off
        Unit - Add I Fire Trail  to (Last created unit)
        Unit - Set level of I Fire Trail  for (Last created unit) to (Level of Infernal Blast  for Caster[MUI])
        Trigger - Add to I Damage <gen> the event (Unit - A unit comes within 100.00 of (Last created unit))
        Custom script:   call RemoveLocation(udg_Target[udg_MUI])
        Custom script:   call RemoveLocation(udg_Caster_pos[udg_MUI])
Code:
I Move
    Events
        Time - Every 0.03 seconds of game time
    Conditions
    Actions
        Set Group[3] = (Units of type Inferno Ball (Fire))
        Unit Group - Pick every unit in Group[3] and do (Actions)
            Loop - Actions
                Set Traveled[(Custom value of (Picked unit))] = (Traveled[(Custom value of (Picked unit))] + 30.00)
                Set Interval[(Custom value of (Picked unit))] = (Interval[(Custom value of (Picked unit))] + 3)
                Set Point[3] = (Position of (Picked unit))
                Set Point[4] = (Point[3] offset by 30.00 towards Angle[(Custom value of (Picked unit))] degrees)
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        Traveled[(Custom value of (Picked unit))] Less than or equal to Distance[(Custom value of (Picked unit))]
                    Then - Actions
                        Unit - Move (Picked unit) instantly to Point[4]
                        Destructible - Pick every destructible within 100.00 of Point[4] and do (Actions)
                            Loop - Actions
                                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    If - Conditions
                                        Or - Any (Conditions) are true
                                            Conditions
                                                (Destructible-type of (Picked destructible)) Equal to Ashenvale Tree Wall
                                                (Destructible-type of (Picked destructible)) Equal to Ashenvale Canopy Tree
                                                (Destructible-type of (Picked destructible)) Equal to Barrens Tree Wall
                                                (Destructible-type of (Picked destructible)) Equal to Barrens Canopy Tree
                                                (Destructible-type of (Picked destructible)) Equal to Black Citadel Tree Wall
                                                (Destructible-type of (Picked destructible)) Equal to Cityscape Fall Tree Wall
                                                (Destructible-type of (Picked destructible)) Equal to Cityscape Snowy Tree Wall
                                                (Destructible-type of (Picked destructible)) Equal to Cityscape Summer Tree Wall
                                                (Destructible-type of (Picked destructible)) Equal to Cityscape Winter Tree Wall
                                                (Destructible-type of (Picked destructible)) Equal to Cityscape Ruined Tree Wall
                                                (Destructible-type of (Picked destructible)) Equal to Dalaran Ruins Tree Wall
                                                (Destructible-type of (Picked destructible)) Equal to Dungeon Tree Wall
                                                (Destructible-type of (Picked destructible)) Equal to Felwood Tree Wall
                                                (Destructible-type of (Picked destructible)) Equal to Felwood Canopy Tree
                                                (Destructible-type of (Picked destructible)) Equal to Icecrown Tree Wall
                                                (Destructible-type of (Picked destructible)) Equal to Icecrown Canopy Tree
                                                (Destructible-type of (Picked destructible)) Equal to Northrend Canopy Tree
                                                (Destructible-type of (Picked destructible)) Equal to Fall Tree Wall
                                                (Destructible-type of (Picked destructible)) Equal to Summer Tree Wall
                                                (Destructible-type of (Picked destructible)) Equal to Snowy Tree Wall
                                                (Destructible-type of (Picked destructible)) Equal to Northrend Tree Wall
                                                (Destructible-type of (Picked destructible)) Equal to Outland Tree Wall
                                                (Destructible-type of (Picked destructible)) Equal to Ruins Tree Wall
                                                (Destructible-type of (Picked destructible)) Equal to Ruins Canopy Tree
                                                (Destructible-type of (Picked destructible)) Equal to Underground Tree Wall
                                                (Destructible-type of (Picked destructible)) Equal to Village Tree Wall
                                                (Destructible-type of (Picked destructible)) Equal to Fall Tree Wall
                                    Then - Actions
                                        Destructible - Kill (Picked destructible)
                                    Else - Actions
                    Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        Interval[(Custom value of (Picked unit))] Greater than or equal to 5
                        ((Picked unit) is dead) Not equal to True
                    Then - Actions
                        Unit - Create 1 Inferno Trail (Fire) for (Owner of (Picked unit)) at Point[3] facing Default building facing degrees
                        Unit - Add a 5.00 second Generic expiration timer to (Last created unit)
                        Unit - Turn collision for (Last created unit) Off
                        Unit - Add I Fire Trail  to (Last created unit)
                        Unit - Set level of I Fire Trail  for (Last created unit) to (Level of I Fire Trail  for (Picked unit))
                        Set Interval[(Custom value of (Picked unit))] = (Interval[(Custom value of (Picked unit))] - 5)
                        Set Group[4] = (Units within 100.00 of Point[3] matching (((Matching unit) is Sleeping) Equal to True))
                        Unit Group - Pick every unit in Group[4] and do (Unit - Wake up (Picked unit))
                        Custom script:   call DestroyGroup(udg_Group[4])
                    Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        Traveled[(Custom value of (Picked unit))] Equal to Distance[(Custom value of (Picked unit))]
                    Then - Actions
                        Unit - Create 1 Dummy Unit for (Owner of (Picked unit)) at Point[3] facing Default building facing degrees
                        Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
                        Unit - Turn collision for (Last created unit) Off
                        Unit - Add I Explosion  to (Last created unit)
                        Unit - Set level of I Explosion  for (Last created unit) to (Level of I Fire Trail  for (Picked unit))
                        Unit - Order (Last created unit) to Human Blood Mage - Flame Strike Point[3]
                        Special Effect - Create a special effect at Point[3] using Objects\Spawnmodels\Other\NeutralBuildingExplosion\NeutralBuildingExplosion.mdl
                        Special Effect - Destroy (Last created special effect)
                        Special Effect - Create a special effect at Point[3] using Objects\Spawnmodels\Human\HCancelDeath\HCancelDeath.mdl
                        Special Effect - Destroy (Last created special effect)
                    Else - Actions
                Custom script:   call RemoveLocation(udg_Point[3])
                Custom script:   call RemoveLocation(udg_Point[4])
        Custom script:   call DestroyGroup(udg_Group[3])
Code:
I Damage
    Events
    Conditions
        ((Triggering unit) is dead) Equal to False
        (Unit-type of (Triggering unit)) Not equal to Inferno Trail (Fire)
        (Unit-type of (Triggering unit)) Not equal to Inferno Ball (Fire)
        ((Triggering unit) belongs to an enemy of (Owner of Caster[MUI])) Equal to True
    Actions
        Unit - Cause Caster[MUI] to damage (Triggering unit), dealing (100.00 + ((Real((Level of Infernal Blast  for Caster[MUI]))) x 100.00)) damage of attack type Spells and damage type Fire
        Special Effect - Create a special effect attached to the chest of (Triggering unit) using Abilities\Spells\Other\Incinerate\FireLordDeathExplode.mdl
        Special Effect - Destroy (Last created special effect)


Screenie:
Inferno1.jpg
Inferno2.jpg

Soul Armor

Creates a shield to the targeted unit from the souls that the hero has collected. The shield will lose 1 soul to protect you from all damage.
The shield lasts for 180 seconds.
Cannot cast if you have 0 souls collected
Cannot collect summoned units souls
Does not stack

Level 1 - Maximum of 3 souls can be collected.
Level 2 - Maximum of 5 souls can be collected.
Level 3 - Maximum of 7 souls can be collected.

Trigger:
Code:
SA Learn
    Events
        Unit - A unit Learns a skill
    Conditions
        (Learned Hero Skill) Equal to Soul Armor 
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                MUI Less than 1000
            Then - Actions
                Set MUI = (MUI + 1)
            Else - Actions
                Set MUI = 1
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Level of Soul  for (Learning Hero)) Equal to 0
            Then - Actions
                Unit - Add Soul  to (Learning Hero)
                Unit - Set the custom value of (Learning Hero) to MUI
            Else - Actions
Code:
SA Kill
    Events
        Unit - A unit Dies
    Conditions
        (Level of Soul Armor  for (Killing unit)) Greater than 0
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                Soul[(Custom value of (Killing unit))] Less than (1 + ((Level of Soul Armor  for (Killing unit)) x 2))
                ((Triggering unit) is Summoned) Not equal to True
            Then - Actions
                Set Soul[(Custom value of (Killing unit))] = (Soul[(Custom value of (Killing unit))] + 1)
                Unit - Set level of Soul  for (Killing unit) to (Soul[(Custom value of (Killing unit))] + 1)
                Set Point[5] = (Position of (Killing unit))
                Floating Text - Create floating text that reads +1 at Point[5] with Z offset 0.00, using font size 12.00, color (100.00%, 0.00%, 100.00%), and 0.00% transparency
                Floating Text - Change (Last created floating text): Disable permanence
                Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                Floating Text - Change the fading age of (Last created floating text) to 1.00 seconds
                Floating Text - Set the velocity of (Last created floating text) to 50.00 towards 90.00 degrees
                Custom script:   call RemoveLocation(udg_Point[5])
            Else - Actions
Code:
SA Check
    Events
        Unit - A unit Begins casting an ability
    Conditions
        (Ability being cast) Equal to Soul Armor 
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                Soul[(Custom value of (Triggering unit))] Equal to 0
            Then - Actions
                Unit - Order (Triggering unit) to Stop
                Quest - Display to (Player group((Owner of (Triggering unit)))) the Warning message: |c00ff0000Unable to...
            Else - Actions
Code:
SA Cast
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Soul Armor 
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                MUI Less than 1000
            Then - Actions
                Set MUI = (MUI + 1)
            Else - Actions
                Set MUI = 1
        Set Caster[MUI] = (Triggering unit)
        Set TargetUnit[MUI] = (Target unit of ability being cast)
        Unit - Set the custom value of TargetUnit[MUI] to MUI
        Unit - Remove Soul Armor Detection  from TargetUnit[MUI]
        Unit - Add Soul Armor Detection  to TargetUnit[MUI]
        Unit - Set level of Soul Armor Detection  for TargetUnit[MUI] to (Level of Soul Armor  for Caster[MUI])
        Set Soul[MUI] = ((Level of Soul  for Caster[MUI]) - 1)
        Set Soul_Armor[MUI] = Soul[MUI]
        Set Soul[MUI] = 0
        Unit - Set level of Soul  for Caster[MUI] to (Soul[MUI] + 1)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (TargetUnit[MUI] is in SAGroup) Not equal to True
            Then - Actions
                Trigger - Add to SA Damage <gen> the event (Unit - TargetUnit[MUI] Takes damage)
                Unit Group - Add TargetUnit[MUI] to SAGroup
            Else - Actions
Code:
SA Damage
    Events
    Conditions
        ((Triggering unit) has buff Soul Armor ) Equal to True
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                Soul_Armor[(Custom value of (Triggering unit))] Less than or equal to (1 + ((Level of Soul Armor Detection  for (Triggering unit)) x 2))
                Soul_Armor[(Custom value of (Triggering unit))] Not equal to 0
            Then - Actions
                Set Point[6] = (Position of (Triggering unit))
                Special Effect - Create a special effect at Point[6] using Objects\Spawnmodels\Undead\UndeadDissipate\UndeadDissipate.mdl
                Special Effect - Destroy (Last created special effect)
                Custom script:   call RemoveLocation(udg_Point[6])
                Set Soul_Armor[(Custom value of (Triggering unit))] = (Soul_Armor[(Custom value of (Triggering unit))] - 1)
            Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                Soul_Armor[(Custom value of (Triggering unit))] Equal to 0
            Then - Actions
                Unit - Remove Soul Armor Detection  from (Triggering unit)
                Unit - Remove Soul Armor  buff from (Triggering unit)
            Else - Actions

Screenie:
SA1.jpg
SA2.jpg


Hoarfrost

The cold embrace of the grave seeks out those foolish enough to invade Mateus inner sanctum. This icy wedge drives itself into its targets, pushing them back 100 range while slowing their movement speed and attack speed as they rapidly freeze to death.
A unit can be hit more than once.
Slow stacks and lasts for 4 seconds.

Level 1 - 850 distance, 5% movement slow, 3% attack speed
slow and 50 damage per hit.
Level 2 - 1000 distance, 7% movement slow, 5% attack speed
slow and 60 damage per hit.
Level 3 - 1150 distance, 10% movement slow, 7% attack
speed slow and 70 damage per hit.

Trigger:
Code:
H Cast
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Hoarfrost 
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                HMUI Less than 1000
            Then - Actions
                Set HMUI = (HMUI + 1)
            Else - Actions
                Set HMUI = 1
        Set Caster[HMUI] = (Triggering unit)
        Set Caster_pos[HMUI] = (Position of Caster[HMUI])
        Set Target[HMUI] = (Target point of ability being cast)
        Set Angle[HMUI] = (Angle from Caster_pos[HMUI] to Target[HMUI])
        Set Traveled[HMUI] = 0.00
        Set HLevel = (Level of Hoarfrost  for Caster[HMUI])
        Set HDamage = (40.00 + ((Real(HLevel)) x 10.00))
        Set MPI = (Player number of (Owner of Caster[HMUI]))
        Set HOwner[MPI] = (Owner of Caster[HMUI])
        Set Distance[HMUI] = (700.00 + ((Real(HLevel)) x 150.00))
        Unit - Create 1 Hoarfrost Ball (Ice) for HOwner[MPI] at Caster_pos[HMUI] facing Angle[HMUI] degrees
        Unit - Set the custom value of (Last created unit) to HMUI
        Unit - Add a (Distance[HMUI] / 400.00) second Generic expiration timer to (Last created unit)
        Unit - Turn collision for (Last created unit) Off
        Trigger - Add to H Push <gen> the event (Unit - A unit comes within 55.00 of (Last created unit))

        Custom script:   call RemoveLocation(udg_Target[udg_HMUI])
        Custom script:   call RemoveLocation(udg_Caster_pos[udg_HMUI])
        For each (Integer A) from 1 to 6, do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        HMUI Less than 1000
                    Then - Actions
                        Set HMUI = (HMUI + 1)
                    Else - Actions
                        Set HMUI = 1
                Set Caster[HMUI] = (Triggering unit)
                Set Caster_pos[HMUI] = (Position of Caster[HMUI])
                Set Target[HMUI] = (Target point of ability being cast)
                Set Angle[HMUI] = (Angle from Caster_pos[HMUI] to Target[HMUI])
                Set Distance[HMUI] = (700.00 + ((Real(HLevel)) x 150.00))
                Set Traveled[HMUI] = 0.00
                Set Point[7] = (Caster_pos[HMUI] offset by (60.00 x (Real((Integer A)))) towards (Angle[HMUI] + 135.00) degrees)
                Unit - Create 1 Hoarfrost Ball (Ice) for HOwner[MPI] at Point[7] facing Angle[HMUI] degrees
                Unit - Set the custom value of (Last created unit) to HMUI
                Unit - Add a (Distance[HMUI] / 400.00) second Generic expiration timer to (Last created unit)
                Unit - Turn collision for (Last created unit) Off
                Trigger - Add to H Push <gen> the event (Unit - A unit comes within 55.00 of (Last created unit))
                Custom script:   call RemoveLocation(udg_Point[7])
                Custom script:   call RemoveLocation(udg_Target[udg_HMUI])
                Custom script:   call RemoveLocation(udg_Caster_pos[udg_HMUI])
        For each (Integer A) from 1 to 6, do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        HMUI Less than 1000
                    Then - Actions
                        Set HMUI = (HMUI + 1)
                    Else - Actions
                        Set HMUI = 1
                Set Caster[HMUI] = (Triggering unit)
                Set Caster_pos[HMUI] = (Position of Caster[HMUI])
                Set Target[HMUI] = (Target point of ability being cast)
                Set Angle[HMUI] = (Angle from Caster_pos[HMUI] to Target[HMUI])
                Set Distance[HMUI] = (700.00 + ((Real(HLevel)) x 150.00))
                Set Traveled[HMUI] = 0.00
                Set Point[7] = (Caster_pos[HMUI] offset by (60.00 x (Real((Integer A)))) towards (Angle[HMUI] - 135.00) degrees)
                Unit - Create 1 Hoarfrost Ball (Ice) for HOwner[MPI] at Point[7] facing Angle[HMUI] degrees
                Unit - Set the custom value of (Last created unit) to HMUI
                Unit - Add a (Distance[HMUI] / 400.00) second Generic expiration timer to (Last created unit)
                Unit - Turn collision for (Last created unit) Off
                Trigger - Add to H Push <gen> the event (Unit - A unit comes within 55.00 of (Last created unit))
                Custom script:   call RemoveLocation(udg_Point[7])
                Custom script:   call RemoveLocation(udg_Target[udg_HMUI])
                Custom script:   call RemoveLocation(udg_Caster_pos[udg_HMUI])
Code:
H Move
    Events
        Time - Every 0.03 seconds of game time
    Conditions
    Actions
        Set Group[4] = (Units of type Hoarfrost Ball (Ice))
        Unit Group - Pick every unit in Group[4] and do (Actions)
            Loop - Actions
                Set Traveled[(Custom value of (Picked unit))] = (Traveled[(Custom value of (Picked unit))] + 12.00)
                Set Point[8] = (Position of (Picked unit))
                Set Point[9] = (Point[8] offset by 12.00 towards Angle[(Custom value of (Picked unit))] degrees)
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        Traveled[(Custom value of (Picked unit))] Less than or equal to Distance[(Custom value of (Picked unit))]
                        ((Picked unit) is dead) Not equal to True
                    Then - Actions
                        Unit - Move (Picked unit) instantly to Point[9]
                    Else - Actions
                Custom script:   call RemoveLocation(udg_Point[8])
                Custom script:   call RemoveLocation(udg_Point[9])
        Custom script:   call DestroyGroup(udg_Group[4])
Code:
H Push
    Events
    Conditions
        ((Triggering unit) is dead) Equal to False
        ((Triggering unit) is An Ancient) Not equal to True
        ((Triggering unit) belongs to an enemy of HOwner[MPI]) Equal to True
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                MUI Less than 1000
            Then - Actions
                Set MUI = (MUI + 1)
            Else - Actions
                Set MUI = 1
        Set Pushed_pos[MUI] = (Position of (Triggering unit))
        Set Push_Travel[MUI] = 0.00
        Set Push_Distance[MUI] = 100.00
        Set Push_Angle[MUI] = Angle[HMUI]
        Unit - Create 1 Dummy Unit for HOwner[MPI] at Pushed_pos[MUI] facing Default building facing degrees
        Unit - Cause (Last created unit) to damage (Triggering unit), dealing HDamage damage of attack type Spells and damage type Normal
        Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
        Unit - Add Hoarfrost Slow  to (Last created unit)
        Unit - Set level of Hoarfrost Slow  for (Last created unit) to HLevel
        Unit - Order (Last created unit) to Attack Once (Triggering unit)
        Special Effect - Create a special effect at Pushed_pos[MUI] using Abilities\Spells\Undead\FrostNova\FrostNovaTarget.mdl
        Special Effect - Destroy (Last created special effect)
        Unit - Set the custom value of (Triggering unit) to MUI
        Unit - Turn collision for (Triggering unit) Off
        Unit Group - Add (Triggering unit) to Push_Group
        Custom script:   call RemoveLocation(udg_Pushed_pos[udg_MUI])
Code:
H Push Effect
    Events
        Time - Every 0.03 seconds of game time
    Conditions
    Actions
        Unit Group - Pick every unit in Push_Group and do (Actions)
            Loop - Actions
                Set Push_Travel[(Custom value of (Picked unit))] = (Push_Travel[(Custom value of (Picked unit))] + 18.00)
                Set Point[10] = (Position of (Picked unit))
                Set Point[11] = (Point[10] offset by 18.00 towards Push_Angle[(Custom value of (Picked unit))] degrees)
                Special Effect - Create a special effect at Point[9] using Abilities\Spells\Human\FlakCannons\FlakTarget.mdl
                Special Effect - Destroy (Last created special effect)
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        Push_Travel[(Custom value of (Picked unit))] Less than or equal to Push_Distance[(Custom value of (Picked unit))]
                        ((Picked unit) is dead) Not equal to True
                    Then - Actions
                        Unit - Move (Picked unit) instantly to Point[11]
                    Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        Push_Travel[(Custom value of (Picked unit))] Greater than or equal to Push_Distance[(Custom value of (Picked unit))]
                    Then - Actions
                        Unit - Turn collision for (Picked unit) On
                        Unit Group - Remove (Picked unit) from Push_Group
                    Else - Actions
                Custom script:   call RemoveLocation(udg_Point[10])
                Custom script:   call RemoveLocation(udg_Point[11])

Screenie:
Hoarfrost1.jpg
Hoarfrost2.jpg

Credits:
Tinki3: for his Spell Test Map Template
Flare: for his GUI MUI System

All you need, how to import and how to implement, is inside the map
 

Attachments

  • Shinjhitszho the Elementalist.w3x
    71.8 KB · Views: 234

vypur85

Hibernate
Reaction score
803
Cool looking spells :). Though some of the spells are quite common (especially the Rock Shield, its been done before I think... emljr3's Mini Element Arena). Yet, another, GUI-MUI system (Hello Flare).... :p

Didn't look through all the triggers but I realised this:
Code:
SA Damage
    Events
    Conditions
        ((Triggering unit) has buff Soul Armor ) Equal to True
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                Soul_Armor[(Custom value of (Triggering unit))] Less than or equal to (1 + ((Level of Soul Armor Detection  for (Triggering unit)) x 2))
                Soul_Armor[(Custom value of (Triggering unit))] Not equal to 0
            Then - Actions
                Set Point[6] = (Position of (Triggering unit))
                Special Effect - Create a special effect at Point[6] using Objects\Spawnmodels\Undead\UndeadDissipate\UndeadDissipate.mdl
                Custom script:   call RemoveLocation(udg_Point[6])
                Set Soul_Armor[(Custom value of (Triggering unit))] = (Soul_Armor[(Custom value of (Triggering unit))] - 1)
            Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                Soul_Armor[(Custom value of (Triggering unit))] Equal to 0
            Then - Actions
                Unit - Remove Soul Armor Detection  from (Triggering unit)
                Unit - Remove Soul Armor  buff from (Triggering unit)
            Else - Actions
Hmm... Leaks a SFX...

Shinjhitszho
What the... how did you get this name o_O???
 

Ghostwind

o________o
Reaction score
172
Shizidfdsfnafsohuderzxkfhsdfaasd98ur23452ihjsfjso the Elementalist? :nuts:

I like the spells, anyhoo. :thup:
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top