Spellpack Frozen Boulder, Ice Path, Ice Trap, Ice Spiral, ICY SPELLPACK

THE_X

New Member
Reaction score
49
Ice Spellpack​
Made By: THE_X​

MPI/MUI? - MUI (NOW!)
Jass/GUI? - GUI
Leakless? - think so
Lagless? - If you constantly spam, then yes

Frozen Boulder​
Code:
Create Frozen Boulder
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Frozen Boulder 
    Actions
        Set Group = (Units owned by (Owner of (Triggering unit)) of type Frozen Boulder Dummy  [3])
        Unit Group - Pick every unit in Group and do (Actions)
            Loop - Actions
                Unit - Kill (Picked unit)
                Unit - Remove (Picked unit) from the game
        Custom script:   call DestroyGroup (udg_Group)
        Set Group = (Units owned by (Owner of (Triggering unit)) of type Frozen Boulder Dummy 1)
        Unit Group - Pick every unit in Group and do (Actions)
            Loop - Actions
                Unit - Kill (Picked unit)
                Unit - Remove (Picked unit) from the game
        Custom script:   call DestroyGroup (udg_Group)
        Set Group = (Units owned by (Owner of (Triggering unit)) of type Frozen Boulder Dummy 2)
        Unit Group - Pick every unit in Group and do (Actions)
            Loop - Actions
                Unit - Kill (Picked unit)
                Unit - Remove (Picked unit) from the game
        Custom script:   call DestroyGroup (udg_Group)
        Set Point = (Target point of ability being cast)
        Unit - Create 1 Frozen Boulder Dummy 1 for (Owner of (Triggering unit)) at Point facing Default building facing degrees
        Unit - Add a 16.00 second Generic expiration timer to (Last created unit)
        Animation - Change (Last created unit) flying height to 0.00 at 500.00
        Special Effect - Create a special effect at Point using Abilities\Spells\Undead\FrostNova\FrostNovaTarget.mdl
        Special Effect - Destroy (Last created special effect)
        Unit - Create 1 Frozen Boulder Dummy  [3] for (Owner of (Triggering unit)) at Point facing Default building facing degrees
        Set Frozen_Boulder_Units_1[(Player number of (Owner of (Triggering unit)))] = (Last created unit)
        Set Point = ((Target point of ability being cast) offset by 400.00 towards 0.00 degrees)
        Set Frozen_Boulder_Angle[(Player number of (Owner of (Triggering unit)))] = 0.00
        Unit - Create 1 Frozen Boulder Dummy 2 for (Owner of (Triggering unit)) at Point facing (Frozen_Boulder_Angle[(Player number of (Owner of (Triggering unit)))] + 150.00) degrees
        Unit Group - Add (Last created unit) to FB_Units
        Trigger - Add to Frozen Boulder Activate <gen> the event (Unit - A unit comes within 115.00 of (Last created unit))
        Set Frozen_Boulder_Units_2[(Player number of (Owner of (Triggering unit)))] = (Last created unit)
        Lightning - Create a Drain Mana lightning effect from source (Position of Frozen_Boulder_Units_1[(Player number of (Owner of (Triggering unit)))]) to target (Position of Frozen_Boulder_Units_2[(Player number of (Owner of (Triggering unit)))])
        Set Frozen_Boulder_Rope[(Player number of (Owner of (Triggering unit)))] = (Last created lightning effect)

Code:
Move Frozen Boulder
    Events
        Time - Every 0.03 seconds of game time
    Conditions
    Actions
        Set Frozen_Boulder_Group = (Units of type Frozen Boulder Dummy 2)
        Unit Group - Pick every unit in Frozen_Boulder_Group and do (Actions)
            Loop - Actions
                Set Frozen_Boulder_Angle[(Player number of (Owner of (Picked unit)))] = (Frozen_Boulder_Angle[(Player number of (Owner of (Picked unit)))] + 6.00)
                Set Point = ((Position of Frozen_Boulder_Units_1[(Player number of (Owner of (Picked unit)))]) offset by 400.00 towards Frozen_Boulder_Angle[(Player number of (Owner of (Picked unit)))] degrees)
                Unit - Move (Picked unit) instantly to Point, facing ((Facing of (Picked unit)) + 6.00) degrees
                Lightning - Move Frozen_Boulder_Rope[(Player number of (Owner of (Picked unit)))] to source (Position of (Picked unit)) and target (Position of Frozen_Boulder_Units_1[(Player number of (Owner of (Picked unit)))])
                Custom script:   call RemoveLocation (udg_Point)
        Custom script:   call DestroyGroup (udg_Frozen_Boulder_Group)

