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

Chilling Ground v1.2

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
  • Like
Reactions: xorkatoss and makai
Spell Description
What's This All About: A simple spell that uses the basic action of "Unit - Set Movement Speed". A spell that focuses mainly on disabling. No damage is applied if you use this spell on enemy unit (well unless you trigger a new one OR change the Storm Bolt damage or something).

Spell Name: Chilling Ground

Effect: Sends shiver to enemies in an AOE around targeted point. Once every second, the affected units' movespeed will be reduced (divided) for a set period of time that depends on the level of Chilling Ground. After the chilling effect wears off, there is a secondary effect which is "Frozen" the unit for 2 seconds. "Frozen" lasts 2 seconds at all level.

Ability Table:
Level 1 - Divide affected unit's movespeed by 2 per second | Lasts 2 seconds | 300 AOE | 15 seconds cooldown
Level 2 - Divide affected unit's movespeed by 3 per second | Lasts 3 seconds | 400 AOE | 14 seconds cooldown
Level 3 - Divide affected unit's movespeed by 4 per second | Lasts 4 seconds | 500 AOE | 13 seconds cooldown
Level 4 - Divide affected unit's movespeed by 5 per second | Lasts 5 seconds | 600 AOE | 12 seconds cooldown
TRIGGERS

  • INIT
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Visibility - Create an initially Enabled visibility modifier for Player 1 (Red) emitting Visibility across (Playable map area)
  • CG Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to [C]hilling Ground
    • Actions
      • Set Caster = (Triggering unit)
      • Set AbilityLevel = (Level of [C]hilling Ground for Caster)
      • Set TargetLoc = (Target point of ability being cast)
      • Set AoeCG = (200 + (100 x AbilityLevel))
      • Set DividePower = (1 + (1 x AbilityLevel))
      • Set Duration = (1 + (1 x AbilityLevel))
      • Custom script: set bj_wantDestroyGroup = true
      • Unit Group - Pick every unit in (Units within (Real(AoeCG)) of TargetLoc matching (((((Matching unit) is alive) Equal to True) and (((Matching unit) is A structure) Equal to False)) and (((Matching unit) belongs to an enemy of (Owner of (Triggering unit))) Equal to True))) and do (Actions)
        • Loop - Actions
          • Set PickedUnit = (Picked unit)
          • Custom script: set udg_HandleID = GetHandleId(udg_PickedUnit)
          • Set CurrentSpeed = (Integer((Current movement speed of PickedUnit)))
          • Set PickedLoc = (Position of PickedUnit)
          • Hashtable - Save Duration as (Key Duration) of HandleID in HashtableCG
          • Hashtable - Save CurrentSpeed as (Key CurrentSpeed) of HandleID in HashtableCG
          • Hashtable - Save DividePower as (Key DividePower) of HandleID in HashtableCG
          • Special Effect - Create a special effect attached to the origin of PickedUnit using Abilities\Spells\Undead\FrostNova\FrostNovaTarget.mdl
          • Special Effect - Destroy (Last created special effect)
          • Unit - Create 1 Dummy Universal for (Triggering player) at PickedLoc facing Default building facing degrees
          • Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
          • Unit - Set level of Chilling for (Last created unit) to AbilityLevel
          • Unit - Order (Last created unit) to Human Sorceress - Slow PickedUnit
          • Unit Group - Add PickedUnit to UnitGroupCG
          • Custom script: call RemoveLocation(udg_PickedLoc)
      • Trigger - Turn on CG Loop <gen>
      • Custom script: call RemoveLocation(udg_TargetLoc)
  • CG Loop
    • Events
      • Time - Every 1.00 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in UnitGroupCG and do (Actions)
        • Loop - Actions
          • Set PickedUnit = (Picked unit)
          • Custom script: set udg_HandleID = GetHandleId(udg_PickedUnit)
          • Set CurrentSpeed = (Load (Key CurrentSpeed) of HandleID from HashtableCG)
          • Set DividePower = (Load (Key DividePower) of HandleID from HashtableCG)
          • Set Duration = (Load (Key Duration) of HandleID from HashtableCG)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Duration Greater than 0
            • Then - Actions
              • Unit - Set PickedUnit movement speed to ((Real(CurrentSpeed)) / (Real(DividePower)))
              • Hashtable - Save (Duration - 1) as (Key Duration) of HandleID in HashtableCG
            • Else - Actions
              • Set PickedLoc = (Position of PickedUnit)
              • Unit - Create 1 Dummy Universal for Neutral Hostile at PickedLoc facing Default building facing degrees
              • Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
              • Unit - Order (Last created unit) to Human Mountain King - Storm Bolt PickedUnit
              • Unit - Set PickedUnit movement speed to (Real(CurrentSpeed))
              • Hashtable - Clear all child hashtables of child HandleID in HashtableCG
              • Unit Group - Remove PickedUnit from UnitGroupCG
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Number of units in UnitGroupCG) Equal to 0
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                • Else - Actions
              • Custom script: call RemoveLocation(udg_PickedLoc)
  • CG Setup
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Hashtable - Create a hashtable
      • Set HashtableCG = (Last created hashtable)
CHANGELOGS
v1.0
- First release

v1.1
- DividePower is loaded correctly
- TargetLoc leak has been removed
- Contains only 1 dummy in this map
- Removed StunnedLoc

v1.2
- Hashtable creation and visibility has been separated
- Reduce function calls
- Dummy has become Can't raise, Does not decay
- A debuff is placed on the unit (red tooltip on the unit instead of grey/green)
- Fixed Handle ID
-
Please give me a feedback or comments. Any will do, but flame will be reported. Give credits if you use.

Keywords:
Unit - Set Movement Speed, Frozen, Freeze, defskull, Chilling, Ground, Slow, Stun
Contents

