• 🏆 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!

[GUI] Ice Wall by Death-Blade v1.1

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
Creates a wall that is made of ice, and if unit is very nearby it, it will take damage and its movement and attack speed will be reduced. |nLasts 15 seconds.

Level 1 - 5% AS, 20% MS and 50 DPS.
Level 2 - 10% AS, 40% MS and 100 DPS.
Level 3 - 15% AS, 60% MS and 150 DPS.
Level 4 - 20% AS, 80% MS and 200 DPS.

Keywords:
ice wall, ice, wall, frost wall, frost, freez, freezing wall.
Contents

Ice Wall by Death-Blade v1.1 (Map)

Reviews
12.12 IcemanBo: For long time as NeedsFix. Rejected. 15:40, 1st Jun 2011 Maker: Your loop causes leaks. The original point leaks, even though you store the offset point into a variable. Also make sure that the leak removing custom script is in...

Moderator

M

Moderator

12.12
IcemanBo: For long time as NeedsFix. Rejected.

15:40, 1st Jun 2011
Maker: Your loop causes leaks. The original point leaks, even though you store the offset point into a variable. Also make sure that the leak removing custom script is in the correct place, inside the loop.
 
Level 7
Joined
Feb 14, 2011
Messages
101
Triggers

  • cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Ice Wall
    • Actions
      • Set Ice_Wall_Caster = (Triggering unit)
      • Set Ice_Wall_Player = (Owner of Ice_Wall_Caster)
      • Set Ice_Wall_TargetedPoint = (Target point of ability being cast)
      • Set Ice_Wall_CasterFacing = (Facing of Ice_Wall_Caster)
      • Unit - Create 1 Ice_Wall_Dummy for Ice_Wall_Player at Ice_Wall_TargetedPoint facing (Ice_Wall_CasterFacing - 90.00) degrees
      • Set Ice_Wall_DummyUnit[1] = (Last created unit)
      • Unit - Add a 15.00 second Water Elemental expiration timer to Ice_Wall_DummyUnit[1]
      • Unit - Create 1 Ice_Wall_Dummy for Ice_Wall_Player at Ice_Wall_TargetedPoint facing (Ice_Wall_CasterFacing + 90.00) degrees
      • Set Ice_Wall_DummyUnit[2] = (Last created unit)
      • Unit - Add a 15.00 second Water Elemental expiration timer to Ice_Wall_DummyUnit[2]
      • Unit - Create 1 Ice_Wall for Ice_Wall_Player at Ice_Wall_TargetedPoint facing (Random angle) degrees
      • Set Ice_Wall_CreatedUnit[1] = (Last created unit)
      • Unit - Add a 15.00 second Water Elemental expiration timer to Ice_Wall_CreatedUnit[1]
      • Unit - Add Ice_Wall (Immolation) to Ice_Wall_CreatedUnit[1]
      • Unit - Add Ice_Wall (Slowing) to Ice_Wall_CreatedUnit[1]
      • Unit - Set level of Ice_Wall (Slowing) for Ice_Wall_CreatedUnit[1] to (Level of Ice Wall for Ice_Wall_Caster)
      • Unit - Set level of Ice_Wall (Immolation) for Ice_Wall_CreatedUnit[1] to (Level of Ice Wall for Ice_Wall_Caster)
      • Animation - Play Ice_Wall_CreatedUnit[1]'s birth animation
      • Custom script: call RemoveLocation(udg_Ice_Wall_TargetedPoint)
      • -------- ------------------------------------------------------------------------------------------ --------
      • -------- --------------------Right-------------------- --------
      • -------- ------------------------------------------------------------------------------------------ --------
      • For each (Integer A) from 1 to 5, do (Actions)
        • Loop - Actions
          • Set Ice_Wall_CreatingPoint[1] = ((Position of Ice_Wall_DummyUnit[1]) offset by 100.00 towards (Facing of Ice_Wall_DummyUnit[1]) degrees)
          • Unit - Move Ice_Wall_DummyUnit[1] instantly to Ice_Wall_CreatingPoint[1]
          • Unit - Create 1 Ice_Wall for Ice_Wall_Player at Ice_Wall_CreatingPoint[1] facing (Random angle) degrees
          • Set Ice_Wall_CreatedUnit[1] = (Last created unit)
          • Unit - Add a 15.00 second Water Elemental expiration timer to Ice_Wall_CreatedUnit[1]
          • Animation - Play Ice_Wall_CreatedUnit[1]'s birth animation
          • Unit - Add Ice_Wall (Immolation) to Ice_Wall_CreatedUnit[1]
          • Unit - Add Ice_Wall (Slowing) to Ice_Wall_CreatedUnit[1]
          • Unit - Set level of Ice_Wall (Slowing) for Ice_Wall_CreatedUnit[1] to (Level of Ice Wall for Ice_Wall_Caster)
          • Unit - Set level of Ice_Wall (Immolation) for Ice_Wall_CreatedUnit[1] to (Level of Ice Wall for Ice_Wall_Caster)
      • Custom script: call RemoveLocation(udg_Ice_Wall_CreatingPoint[1])
      • -------- ------------------------------------------------------------------------------------------ --------
      • -------- --------------------Left-------------------- --------
      • -------- ------------------------------------------------------------------------------------------ --------
      • For each (Integer A) from 1 to 5, do (Actions)
        • Loop - Actions
          • Set Ice_Wall_CreatingPoint[2] = ((Position of Ice_Wall_DummyUnit[2]) offset by 100.00 towards (Facing of Ice_Wall_DummyUnit[2]) degrees)
          • Unit - Move Ice_Wall_DummyUnit[2] instantly to Ice_Wall_CreatingPoint[2]
          • Unit - Create 1 Ice_Wall for Ice_Wall_Player at Ice_Wall_CreatingPoint[2] facing (Random angle) degrees
          • Set Ice_Wall_CreatedUnit[2] = (Last created unit)
          • Unit - Add a 15.00 second Water Elemental expiration timer to Ice_Wall_CreatedUnit[2]
          • Animation - Play Ice_Wall_CreatedUnit[2]'s birth animation
          • Unit - Add Ice_Wall (Immolation) to Ice_Wall_CreatedUnit[2]
          • Unit - Add Ice_Wall (Slowing) to Ice_Wall_CreatedUnit[2]
          • Unit - Set level of Ice_Wall (Slowing) for Ice_Wall_CreatedUnit[2] to (Level of Ice Wall for Ice_Wall_Caster)
          • Unit - Set level of Ice_Wall (Immolation) for Ice_Wall_CreatedUnit[2] to (Level of Ice Wall for Ice_Wall_Caster)
      • Custom script: call RemoveLocation(udg_Ice_Wall_CreatingPoint[2])
 