Code:
Frozen Boulder Activate
    Events
    Conditions
        And - All (Conditions) are true
            Conditions
                ((Triggering unit) is A structure) Equal to False
                ((Triggering unit) is A ground unit) Equal to True
                ((Triggering unit) is Magic Immune) Equal to False
    Actions
        Unit Group - Pick every unit in FB_Units and do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        And - All (Conditions) are true
                            Conditions
                                (Distance between (Position of (Triggering unit)) and (Position of (Picked unit))) Less than or equal to 115.00
                                ((Triggering unit) belongs to an enemy of (Owner of (Picked unit))) Equal to True
                    Then - Actions
                        Set Point = (Position of (Triggering unit))
                        Unit - Move (Triggering unit) instantly to Point, facing (Angle from (Position of (Triggering unit)) to (Position of Frozen_Boulder_Units_2[1])) degrees
                        Unit - Create 1 Dummy for (Owner of (Picked unit)) at Point facing Default building facing degrees
                        Unit - Add Frozen Boulder Bolt  to (Last created unit)
                        Unit - Set level of Frozen Boulder Bolt  for (Last created unit) to (Level of Frozen Boulder  for (Random unit from (Units owned by (Owner of (Picked unit)) of type Icelord)))
                        Unit - Order (Last created unit) to Human Mountain King - Storm Bolt (Triggering unit)
                        Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                        Unit - Create 1 Dummy for (Owner of (Picked unit)) at Point facing Default building facing degrees
                        Unit - Set level of Frozen Boulder Nova  for (Last created unit) to (Level of Frozen Boulder  for (Random unit from (Units owned by (Owner of (Picked unit)) of type Icelord)))
                        Unit - Add Frozen Boulder Nova  to (Last created unit)
                        Unit - Order (Last created unit) to Undead Lich - Frost Nova (Triggering unit)
                        Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                        Custom script:   call RemoveLocation (udg_Point)
                    Else - Actions


Code:
Frozen Boulder Knockback
    Events
        Time - Every 0.02 seconds of game time
    Conditions
    Actions
        Set Frozen_Boulder_Stunned = (Units in (Playable map area) matching (((Matching unit) has buff Frozen Boulder (Pause)) Equal to True))
        Unit Group - Pick every unit in Frozen_Boulder_Stunned and do (Actions)
            Loop - Actions
                Set Point = ((Position of (Picked unit)) offset by 6.00 towards ((Facing of (Picked unit)) + 180.00) degrees)
                Unit - Move (Picked unit) instantly to Point
                Special Effect - Create a special effect at Point using Abilities\Spells\Human\FlakCannons\FlakTarget.mdl
                Custom script:   call RemoveLocation (udg_Point)
        Custom script:   call DestroyGroup (udg_Frozen_Boulder_Stunned)
Code:
Remove Boulders
    Events
        Unit - A unit Dies
    Conditions
        (Unit-type of (Triggering unit)) Equal to Frozen Boulder Dummy 1
    Actions
        Lightning - Destroy Frozen_Boulder_Rope[(Player number of (Owner of (Triggering unit)))]
        Unit - Remove (Triggering unit) from the game
        Set Group = (Units of type Frozen Boulder Dummy 2)
        Unit Group - Pick every unit in Group and do (Actions)
            Loop - Actions
                Unit - Remove (Picked unit) from the game
                Special Effect - Create a special effect at (Position of (Picked unit)) using Objects\Spawnmodels\Naga\NagaDeath\NagaDeath.mdl
                Special Effect - Destroy (Last created special effect)
                Special Effect - Create a special effect at (Position of (Picked unit)) using Objects\Spawnmodels\NightElf\NECancelDeath\NECancelDeath.mdl
                Special Effect - Destroy (Last created special effect)
        Custom script:   call DestroyGroup (udg_Group)
        Set Group = (Units of type Frozen Boulder Dummy  [3])
        Unit Group - Pick every unit in Group and do (Actions)
            Loop - Actions
                Unit - Remove (Picked unit) from the game
                Special Effect - Create a special effect at (Position of (Picked unit)) using Objects\Spawnmodels\Naga\NagaDeath\NagaDeath.mdl
                Special Effect - Destroy (Last created special effect)
                Special Effect - Create a special effect at (Position of (Picked unit)) using Objects\Spawnmodels\NightElf\NECancelDeath\NECancelDeath.mdl
                Special Effect - Destroy (Last created special effect)
        Custom script:   call DestroyGroup (udg_Group)




Creates a frozen pillar conneting a magical frozen boulder that revolves around it knocking back enemys in the way and causing a frost nova to them

FrozenBoulderIcon.jpg


FrozenBoulder-1.jpg


Ice Path​

