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

help for a spell - freeze

so the only ability in warcraft 3 that can both stun and make invulnereable a unit is cyclone. I wonder how to make an ability called Freeze that will do that but without changing the height of the target unit. Also when i changed the buffs of the cyclone, it stopped working. when i cast on a unit nothing happens.

It's important that the unit must resume its current move order after automatically being unfrozen.
 

Uncle

Warcraft Moderator
Level 64
Joined
Aug 10, 2018
Messages
6,557
Storm Bolt with a custom buff + this:
  • Unit - Make (Target unit of ability being cast) Invulnerable
Then remove Invulnerability when the stun Buff ends.

You'll need a delay so that the Storm Bolt actually hits before making the target invulnerable. This could be done by using a Damage Event or a very short timer.

[Edit]
Like this:
  • Freeze Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Freeze (Custom)
    • Actions
      • Set Freeze_Unit = (Target unit of ability being cast)
      • Unit Group - Add Freeze_Unit to Freeze_Group
      • Animation - Change Freeze_Unit's animation speed to 0.00% of its original speed
      • Trigger - Turn on Freeze Loop <gen>
  • Freeze Loop
    • Events
      • Time - Every 0.01 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in Freeze_Group and do (Actions)
        • Loop - Actions
          • Set Freeze_Unit = (Picked unit)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Freeze_Unit has buff Freeze (Custom)) Equal to False
            • Then - Actions
              • Unit Group - Remove Freeze_Unit from Freeze_Group.
              • Animation - Change Freeze_Unit's animation speed to 100.00% of its original speed
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Number of units in Freeze_Group) Equal to 0
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Freeze_Unit has buff Divine Shield) Equal to False
                  • (Freeze_Unit has buff Cyclone) Equal to False
                  • (Freeze_Unit has buff Invulnerable) Equal to False
                  • (Freeze_Unit has buff Sleep) Equal to False
                • Then - Actions
                  • Unit - Make Freeze_Unit Vulnerable
                • Else - Actions
            • Else - Actions
              • Unit - Make Freeze_Unit Invulnerable
Storm Bolt has 0 missile speed so it hits "instantly". Freeze Loop should be Initially OFF. I check for other Invulnerability related buffs to make sure that we don't make our unit Vulnerable while it's under the effects of Divine Shield for example.

You can do some fun stuff with the trigger since you're in full control. I set the target's animation speed to 0% so that they literally freeze in place. This may interfere with other Animation Speed changes from outside triggers but you could always use a system for handling that.
 

Attachments

  • Freeze 1.w3m
    18.2 KB · Views: 1
Last edited:
Top