Last edited:

  • Events
  • Unit - A unit Starts the effect of an ability
  • Conditions
  • (Ability being cast) Equal to Ice Wall
  • Actions
  • Set Ice_Wall_Caster = (Triggering unit)
  • Set Ice_Wall_Player = (Owner of Ice_Wall_Caster)
  • Set Ice_Wall_TargetedPoint = (Target point of ability being cast)
  • Set Ice_Wall_CasterFacing = (Facing of Ice_Wall_Caster)
  • Unit - Create 1 Ice_Wall_Dummy for Ice_Wall_Player at Ice_Wall_TargetedPoint facing (Ice_Wall_CasterFacing - 90.00) degrees
  • Set Ice_Wall_DummyUnit[1] = (Last created unit)
  • Unit - Add a 15.00 second Water Elemental expiration timer to Ice_Wall_DummyUnit[1]
  • Unit - Create 1 Ice_Wall_Dummy for Ice_Wall_Player at Ice_Wall_TargetedPoint facing (Ice_Wall_CasterFacing + 90.00) degrees
  • Set Ice_Wall_DummyUnit[2] = (Last created unit)
  • Unit - Add a 15.00 second Water Elemental expiration timer to Ice_Wall_DummyUnit[2]
  • Unit - Create 1 Ice_Wall for Ice_Wall_Player at Ice_Wall_TargetedPoint facing (Random angle) degrees
  • Set Ice_Wall_CreatedUnit[1] = (Last created unit)
  • Unit - Add a 15.00 second Water Elemental expiration timer to Ice_Wall_CreatedUnit[1]
  • Unit - Add Ice_Wall (Immolation) to Ice_Wall_CreatedUnit[1]
  • Unit - Add Ice_Wall (Slowing) to Ice_Wall_CreatedUnit[1]
  • Unit - Set level of Ice_Wall (Slowing) for Ice_Wall_CreatedUnit[1] to (Level of Ice Wall for Ice_Wall_Caster)
  • Unit - Set level of Ice_Wall (Immolation) for Ice_Wall_CreatedUnit[1] to (Level of Ice Wall for Ice_Wall_Caster)
  • Animation - Play Ice_Wall_CreatedUnit[1]'s birth animation
  • Custom script: call RemoveLocation(udg_Ice_Wall_TargetedPoint)
  • For each (Integer A) from 1 to 5, do (Actions)
  • Loop - Actions
  • Set Ice_Wall_CreatingPoint[1] = ((Position of Ice_Wall_DummyUnit[1]) offset by 100.00 towards (Facing of Ice_Wall_DummyUnit[1]) degrees)
  • Unit - Move Ice_Wall_DummyUnit[1] instantly to Ice_Wall_CreatingPoint[1]
  • Unit - Create 1 Ice_Wall for Ice_Wall_Player at Ice_Wall_CreatingPoint[1] facing (Random angle) degrees
  • Set Ice_Wall_CreatedUnit[1] = (Last created unit)
  • Unit - Add a 15.00 second Water Elemental expiration timer to Ice_Wall_CreatedUnit[1]
  • Animation - Play Ice_Wall_CreatedUnit[1]'s birth animation
  • Unit - Add Ice_Wall (Immolation) to Ice_Wall_CreatedUnit[1]
  • Unit - Add Ice_Wall (Slowing) to Ice_Wall_CreatedUnit[1]
  • Unit - Set level of Ice_Wall (Slowing) for Ice_Wall_CreatedUnit[1] to (Level of Ice Wall for Ice_Wall_Caster)
  • Unit - Set level of Ice_Wall (Immolation) for Ice_Wall_CreatedUnit[1] to (Level of Ice Wall for Ice_Wall_Caster)
  • Custom script: call RemoveLocation(udg_Ice_Wall_CreatingPoint[1])
  • For each (Integer A) from 1 to 5, do (Actions)
  • Loop - Actions
  • Set Ice_Wall_CreatingPoint[2] = ((Position of Ice_Wall_DummyUnit[2]) offset by 100.00 towards (Facing of Ice_Wall_DummyUnit[2]) degrees)
  • Unit - Move Ice_Wall_DummyUnit[2] instantly to Ice_Wall_CreatingPoint[2]
  • Unit - Create 1 Ice_Wall for Ice_Wall_Player at Ice_Wall_CreatingPoint[2] facing (Random angle) degrees
  • Set Ice_Wall_CreatedUnit[2] = (Last created unit)
  • Unit - Add a 15.00 second Water Elemental expiration timer to Ice_Wall_CreatedUnit[2]
  • Animation - Play Ice_Wall_CreatedUnit[2]'s birth animation
  • Unit - Add Ice_Wall (Immolation) to Ice_Wall_CreatedUnit[2]
  • Unit - Add Ice_Wall (Slowing) to Ice_Wall_CreatedUnit[2]
  • Unit - Set level of Ice_Wall (Slowing) for Ice_Wall_CreatedUnit[2] to (Level of Ice Wall for Ice_Wall_Caster)
  • Unit - Set level of Ice_Wall (Immolation) for Ice_Wall_CreatedUnit[2] to (Level of Ice Wall for Ice_Wall_Caster)
  • Custom script: call RemoveLocation(udg_Ice_Wall_CreatingPoint[2])
 