Code:
Create Ice Path
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Ice Path 
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Level of Ice Path  for (Triggering unit)) Equal to 1
            Then - Actions
                Environment - Change terrain type at (Target point of ability being cast) to Icecrown Glacier - Ice using variation -1 in an area of size 4 and shape Circle
            Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Level of Ice Path  for (Triggering unit)) Equal to 2
                    Then - Actions
                        Environment - Change terrain type at (Target point of ability being cast) to Icecrown Glacier - Ice using variation -1 in an area of size 6 and shape Circle
                    Else - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            If - Conditions
                                (Level of Ice Path  for (Triggering unit)) Equal to 3
                            Then - Actions
                                Environment - Change terrain type at (Target point of ability being cast) to Icecrown Glacier - Ice using variation -1 in an area of size 8 and shape Circle
                            Else - Actions
                                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    If - Conditions
                                        (Level of Ice Path  for (Triggering unit)) Equal to 4
                                    Then - Actions
                                        Environment - Change terrain type at (Target point of ability being cast) to Icecrown Glacier - Ice using variation -1 in an area of size 10 and shape Circle
                                    Else - Actions
        Set Point = (Target point of ability being cast)
        Unit - Create 1 Ice Path Dummy for (Owner of (Triggering unit)) at Point facing Default building facing degrees
        Unit - Add a (5.00 + (2.00 x (Real((Level of Ice Path  for (Triggering unit)))))) second Generic expiration timer to (Last created unit)
        Unit - Set level of DoT ice Path  for (Last created unit) to (Level of Ice Path  for (Triggering unit))
        Unit - Set the custom value of (Last created unit) to (Level of Ice Path  for (Triggering unit))
        Custom script:   call RemoveLocation (udg_Point)

Code:
Ice Path Slide
    Events
        Time - Every 0.03 seconds of game time
    Conditions
    Actions
        Set Ice_Path_Units_1 = (Units of type Ice Path Dummy)
        Unit Group - Pick every unit in Ice_Path_Units_1 and do (Actions)
            Loop - Actions
                Set Ice_Path_Units_2 = (Units within (300.00 + (200.00 x (Real((Custom value of (Picked unit)))))) of (Position of (Picked unit)) matching ((((Matching unit) is A structure) Equal to False) and (((Matching unit) is A ground unit) Equal to True)))
                Unit Group - Pick every unit in Ice_Path_Units_2 and do (Actions)
                    Loop - Actions
                        Set Point = ((Position of (Picked unit)) offset by 15.00 towards (Facing of (Picked unit)) degrees)
                        Unit - Move (Picked unit) instantly to Point
                        Custom script:   call RemoveLocation (udg_Point)
        Custom script:   call DestroyGroup (udg_Ice_Path_Units_1)
        Custom script:   call DestroyGroup (udg_Ice_Path_Units_2)
Code:
Ice Path Change Back
    Events
        Unit - A unit Dies
    Conditions
        (Unit-type of (Triggering unit)) Equal to Ice Path Dummy
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Custom value of (Triggering unit)) Equal to 1
            Then - Actions
                Environment - Change terrain type at (Position of (Triggering unit)) to Icecrown Glacier - Snow using variation -1 in an area of size 4 and shape Circle
            Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Custom value of (Triggering unit)) Equal to 2
                    Then - Actions
                        Environment - Change terrain type at (Position of (Triggering unit)) to Icecrown Glacier - Snow using variation -1 in an area of size 6 and shape Circle
                    Else - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            If - Conditions
                                (Custom value of (Triggering unit)) Equal to 3
                            Then - Actions
                                Environment - Change terrain type at (Position of (Triggering unit)) to Icecrown Glacier - Snow using variation -1 in an area of size 8 and shape Circle
                            Else - Actions
                                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    If - Conditions
                                        (Custom value of (Triggering unit)) Equal to 4
                                    Then - Actions
                                        Environment - Change terrain type at (Position of (Triggering unit)) to Icecrown Glacier - Snow using variation -1 in an area of size 10 and shape Circle
                                    Else - Actions
        Unit - Remove (Triggering unit) from the game




Freezes the ground at a targeted location causing units to slide across and dealing damage to enemys on the ice for each second on it

IcePathIcon.jpg

IcePath.jpg


Ice Trap​