Chilling Ground v1.2 (Map)

Reviews
12th Dec 2015 IcemanBo: Too long as NeedsFix. Rejected. Separate the hashtable creation to its own init trigger. The displayed text and visibility modifiers are not part of the ability. AoECG should be real and so should DividePower. Small...

Moderator

M

Moderator

12th Dec 2015
IcemanBo: Too long as NeedsFix. Rejected.


Separate the hashtable creation to its own init trigger. The displayed text and visibility modifiers are not part of the ability.
AoECG should be real and so should DividePower.
Small performance things int the cast trigger: Store triggering unit and picked into a variable. Also use an integer to store the picked unit's handle id and use the integer to store the values. Use triggering player instead of owner of unit.
Set the dummy to can't raise, does not decay so it is removed from the game earlier.
A debuff should make the movement speed text turn red.


Maker, Chilling Ground v1.2, 5th Sep 2011

Required changes:
Add importing instructions.
Save CurrentSpeed as real.
If you cast in in a place with no units, the looping trigger won't turn off.

Other notes:
You could improve the tooltips.
The shared global timer with 1 second interval can make the spell duration be between 1 and 3 seconds, if the default time is 2.
 
Level 37
Joined
Mar 6, 2006
Messages
9,240
You could change the tooltip, make it look more like in Blizzard's abilities.
Leak:
  • (Number of units in UnitGroupCG) Greater than 0
^Use bj_wantDestroyGroup before that for example.
You're not loading the DividePower, it uses the value from the first trigger:
  • Unit - Set (Picked unit) movement speed to ((Current movement speed of (Picked unit)) / (Real(DividePower)))
Filter structures out.
Setting movement speed with triggers makes the text in the tooltip remain gray. In my opinion it should be red meaning units are debuffed.
Remember to clear this leak:
  • Set TargetLoc = (Target point of ability being cast)
You could use only one dummy type, give it both abilities.
You could create the dummies for neutral passive.
You have three point variables, StunnedLoc, PickedLoc and TargetLoc. You only need two variables. Get Rid of one of them.


Pretty good job making it MUI, just fix the variable loading :)
 
Level 33
Joined
Mar 27, 2008
Messages
8,035
@Maker
Do using Conditions, also leaks ?

Other than that, I'll see what I can do to edit, thanks for commenting !

EDIT:
I'm using 2 different variables for StunnedLoc and PickedLoc is because I'm afraid they might get collided when it occurs at the same time
Like Unit A cast the spell and at the same time, the loop trigger occurs, setting up a new variable which is StunnedLoc
Or it will never occur ?

What's the difference between NP and NH ?

How to make that tooltips appear "red" if we're using "Unit - Set Movement Speed" action ?
I believe we can make it red by using a debuff-type spell such as Cripple but man, I did the reduction of MS based on trigger, not spells
(Or is this impossible to make it?)

EDIT 2:
Spell has been updated
Check it out at CHANGELOGS :D
 
Last edited:
Level 33
Joined
Mar 27, 2008
Messages
8,035
Why should I remove a group that I constantly using it ?
It doesn't called as "leak", is it ?
I believed that it is called as Global Variable ?
Where we create that variable by pressing CTRL + G
Not by setting it
Also, why did Maker said that using condition, leaks also
Does using condition, leaks ?
Just curious ^_^

Well, baassee, rate this please :D
And uhhh, any mod want to review this ?

EDIT:
Please answer my questions at the 7th post for me to update the spell and make it v1.3
 
Last edited:
Level 33
Joined
Mar 27, 2008
Messages
8,035
My bad, it doesn't leak since it's a pre-set group. For some reason I though it was not.

There's no fear of colliding variables, WC3 is single threaded and the point variables are not for permanent storage.

Use a negative buff to make the text red.
As I said it, I want to use the basic action of "Unit - Set Movement Speed"
If I use a dummy spell such as Cripple (for reduction of MS), I'll contaminated the idea of "simple use of Unit - Set Movement Speed"
don't expect a mod to review this so soon, there are still a lots of pending pages (and actually one of my systems were already being watched by Bribe a while ago, but he still hasn't reviewed it after I updated)

on the spell, it looks good, triggering looks good too. ^_^
Thanks for commenting :D
Where is Bribe :(
 
Level 22
Joined
Nov 14, 2008
Messages
3,256
If you want to modify the movement speed with triggers and you want a negative buff. Use Tornado Slow Aura as buff. Add the ability to the target unit and make it permanent. Although this is kind of hardcoded in GUI since two spells will bug the buff since it will be removed while maybe another instance is on. A simple index check can solve that.
 
Level 33
Joined
Mar 27, 2008
Messages
8,035
If you want to modify the movement speed with triggers and you want a negative buff. Use Tornado Slow Aura as buff. Add the ability to the target unit and make it permanent. Although this is kind of hardcoded in GUI since two spells will bug the buff since it will be removed while maybe another instance is on. A simple index check can solve that.

I have gone, deep into the hashtable temple, I should not, go back (indexing)
Haha, so let it be, green text then !
(Do players have their time to look at the color of text + while escaping enemies from killing them ?)
 
Level 2
Joined
Sep 23, 2011
Messages
11
If i use your spell can i add this to it?:)

Unit - Cause Caster to damage PickedUnit, dealing (200.00 + ((Real((Intelligence of Caster (Include bonuses)))) x (Real(AbilityLevel)))) damage of attack type Spells and damage type Normal
---
And if u can add a effect of an Ice projectile from Frost Wyrm to fall from the sky from like 3 Ice projectiles x Lv of ability just an option :p
btw the slow effect takes 1 sec to take effect can u change it to 0.25?
 
Last edited:
Top