• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Frost Giant Spellpack v1.1

A spellpack from a map I'm working on. Decided I'd share my resources with the public. It has been updated to make Mag happy. I would redownload if you have any version besides 1.3, as it is the most efficient and most customizable.

Descriptions
Arctic Blast

Throws a ball of ice at target units. Deals area of effect damage within 250 range of the unit.

Ice Tomb

Marks a unit with a sigil of frost. If the unit doesn't move 600 units away within 3.6 seconds, it will be frozen for a short duration.

Chilling Touch

Adds a slowing effect to all spells cast by the Frost Giant. Lasts 4 seconds at all levels.

Glacial Surge

Rides a glacier forwards, causing immense damage to enemies within hit by the glacier.
  • Hashtable And Configurables
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Hashtable - Create a hashtable
      • Set hashtable = (Last created hashtable)
      • -------- --------------- --------
      • -------- --------------- --------
      • -------- PLEASE READ --------
      • -------- In order to edit the duration of power of the slow from Chilling Touch, you must edit the ability named Slow in the object editor --------
      • -------- Values such as cast range, cooldown, manacost and all that can be edited in the object editor --------
      • -------- If you make the spells go to a higher level you need to extend these arrays up to the maximum level. Otherwise the spell will malfunction --------
      • -------- --------------- --------
      • -------- --------------- --------
      • -------- ARCTIC BLAST --------
      • -------- --------------- --------
      • -------- Edit the damage --------
      • Set chillingblastdamage[1] = 70.00
      • Set chillingblastdamage[2] = 140.00
      • Set chillingblastdamage[3] = 210.00
      • Set chillingblastdamage[4] = 280.00
      • -------- Edit the AoE per level --------
      • Set chillingblastaoe[1] = 250.00
      • Set chillingblastaoe[2] = 250.00
      • Set chillingblastaoe[3] = 250.00
      • Set chillingblastaoe[4] = 250.00
      • -------- Edit the speed --------
      • Set chillingblastspeed[1] = 29.00
      • Set chillingblastspeed[2] = 29.00
      • Set chillingblastspeed[3] = 29.00
      • Set chillingblastspeed[4] = 29.00
      • -------- --------------- --------
      • -------- ICE TOMB --------
      • -------- --------------- --------
      • -------- Edit the time it takes the unit to freeze if it doesnt move away from the location --------
      • Set icetombduration[1] = 3.60
      • Set icetombduration[2] = 3.60
      • Set icetombduration[3] = 3.60
      • Set icetombduration[4] = 3.60
      • -------- Edit the distance the unit must be in order to escape the ice tomb --------
      • Set icetombdistance[1] = 600.00
      • Set icetombdistance[2] = 600.00
      • Set icetombdistance[3] = 600.00
      • Set icetombdistance[4] = 600.00
      • -------- --------------- --------
      • -------- GLACIAL SURGE --------
      • -------- --------------- --------
      • -------- Edit the intelligence multiplier per level. --------
      • Set glacialsurgeintmultiplier[1] = 2
      • Set glacialsurgeintmultiplier[2] = 4
      • Set glacialsurgeintmultiplier[3] = 6
      • -------- Edit the AoE of the glacial surge --------
      • Set glacialsurgeaoe[1] = 160.00
      • Set glacialsurgeaoe[2] = 160.00
      • Set glacialsurgeaoe[3] = 160.00
      • -------- Edit the speed of the projectile --------
      • Set glacialsurgespeed[1] = 69.00
      • Set glacialsurgespeed[2] = 69.00
      • Set glacialsurgespeed[3] = 69.00
  • Chilling Blast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Arctic Blast
    • Actions
      • Set caster = (Triggering unit)
      • Set target2 = (Target unit of ability being cast)
      • Set point1 = (Position of target2)
      • Set point2 = (Position of caster)
      • Set angle = (Angle from point2 to point1)
      • Unit - Create 1 Arctic Blast for (Triggering player) at point2 facing angle degrees
      • Set target = (Last created unit)
      • Unit Group - Add target to snowballgroup
      • Custom script: set udg_handle = GetHandleId(udg_target)
      • Hashtable - Save Handle Oftarget2 as 1 of handle in hashtable
      • Hashtable - Save Handle Ofcaster as 2 of handle in hashtable
      • Hashtable - Save angle as 3 of handle in hashtable
      • Custom script: call RemoveLocation(udg_point1)
      • Custom script: call RemoveLocation(udg_point2)
      • Trigger - Turn on Chilling Blast Loop <gen>
  • Chilling Blast Loop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in snowballgroup and do (Actions)
        • Loop - Actions
          • Set target = (Picked unit)
          • Custom script: set udg_handle = GetHandleId(udg_target)
          • Set point1 = (Position of (Load 1 of handle in hashtable))
          • Set point2 = (Position of target)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Distance between point1 and point2) Greater than or equal to (chillingblastspeed[(Level of Arctic Blast for caster)] + 1.00)
            • Then - Actions
              • Set angle = (Angle from point2 to point1)
              • Set point3 = (point2 offset by chillingblastspeed[(Level of Arctic Blast for caster)] towards angle degrees)
              • Unit - Move target instantly to point3
              • Custom script: call RemoveLocation(udg_point3)
            • Else - Actions
              • Set caster = (Load 2 of handle in hashtable)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Arctic Blast for caster) Greater than 0
                • Then - Actions
                  • Unit - Add Slow to target
                  • Unit - Set level of Slow for target to (Level of Chilling Touch for caster)
                • Else - Actions
              • Special Effect - Create a special effect at point1 using Abilities\Spells\Undead\FrostNova\FrostNovaTarget.mdl
              • Special Effect - Destroy (Last created special effect)
              • Custom script: set bj_wantDestroyGroup = true
              • Unit Group - Pick every unit in (Units within chillingblastaoe[(Level of Arctic Blast for caster)] of point1 matching ((((Matching unit) is alive) Equal to True) and ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and (((Matching u and do (Actions)
                • Loop - Actions
                  • Unit - Cause caster to damage (Picked unit), dealing chillingblastdamage[(Level of Arctic Blast for caster)] damage of attack type Spells and damage type Normal
                  • Unit - Order target to Human Sorceress - Slow (Picked unit)
              • Unit - Kill target
              • Unit Group - Remove target from snowballgroup
              • Hashtable - Clear all child hashtables of child handle in hashtable
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Number of units in snowballgroup) Equal to 0
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                • Else - Actions
          • Custom script: call RemoveLocation(udg_point1)
          • Custom script: call RemoveLocation(udg_point2)
  • Ice Tomb
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Ice Tomb
    • Actions
      • Set caster = (Triggering unit)
      • Set target = (Target unit of ability being cast)
      • Set point1 = (Position of target)
      • Unit - Create 1 Ice Tomb for (Owner of caster) at point1 facing Default building facing degrees
      • Set target2 = (Last created unit)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Arctic Blast for caster) Greater than 0
        • Then - Actions
          • Unit - Add Slow to target2
          • Unit - Set level of Slow for target2 to (Level of Chilling Touch for caster)
          • Unit - Order target2 to Human Sorceress - Slow target
        • Else - Actions
      • Set timer = icetombduration[(Level of Ice Tomb for caster)]
      • Special Effect - Create a special effect attached to the overhead of target using Abilities\Spells\Other\Drain\ManaDrainTarget.mdl
      • Set sfx = (Last created special effect)
      • Unit Group - Add target to IceTombGroup
      • Custom script: set udg_handle = GetHandleId(udg_target)
      • Hashtable - Save Handle Ofcaster as 4 of handle in hashtable
      • Hashtable - Save Handle Oftarget2 as 5 of handle in hashtable
      • Hashtable - Save timer as 6 of handle in hashtable
      • Hashtable - Save Handle Ofsfx as 7 of handle in hashtable
      • Trigger - Turn on Ice Tomb Loop <gen>
  • Ice Tomb Loop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in IceTombGroup and do (Actions)
        • Loop - Actions
          • Set target = (Picked unit)
          • Custom script: set udg_handle = GetHandleId(udg_target)
          • Set timer = (Load 6 of handle from hashtable)
          • Set target2 = (Load 5 of handle in hashtable)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • timer Greater than 0.00
            • Then - Actions
              • Hashtable - Save (timer - 0.03) as 6 of handle in hashtable
              • Set point1 = (Position of target)
              • Set point2 = (Position of target2)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Distance between point1 and point2) Greater than icetombdistance[(Level of Ice Tomb for caster)]
                • Then - Actions
                  • Special Effect - Destroy (Load 7 of handle in hashtable)
                  • Unit - Kill target2
                  • Hashtable - Clear all child hashtables of child handle in hashtable
                  • Unit Group - Remove target from IceTombGroup
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Number of units in IceTombGroup) Equal to 0
                    • Then - Actions
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                • Else - Actions
              • Custom script: call RemoveLocation(udg_point1)
              • Custom script: call RemoveLocation(udg_point2)
            • Else - Actions
              • Set caster = (Load 4 of handle in hashtable)
              • Unit - Add Storm Bolt to target2
              • Unit - Set level of Storm Bolt for target2 to (Level of Ice Tomb for caster)
              • Unit - Order target2 to Human Mountain King - Storm Bolt target
              • Special Effect - Destroy (Load 7 of handle in hashtable)
              • Unit - Kill target2
              • Hashtable - Clear all child hashtables of child handle in hashtable
              • Unit Group - Remove target from IceTombGroup
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Number of units in IceTombGroup) Equal to 0
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                • Else - Actions
  • Glacial Surge
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Glacial Surge
    • Actions
      • Set caster = (Triggering unit)
      • Set point1 = (Target point of ability being cast)
      • Unit - Create 1 Dummy for (Owner of caster) at point1 facing Default building facing degrees
      • Set target = (Last created unit)
      • Unit - Hide caster
      • Unit - Add Invulnerable (Neutral) to caster
      • Unit - Turn collision for caster Off
      • Unit Group - Add caster to GlacialSurgeGroup
      • Special Effect - Create a special effect attached to the chest of caster using Abilities\Weapons\FrostWyrmMissile\FrostWyrmMissile.mdl
      • Set sfx = (Last created special effect)
      • Custom script: set udg_handle = GetHandleId(udg_caster)
      • Hashtable - Save Handle Oftarget as 8 of handle in hashtable
      • Hashtable - Save Handle Ofsfx as 9 of handle in hashtable
      • Custom script: call RemoveLocation(udg_point1)
      • Trigger - Turn on Glacial Surge Loop <gen>
  • Glacial Surge Loop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in GlacialSurgeGroup and do (Actions)
        • Loop - Actions
          • Set caster = (Picked unit)
          • Custom script: set udg_handle = GetHandleId(udg_caster)
          • Set target = (Load 8 of handle in hashtable)
          • Set point1 = (Position of caster)
          • Set point2 = (Position of target)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Distance between point2 and point1) Greater than (glacialsurgespeed[(Level of Glacial Surge for caster)] + 1.00)
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Arctic Blast for caster) Greater than 0
                • Then - Actions
                  • Unit - Add Slow to target2
                  • Unit - Set level of Slow for target2 to (Level of Chilling Touch for caster)
                • Else - Actions
              • Set GlacialSurgeTargetGroup = (Load 10 of handle in hashtable)
              • Set point3 = (point1 offset by glacialsurgespeed[(Level of Glacial Surge for caster)] towards (Angle from point1 to point2) degrees)
              • Unit - Move caster instantly to point3
              • Unit - Create 1 Glacial Surge for (Owner of caster) at point3 facing Default building facing degrees
              • Set target2 = (Last created unit)
              • Unit - Add a 1.00 second Generic expiration timer to target2
              • Custom script: set bj_wantDestroyGroup = true
              • Unit Group - Pick every unit in (Units within glacialsurgeaoe[(Level of Glacial Surge for caster)] of point3 matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and ((((Matching unit) is in GlacialSurgeTargetGroup) Equal to Fa and do (Actions)
                • Loop - Actions
                  • Unit - Order target2 to Human Sorceress - Slow (Picked unit)
                  • Unit Group - Add (Picked unit) to GlacialSurgeTargetGroup
                  • Unit - Cause caster to damage (Picked unit), dealing (Real((glacialsurgeintmultiplier[(Level of Glacial Surge for caster)] x (Intelligence of caster (Include bonuses))))) damage of attack type Spells and damage type Normal
              • Hashtable - Save Handle OfGlacialSurgeTargetGroup as 10 of handle in hashtable
              • Custom script: call RemoveLocation(udg_point3)
            • Else - Actions
              • Custom script: set bj_wantDestroyGroup = true
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Arctic Blast for caster) Greater than 0
                • Then - Actions
                  • Unit - Add Slow to target2
                  • Unit - Set level of Slow for target2 to (Level of Chilling Touch for caster)
                • Else - Actions
              • Unit Group - Pick every unit in (Units within 160.00 of point3 matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and ((((Matching unit) is in GlacialSurgeTargetGroup) Equal to False) and (((Matching unit) belongs to an enemy and do (Actions)
                • Loop - Actions
                  • Unit - Cause caster to damage (Picked unit), dealing (Real((glacialsurgeintmultiplier[(Level of Glacial Surge for caster)] x (Intelligence of caster (Include bonuses))))) damage of attack type Spells and damage type Normal
                  • Unit - Order target2 to Human Sorceress - Slow (Picked unit)
                  • Unit Group - Add (Picked unit) to GlacialSurgeTargetGroup
              • Unit - Unhide caster
              • Unit - Remove Invulnerable (Neutral) from caster
              • Unit - Turn collision for caster On
              • Selection - Select caster for (Owner of caster)
              • Unit - Kill target
              • Special Effect - Destroy (Load 9 of handle in hashtable)
              • Unit Group - Remove caster from GlacialSurgeGroup
              • Hashtable - Clear all child hashtables of child handle in hashtable
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Number of units in GlacialSurgeGroup) Equal to 0
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                • Else - Actions
          • Custom script: call RemoveLocation(udg_point1)
          • Custom script: call RemoveLocation(udg_point2)


Keywords:
Frost, Giant, Frostgiant, Cold, Ice, Slow, freeze
Contents

Just another Warcraft III map (Map)

Reviews
02:41, 21st Jul 2012 Magtheridon96: Approved. Good configuration and execution. http://www.hiveworkshop.com/forums/2186936-post3.html There's a review. <: This is actually a really nice spellpack. I love how all the spells are dependent on...

Moderator

M

Moderator

02:41, 21st Jul 2012
Magtheridon96: Approved.
Good configuration and execution.

http://www.hiveworkshop.com/forums/2186936-post3.html

There's a review. <:

This is actually a really nice spellpack.
I love how all the spells are dependent on each other, but this is going to need more configuration.
A user needs to be able to change the abilities used inside the spell triggers by modifying just one variable in a configuration trigger.
He should also be able to modify damage and duration.

edit
Put up the rating for some motivation ;)
 
Instead of moderating this, I'll do things the easy way <:

  • Set angle = (Angle from point2 to point1)
  • Unit - Create 1 Arctic Blast for (Owner of caster) at point2 facing (Angle from point2 to point1) degrees
You can use 'angle' when you create the unit.
You can replace (Owner of caster) with (Triggering player).

You shouldn't select a unit without clearing the selection for a certain player because that actually adds the unit to the currently selected ones. It would be quite strange.

There should be configuration triggers for easy configuration.
(To configure durations, special effects, damage, abilities so that you don't have to look through all the triggers and change the value when you import the spell, like "Chilling Touch", etc..)

Also, you can totally optimize this:

  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    • If - Conditions
      • (Level of Arctic Blast for caster) Greater than 0
    • Then - Actions
      • Unit - Add Slow to target2
      • Unit - Set level of Slow for target2 to (Level of Chilling Touch for caster)
      • Custom script: set bj_wantDestroyGroup = true
      • Unit Group - Pick every unit in (Units within 160.00 of point3 matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and ((((Matching unit) is in GlacialSurgeTargetGroup) Equal to False) and (((Matching unit) belongs to an enemy and do (Actions)
        • Loop - Actions
          • Unit - Order target2 to Human Sorceress - Slow (Picked unit)
    • Else - Actions
  • Custom script: set bj_wantDestroyGroup = true
  • Unit Group - Pick every unit in (Units within 160.00 of point3 matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and ((((Matching unit) is in GlacialSurgeTargetGroup) Equal to False) and (((Matching unit) belongs to an enemy and do (Actions)
    • Loop - Actions
      • Unit Group - Add (Picked unit) to GlacialSurgeTargetGroup
      • Unit - Cause caster to damage (Picked unit), dealing (Real(((Level of Glacial Surge for caster) x ((Intelligence of caster (Include bonuses)) x 2)))) damage of attack type Spells and damage type Normal
You can set a boolean inside the if block to true, and in the enumeration that's outside the block at the end,
you would check if this boolean is true, and if it is, then do this: Unit - Order target2 to Human Sorceress - Slow (Picked unit)

This way, you only need 1 enumeration.
 
Level 16
Joined
Apr 4, 2011
Messages
995
Rejection is such a mean word.

I will implement all suggested changes except for the selection event. If you are playing a game in which you are controlling more than one hero at a time, and you use this skill then suddenly deselect everything but this hero, it would be quite frustrating.

I will make configurable values for the things that can be changed within the triggers. The duration of the slow is totally OE dependant so I'm not going to waste time with that.

I'm literally uploading the updates as we speak.

EDIT: Hopefully everything will be in approvable order. Anyone who has downloaded for use should redownload, it is now more efficient and more customizable.
 
I know, but I can't keep it set to "Pending" because then it would still show up in the "Pending Spells" list, and this way, when you update it, I would directly know because the state would be reset to "Pending".

edit
Okay, this is in an approvable state, but there's just one thing I noticed, you're adding the Slow ability to the dummy and setting the level INSIDE the enumeration, so it's actually being added and set multiple times =o
You could move that code out of the enum code.

And one other nice configurable would be AoE ^.^

As for the Slow, no problem, you would need an entire movement system to pull that one off :p
 
Level 16
Joined
Apr 4, 2011
Messages
995
I know, but I can't keep it set to "Pending" because then it would still show up in the "Pending Spells" list, and this way, when you update it, I would directly know because the state would be reset to "Pending".

edit
Okay, this is in an approvable state, but there's just one thing I noticed, you're adding the Slow ability to the dummy and setting the level INSIDE the enumeration, so it's actually being added and set multiple times =o
You could move that code out of the enum code.

And one other nice configurable would be AoE ^.^

As for the Slow, no problem, you would need an entire movement system to pull that one off :p

Changes have been implemented. It won't repeatedly set the level and add the ability. Also AoE value has been added for the two spells with AoE, and I have slightly updated the documentation.

Approvazle?
 
Level 16
Joined
Apr 4, 2011
Messages
995
Well, sorta.

I just noticed that Arctic Blast/Chilling Blast doesn't exactly work correctly o-o
It deals damage around the frost giant rather than the ball and it only damages one unit.

Also, the speed should be configurable too :p

You probably want to kick me in the face now

After looking over my triggers I saw the problem.

Arctic blast was using the aoe of glacial surge. I was setting the aoe for it twice in the load trigger. Additionally it was using the aoe of glacial surge in the actual damage trigger itself. So when glacial surge wasn't skilled, it was picking enemies within 0 area of effect.

It's a five minute fix. Plus adding a configurable for the range should not take long. I'll update this very soon.

EDIT: Lol whoops I forgot to change the name. It should say v1.3

But yes it is updated now.
 
Level 6
Joined
Mar 6, 2010
Messages
116
Hi.I just want to use glacial surge in my map.I tried,but it didnt work.I changed the trigger a little bit.These are the triggers :
  • Glacial Surge
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Glacial Surge
    • Actions
      • Set caster = (Triggering unit)
      • Set point1 = (Target point of ability being cast)
      • Unit - Create 1 Dummy for (Owner of caster) at point1 facing Default building facing degrees
      • Set target = (Last created unit)
      • Unit - Hide caster
      • Unit - Add Invulnerable (Neutral) to caster
      • Unit - Turn collision for caster Off
      • Unit Group - Add caster to GlacialSurgeGroup
      • Special Effect - Create a special effect attached to the chest of caster using Abilities\Weapons\FrostWyrmMissile\FrostWyrmMissile.mdl
      • Set sfx = (Last created special effect)
      • Custom script: set udg_handle = GetHandleId(udg_caster)
      • Hashtable - Save Handle Oftarget as 8 of handle in hashtable
      • Hashtable - Save Handle Ofsfx as 9 of handle in hashtable
      • Custom script: call RemoveLocation(udg_point1)
      • Trigger - Turn on Glacial Surge Loop <gen>
  • Glacial Surge Loop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in GlacialSurgeGroup and do (Actions)
        • Loop - Actions
          • Set caster = (Picked unit)
          • Custom script: set udg_handle = GetHandleId(udg_caster)
          • Set target = (Load 8 of handle in hashtable)
          • Set point1 = (Position of caster)
          • Set point2 = (Position of target)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Distance between point2 and point1) Greater than (glacialsurgespeed[(Level of Glacial Surge for caster)] + 1.00)
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                • Then - Actions
                  • Do nothing
                • Else - Actions
              • Set GlacialSurgeTargetGroup = (Load 10 of handle in hashtable)
              • Set point3 = (point1 offset by glacialsurgespeed[(Level of Glacial Surge for caster)] towards (Angle from point1 to point2) degrees)
              • Unit - Move caster instantly to point3
              • Unit - Create 1 Glacial Surge for (Owner of caster) at point3 facing Default building facing degrees
              • Set target2 = (Last created unit)
              • Unit - Add a 1.00 second Generic expiration timer to target2
              • Custom script: set bj_wantDestroyGroup = true
              • Unit Group - Pick every unit in (Units within glacialsurgeaoe[(Level of Glacial Surge for caster)] of point3 matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and ((((Matching unit) is in GlacialSurgeTargetGroup) Equal to Fa and do (Actions)
                • Loop - Actions
                  • Unit - Order target2 to Human Sorceress - Slow (Picked unit)
                  • Unit Group - Add (Picked unit) to GlacialSurgeTargetGroup
                  • Unit - Cause caster to damage (Picked unit), dealing (Real((glacialsurgeintmultiplier[(Level of Glacial Surge for caster)] x (Strength of caster (Include bonuses))))) damage of attack type Spells and damage type Normal
              • Hashtable - Save Handle OfGlacialSurgeTargetGroup as 10 of handle in hashtable
              • Custom script: call RemoveLocation(udg_point3)
            • Else - Actions
              • Custom script: set bj_wantDestroyGroup = true
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                • Then - Actions
                  • Do nothing
                • Else - Actions
              • Unit Group - Pick every unit in (Units within 160.00 of point3 matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and ((((Matching unit) is in GlacialSurgeTargetGroup) Equal to False) and (((Matching unit) belongs to an enemy and do (Actions)
                • Loop - Actions
                  • Unit - Cause caster to damage (Picked unit), dealing (Real((glacialsurgeintmultiplier[(Level of Glacial Surge for caster)] x (Strength of caster (Include bonuses))))) damage of attack type Spells and damage type Normal
                  • Unit - Order target2 to Human Sorceress - Slow (Picked unit)
                  • Unit Group - Add (Picked unit) to GlacialSurgeTargetGroup
              • Unit - Unhide caster
              • Unit - Remove Invulnerable (Neutral) from caster
              • Unit - Turn collision for caster On
              • Selection - Select caster for (Owner of caster)
              • Unit - Kill target
              • Special Effect - Destroy (Load 9 of handle in hashtable)
              • Unit Group - Remove caster from GlacialSurgeGroup
              • Hashtable - Clear all child hashtables of child handle in hashtable
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Number of units in GlacialSurgeGroup) Equal to 0
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                • Else - Actions
          • Custom script: call RemoveLocation(udg_point1)
          • Custom script: call RemoveLocation(udg_point2)
 
Level 16
Joined
Apr 4, 2011
Messages
995
Please specifically describe exactly what went wrong. Is the movement still working? Is it not stopping where its supposed to? Is it not hurting enemies?

Since you changed the information in the if/then/else statement, simply delete it altogether. Don't just leave an empty if/then/else with a do nothing in it. NEVER use do nothing.

My guess is that you didn't import the hashtable. The trigger with the hashtable in it also has to be in your map for this spell to work. I'd recommend uploading your map in either the triggers and script or general mapping sections and asking for help to customize it how you want.
 
Top