Code:
Start Ice Trap
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Ice Trap 
    Actions
        Set Group = (Units owned by (Owner of (Triggering unit)) of type Ice Trap Dummy [3])
        Unit Group - Pick every unit in Group and do (Actions)
            Loop - Actions
                Unit - Kill (Picked unit)
                Unit - Remove (Picked unit) from the game
        Custom script:   call DestroyGroup (udg_Group)
        Set Group = (Units owned by (Owner of (Triggering unit)) of type Ice Trap Dummy 2)
        Unit Group - Pick every unit in Group and do (Actions)
            Loop - Actions
                Unit - Kill (Picked unit)
                Unit - Remove (Picked unit) from the game
        Custom script:   call DestroyGroup (udg_Group)
        Set Group = (Units owned by (Owner of (Triggering unit)) of type Ice Trap Dummy 1)
        Unit Group - Pick every unit in Group and do (Actions)
            Loop - Actions
                Unit - Kill (Picked unit)
                Unit - Remove (Picked unit) from the game
        Custom script:   call DestroyGroup (udg_Group)
        Custom script:   call RemoveLocation (udg_Ice_Trap_Point[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))])
        Set Ice_Trap_Point[(Player number of (Owner of (Triggering unit)))] = (Target point of ability being cast)
        Unit - Create 1 Ice Trap Dummy [3] for (Owner of (Triggering unit)) at Ice_Trap_Point[(Player number of (Owner of (Triggering unit)))] facing Default building facing degrees
        Unit - Add a (6.00 + (4.00 x (Real((Level of Ice Trap  for (Triggering unit)))))) second Generic expiration timer to (Last created unit)
        Unit - Create 1 Dummy for (Owner of (Triggering unit)) at Ice_Trap_Point[(Player number of (Owner of (Triggering unit)))] facing Default building facing degrees
        Unit - Add Ice Trap Mana  to (Last created unit)
        Unit - Set level of Ice Trap Mana  for (Last created unit) to (Level of Ice Trap  for (Triggering unit))
        Unit - Add a (6.00 + (4.00 x (Real((Level of Ice Trap  for (Triggering unit)))))) second Generic expiration timer to (Last created unit)
        Set Ice_Trap_Angle[(Player number of (Owner of (Triggering unit)))] = 0.00
        Set Ice_Trap_Integer[(Player number of (Owner of (Triggering unit)))] = 600
        Wait 0.50 seconds
        Unit - Order (Triggering unit) to Stop

Code:
Create Ice Traps
    Events
        Time - Every 0.04 seconds of game time
    Conditions
    Actions
        Player Group - Pick every player in (All players) and do (Actions)
            Loop - Actions
                Set Ice_Trap_Group[(Player number of (Picked player))] = (Units of type Ice Trap Dummy [3])
                Unit Group - Pick every unit in Ice_Trap_Group[(Player number of (Picked player))] and do (Actions)
                    Loop - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            If - Conditions
                                (Custom value of (Picked unit)) Less than 50
                            Then - Actions
                                Set Point = (Ice_Trap_Point[(Player number of (Owner of (Picked unit)))] offset by 600.00 towards Ice_Trap_Angle[(Player number of (Owner of (Picked unit)))] degrees)
                                Unit - Create 1 Ice Trap Dummy 1 for (Owner of (Picked unit)) at Point facing Ice_Trap_Point[(Player number of (Owner of (Picked unit)))]
                                Animation - Change (Last created unit) flying height to 0.00 at 1500.00
                                Unit - Add a 0.90 second Generic expiration timer to (Last created unit)
                                Custom script:   call RemoveLocation (udg_Point)
                                Set Ice_Trap_Angle[(Player number of (Owner of (Picked unit)))] = (Ice_Trap_Angle[(Player number of (Owner of (Picked unit)))] + 7.20)
                                Unit - Set the custom value of (Picked unit) to ((Custom value of (Picked unit)) + 1)
                            Else - Actions
                                Set Group = (Units owned by (Owner of (Picked unit)) of type Ice Trap Dummy 2)
                                Unit Group - Pick every unit in Group and do (Actions)
                                    Loop - Actions
                                        Unit Group - Add (Picked unit) to Ice_Trap_Group_2[(Player number of (Owner of (Picked unit)))]
                Custom script:   call DestroyGroup (udg_Ice_Trap_Group[GetConvertedPlayerId(GetEnumPlayer())])
                Custom script:   call DestroyGroup (udg_Group)

Code:
Ice Trap Glaciers
    Events
        Unit - A unit Dies
    Conditions
        (Unit-type of (Triggering unit)) Equal to Ice Trap Dummy 1
    Actions
        Set Point = (Position of (Triggering unit))
        Unit - Create 1 Ice Trap Dummy 2 for (Owner of (Triggering unit)) at Point facing (Facing of (Triggering unit)) degrees
        Environment - Set terrain pathing at Point of type Walkability to Off
        Custom script:   call RemoveLocation (udg_Point)