and you don't really need those arrays... just using one variable is fine...

Just to clarify what Adiktuz is trying to say, your using array variables to store 2 instances when you can use normal variables for each instance.
Arrays take up more memory/space than normal variables.

  • ((Position of Ice_Wall_DummyUnit[2]) offset by 100.00
^ Leaks.
You should store the position of the dummy in a variable, then remove it
when your done.

Also, for efficiency:
  • Unit - Move Ice_Wall_DummyUnit[1] instantly to Ice_Wall_CreatingPoint[1]
  • Unit - Move Ice_Wall_DummyUnit[2] instantly to Ice_Wall_CreatingPoint[2]
"Move unit" is a very slow action.
Use these instead:

For Unit - Move Ice_Wall_DummyUnit[1] instantly to Ice_Wall_CreatingPoint[1]

JASS:
call SetUnitX(udg_Ice_Wall_DummyUnit[1], GetLocationX(udg_Ice_Wall_CreatingPoint[1]))
call SetUnitY(udg_Ice_Wall_DummyUnit[1], GetLocationY(udg_Ice_Wall_CreatingPoint[1]))

For Unit - Move Ice_Wall_DummyUnit[1] instantly to Ice_Wall_CreatingPoint[1]

You would do something similar.
The variable names are after the "udg" part.
Make sure after you change the arrays to normal
variables that you change the custom script.
 
he doesn't even need a variable for each instance...

  • Unit - Create 1 Ice_Wall_Dummy for Ice_Wall_Player at Ice_Wall_TargetedPoint facing (Ice_Wall_CasterFacing - 90.00) degrees
  • Set Ice_Wall_DummyUnit[1] = (Last created unit)
  • Unit - Add a 15.00 second Water Elemental expiration timer to Ice_Wall_DummyUnit[1]
  • Unit - Create 1 Ice_Wall_Dummy for Ice_Wall_Player at Ice_Wall_TargetedPoint facing (Ice_Wall_CasterFacing + 90.00) degrees
  • Set Ice_Wall_DummyUnit[2] = (Last created unit)
  • Unit - Add a 15.00 second Water Elemental expiration timer to Ice_Wall_DummyUnit[2]
  • Unit - Create 1 Ice_Wall for Ice_Wall_Player at Ice_Wall_TargetedPoint facing (Random angle) degrees
--> he can just use 1 unit variable for that...
 
Top