Code:
Ice Trap Death
    Events
        Unit - A unit Dies
    Conditions
        (Unit-type of (Triggering unit)) Equal to Ice Trap Dummy [3]
    Actions
        Set Group = (Units owned by (Owner of (Triggering unit)) of type Ice Trap Dummy 2)
        Unit Group - Pick every unit in Group and do (Actions)
            Loop - Actions
                Environment - Set terrain pathing at (Position of (Picked unit)) of type Walkability to On
                Unit - Remove (Picked unit) from the game
                Special Effect - Create a special effect at (Position of (Picked unit)) using Objects\Spawnmodels\Naga\NagaDeath\NagaDeath.mdl
                Special Effect - Destroy (Last created special effect)
                Special Effect - Create a special effect at (Position of (Picked unit)) using Objects\Spawnmodels\NightElf\NECancelDeath\NECancelDeath.mdl
                Special Effect - Destroy (Last created special effect)
        Custom script:   call DestroyGroup (udg_Group)




EDIT: Did NOT relize there was another spell called Ice Trap, i took a look at mine is diffrent past extent of trapping units
Traps units within a circle of crystals making them unable to escape and units from entering, enemy units loose .5% of there mana each second within

IceTrapIcon-1.jpg

IceTrap.jpg


Ice Spiral​

Code:
Ice Spiral Start
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Ice Spiral 
    Actions
        Set Group = (Units owned by (Owner of (Triggering unit)) of type Ice Spiral Dummy)
        Unit Group - Pick every unit in Group and do (Actions)
            Loop - Actions
                Unit - Kill (Picked unit)
                Unit - Remove (Picked unit) from the game
        Custom script:   call DestroyGroup (udg_Group)
        Set Group = (Units owned by (Owner of (Triggering unit)) of type Ice Spiral Dummy [2])
        Unit Group - Pick every unit in Group and do (Actions)
            Loop - Actions
                Unit - Kill (Picked unit)
                Unit - Remove (Picked unit) from the game
        Custom script:   call DestroyGroup (udg_Group)
        Set Ice_Spiral_Caster[(Player number of (Owner of (Triggering unit)))] = (Triggering unit)
        Unit Group - Remove all units from Ice_Spiral_Freeze[(Player number of (Owner of (Triggering unit)))]
        Set Point = ((Position of (Triggering unit)) offset by 5.00 towards 270.00 degrees)
        Unit Group - Add (Triggering unit) to Ice_Spirals_Casters
        Unit - Create 1 Ice Spiral Dummy for (Owner of (Triggering unit)) at Point facing 160.00 degrees
        Unit Group - Add (Last created unit) to IS_Units
        Trigger - Add to Freeze Ice Spiral <gen> the event (Unit - A unit comes within 150.00 of (Last created unit))
        Set Ice_Spiral_Unit[(Player number of (Owner of (Picked unit)))] = (Last created unit)
        Unit - Create 1 Ice Spiral Dummy [2] for (Owner of (Triggering unit)) at Point facing 160.00 degrees
        Set Ice_Spiral_Dummy2[(Player number of (Owner of (Triggering unit)))] = (Last created unit)
        Set Ice_Spiral_Angle[(Player number of (Owner of (Triggering unit)))] = 230.00
        Set Ice_Spiral_Offset[(Player number of (Owner of (Triggering unit)))] = 5.00
        Custom script:   call RemoveLocation (udg_Point)
Code:
Ice Spiral
    Events
        Time - Every 0.05 seconds of game time
    Conditions
    Actions
        Unit Group - Pick every unit in Ice_Spirals_Casters and do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Current order of (Picked unit)) Equal to (Order(channel))
                    Then - Actions
                        Set Ice_Spiral_Offset[(Player number of (Owner of (Picked unit)))] = (Ice_Spiral_Offset[(Player number of (Owner of (Picked unit)))] + 2.00)
                        Set Point = ((Position of (Picked unit)) offset by Ice_Spiral_Offset[(Player number of (Owner of (Picked unit)))] towards Ice_Spiral_Angle[(Player number of (Owner of (Picked unit)))] degrees)
                        Unit - Create 1 Ice Spiral Dummy for (Owner of (Picked unit)) at Point facing ((Facing of Ice_Spiral_Unit[(Player number of (Owner of (Picked unit)))]) - 110.00) degrees
                        Unit Group - Add (Last created unit) to IS_Units
                        Trigger - Add to Freeze Ice Spiral <gen> the event (Unit - A unit comes within 150.00 of (Last created unit))
                        Set Ice_Spiral_Angle[(Player number of (Owner of (Triggering unit)))] = (Ice_Spiral_Angle[(Player number of (Owner of (Picked unit)))] - 10.00)
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            If - Conditions
                                Ice_Spiral_Offset[(Player number of (Owner of (Picked unit)))] Greater than or equal to 500.00
                            Then - Actions
                                Unit - Order (Picked unit) to Stop
                                Unit - Kill Ice_Spiral_Dummy2[(Player number of (Owner of (Picked unit)))]
                                Unit Group - Remove (Picked unit) from Ice_Spirals_Casters
                            Else - Actions
                    Else - Actions
                        Unit - Kill Ice_Spiral_Dummy2[(Player number of (Owner of (Picked unit)))]
                        Unit Group - Remove (Picked unit) from Ice_Spirals_Casters

Code:
Freeze Ice Spiral
    Events
    Conditions
        And - All (Conditions) are true
            Conditions
                ((Triggering unit) is in Ice_Spiral_Freeze[1]) Equal to False
                ((Triggering unit) is A structure) Equal to False
                ((Triggering unit) is Magic Immune) Equal to False
    Actions
        Unit Group - Pick every unit in IS_Units and do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        And - All (Conditions) are true
                            Conditions
                                (Distance between (Position of (Picked unit)) and (Position of (Triggering unit))) Less than or equal to 150.00
                                ((Triggering unit) belongs to an enemy of (Owner of (Picked unit))) Equal to True
                    Then - Actions
                        Set Point = (Position of (Triggering unit))
                        Unit - Create 1 Dummy for (Owner of (Picked unit)) at Point facing Default building facing degrees
                        Unit - Add Ice Spiral Freeze  to (Last created unit)
                        Unit - Set level of Ice Spiral Freeze  for (Last created unit) to (Level of Ice Spiral  for (Random unit from (Units owned by (Owner of (Picked unit)) of type Icelord)))
                        Unit - Order (Last created unit) to Night Elf Keeper Of The Grove - Entangling Roots (Triggering unit)
                        Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                        Custom script:   call RemoveLocation (udg_Point)
                        Unit Group - Add (Triggering unit) to Ice_Spiral_Freeze[(Player number of (Owner of (Picked unit)))]
                    Else - Actions

Code:
End Ice Spiral 1
    Events
        Unit - A unit Dies
    Conditions
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Unit-type of (Triggering unit)) Equal to Ice Spiral Dummy [2]
            Then - Actions
                Set Ice_Spirals = (Units owned by (Owner of (Triggering unit)) of type Ice Spiral Dummy)
                Unit Group - Pick every unit in Ice_Spirals and do (Actions)
                    Loop - Actions
                        Unit - Remove (Picked unit) from the game
                        Special Effect - Create a special effect at (Position of (Picked unit)) using Objects\Spawnmodels\NightElf\NECancelDeath\NECancelDeath.mdl
                        Special Effect - Destroy (Last created special effect)
                        Special Effect - Create a special effect at (Position of (Picked unit)) using Objects\Spawnmodels\NightElf\NECancelDeath\NECancelDeath.mdl
                        Special Effect - Destroy (Last created special effect)
                        Set Ice_Spirals_Damage = (Units within 100.00 of (Position of (Picked unit)) matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and (((Matching unit) belongs to an ally of (Owner of (Triggering unit))) Equal to False)))
                        Unit Group - Pick every unit in Ice_Spirals_Damage and do (Actions)
                            Loop - Actions
                                Unit - Cause Ice_Spiral_Caster[(Player number of (Owner of (Triggering unit)))] to damage (Picked unit), dealing (15.00 x (Real((Level of Ice Spiral  for Ice_Spiral_Caster[(Player number of (Owner of (Triggering unit)))])))) damage of attack type Spells and damage type Normal
            Else - Actions
        Custom script:   call DestroyGroup (udg_Ice_Spirals)
        Custom script:   call DestroyGroup (udg_Ice_Spirals_Damage)



Spirals ice around the caster until the spiral has reached an aoe of 500 or until the unit stop channeling, freezes enemies that come near the spiral for a llimited amount of time and after the spiral is done it will explode dealing damage to enemy units around them

IceSpiralIcon.jpg

IceSpiral.jpg


Edit: Got codes on now :)

Edit 2: Map is updated no more delay on frozen boulder knockback and it has a new bolder model
 

Attachments

  • Ice Hero [Spellpack] by THE_X v1.1.w3x
    72.2 KB · Views: 263

THE_X

New Member
Reaction score
49
i get no lag from spiral unless i cast it 3 times in a row plus my machine is kinda a POS
 

dannyboydude

Ultra Cool Member
Reaction score
33
bloody brilliant if they have an ice hero theme i would vote that as one of the best ive seen

rock on dude and keep making them awesome spells
 

Draphoelix

It's not the wintercold that's killing me
Reaction score
132
Nice idea of Frozen Boulder and ice path.

Just something I think doesn't fit

Spiral cause too much lag, well it's kinda obvious. That's a lot of units being created on this spell, maybe increase the size and create less units or something?
Frozen Boulder's knockback got a bit delay (hitted a creep and it takes some seconds before it actually knockbacks) and knockbacks at wrong angle
Ice Path is kinda annoying if it would be in multiplayer. Units get stuck if they hit another unit or a tree.
 

PooBucket

New Member
Reaction score
12
Haha, so that's what you were doing with my Ice Spiral (well you made it for me) and your question on changing terrain. Yer my Ice Spiral kinda gets a bit laggy but nevertheless it's quick lag.
 

Romek

Super Moderator
Reaction score
963
It's not MUI nor MPI. It's neither.
To make it MPI, make all the Globals into arrays and when they're used, use the variable[Player number of owner of triggering unit].

The final Spell (Ice Spiral) crashes wc3 for me.
 

THE_X

New Member
Reaction score
49
Edit: !!!!! ALL SPELLS NOW MUI and fixed some leaks and is much much less laggy

Updates:

- Redid Frozen Boulder, Ice Trap, and Ice Spiral.
- Removed many unneeded variables, for a cleaner system (at least for me)
- Changed Ice Spiral to a non channeling ability
- Changed Ice Traps effect to drain 1,2,3,4% mana with each level and lasts only 14 seconds on every level.
- Fixed tooltips
- Fixed leaks
 

Flare

Stops copies me!
Reaction score
662
1) Can you upload the map to first post instead? Makes it much easier to DL

2) Why are you using the same MUI counter for heroes and for dummies? You're going to hit the instance limit faster that way

3) Leaks. I've underlined all the leaks I can find in that trigger (and they are in a loop to make it worse)
Code:
Frozen Boulder Activate
    Events
    Conditions
        And - All (Conditions) are true
            Conditions
                ((Triggering unit) is A structure) Equal to False
                ((Triggering unit) is A ground unit) Equal to True
                ((Triggering unit) is Magic Immune) Equal to False
    Actions
        Unit Group - Pick every unit in FB_Units and do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        And - All (Conditions) are true
                            Conditions
                                (Distance between [U](Position of (Triggering unit))[/U] and [U](Position of (Picked unit))[/U]) Less than or equal to 115.00
                                ((Triggering unit) belongs to an enemy of (Owner of (Picked unit))) Equal to True
                    Then - Actions
                        Set Point = (Position of (Triggering unit))
                        Unit - Move (Triggering unit) instantly to Point, facing ((Angle from [U](Position of (Triggering unit)[/U]) to [U](Position of (Picked unit))[/U]) - 360.00) degrees
                        Unit - Create 1 Dummy for (Owner of (Picked unit)) at Point facing Default building facing degrees
                        Unit - Add Frozen Boulder Bolt  to (Last created unit)
                        Unit - Set level of Frozen Boulder Bolt  for (Last created unit) to (Level of Frozen Boulder  for (Random unit from (Units owned by (Owner of (Picked unit)) of type Icelord)))
                        Unit - Order (Last created unit) to Human Mountain King - Storm Bolt (Triggering unit)
                        Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                        Unit - Create 1 Dummy for (Owner of (Picked unit)) at Point facing Default building facing degrees
                        Unit - Set level of Frozen Boulder Nova  for (Last created unit) to (Level of Frozen Boulder  for (Random unit from (Units owned by (Owner of (Picked unit)) of type Icelord)))
                        Unit - Add Frozen Boulder Nova  to (Last created unit)
                        Unit - Order (Last created unit) to Undead Lich - Frost Nova (Triggering unit)
                        Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                        Custom script:   call RemoveLocation (udg_Point)
                    Else - Actions

Code:
Freeze Ice Spiral
    Events
    Conditions
        And - All (Conditions) are true
            Conditions
                ((Triggering unit) is in Ice_Spiral_Freeze[1]) Equal to False
                ((Triggering unit) is A structure) Equal to False
                ((Triggering unit) is Magic Immune) Equal to False
    Actions
        Unit Group - Pick every unit in IS_Units and do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        And - All (Conditions) are true
                            Conditions
                                (Distance between [U](Position of (Picked unit))[/U] and [U](Position of (Triggering unit))[/U]) Less than or equal to 150.00
                                ((Triggering unit) belongs to an enemy of (Owner of (Picked unit))) Equal to True
                    Then - Actions
                        Set Point = (Position of (Triggering unit))
                        Unit - Create 1 Dummy for (Owner of (Picked unit)) at Point facing Default building facing degrees
                        Unit - Add Ice Spiral Freeze  to (Last created unit)
                        Unit - Set level of Ice Spiral Freeze  for (Last created unit) to (Level of Ice Spiral  for (Random unit from (Units owned by (Owner of (Picked unit)) of type Icelord)))
                        Unit - Order (Last created unit) to Night Elf Keeper Of The Grove - Entangling Roots (Triggering unit)
                        Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                        Custom script:   call RemoveLocation (udg_Point)
                        Unit Group - Add (Triggering unit) to Ice_Spiral_Freeze[(Player number of (Owner of (Picked unit)))]
                    Else - Actions

Code:
Ice Path Slide
    Events
        Time - Every 0.03 seconds of game time
    Conditions
    Actions
        Set Ice_Path_Units_1 = (Units of type Ice Path Dummy)
        Unit Group - Pick every unit in Ice_Path_Units_1 and do (Actions)
            Loop - Actions
                Set Ice_Path_Units_2 = (Units within (300.00 + (200.00 x (Real((Custom value of (Picked unit)))))) of [U](Position of (Picked unit))[/U] matching ((((Matching unit) is A structure) Equal to False) and (((Matching unit) is A ground unit) Equal to True)))
                Unit Group - Pick every unit in Ice_Path_Units_2 and do (Actions)
                    Loop - Actions
                        Set Point = (Position of (Picked unit))
                        Set Point_2 = (Point offset by 15.00 towards (Facing of (Picked unit)) degrees)
                        Unit - Move (Picked unit) instantly to Point_2
                        Custom script:   call RemoveLocation (udg_Point)
                        Custom script:   call RemoveLocation (udg_Point_2)
        Custom script:   call DestroyGroup (udg_Ice_Path_Units_1)
        Custom script:   call DestroyGroup (udg_Ice_Path_Units_2)

4) Lameness (and leaks)
Code:
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    If - Conditions
        (Level of Ice Path  for (Triggering unit)) Equal to 1
    Then - Actions
        Environment - Change terrain type at [U](Target point of ability being cast)[/U] to Icecrown Glacier - Ice using variation -1 in an area of size 4 and shape Circle
    Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Level of Ice Path  for (Triggering unit)) Equal to 2
            Then - Actions
                Environment - Change terrain type at [U](Target point of ability being cast)[/U] to Icecrown Glacier - Ice using variation -1 in an area of size 6 and shape Circle
            Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Level of Ice Path  for (Triggering unit)) Equal to 3
                    Then - Actions
                        Environment - Change terrain type at [U](Target point of ability being cast)[/U] to Icecrown Glacier - Ice using variation -1 in an area of size 8 and shape Circle
                    Else - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            If - Conditions
                                (Level of Ice Path  for (Triggering unit)) Equal to 4
                            Then - Actions
                                Environment - Change terrain type at [U](Target point of ability being cast)[/U] to Icecrown Glacier - Ice using variation -1 in an area of size 10 and shape Circle
                            Else - Actions

Code:
Ice Path Change Back
    Events
        Unit - A unit Dies
    Conditions
        (Unit-type of (Triggering unit)) Equal to Ice Path Dummy
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Custom value of (Triggering unit)) Equal to 1
            Then - Actions
                Environment - Change terrain type at [U](Position of (Triggering unit))[/U] to Icecrown Glacier - Snow using variation -1 in an area of size 4 and shape Circle
            Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Custom value of (Triggering unit)) Equal to 2
                    Then - Actions
                        Environment - Change terrain type at [U](Position of (Triggering unit))[/U] to Icecrown Glacier - Snow using variation -1 in an area of size 6 and shape Circle
                    Else - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            If - Conditions
                                (Custom value of (Triggering unit)) Equal to 3
                            Then - Actions
                                Environment - Change terrain type at [U](Position of (Triggering unit))[/U] to Icecrown Glacier - Snow using variation -1 in an area of size 8 and shape Circle
                            Else - Actions
                                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    If - Conditions
                                        (Custom value of (Triggering unit)) Equal to 4
                                    Then - Actions
                                        Environment - Change terrain type at [U](Position of (Triggering unit))[/U] to Icecrown Glacier - Snow using variation -1 in an area of size 10 and shape Circle
                                    Else - Actions
        Unit - Remove (Triggering unit) from the game

4 if's are not required (and they make the code difficult to read). You should set the size to (2 + (2 * <level of ability for unit OR custom value of unit, whichever is currently being used>)). That'll be 4-6-8-10 size

5) Total lack of configuration. I can't find anything relating to ease of configuration. You should set some values to arrays like speed (if applicable), angle increment (if applicable), damage dealt, etc. If you feel they should be the same for every spell instance, set some non-arrayed globals to a value in a Map Init trigger. And you should point out that most of the damage dealt is done via Object Editor skills (I'm assuming they are doing some amount of damage) since I can only find one Unit - Damage Target action
 

THE_X

New Member
Reaction score
49
oh yea, never notcied that on ice path, il have leaks fixed in a bit, and il rework the costom values so that it will recycle the units (just made it never stuck it in this map)



Edit: Map updated

- Fixed more leaks
- Map posted in my 1st post


Thanks for flare for catching leaks
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top