• 🏆 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!
  • 🏆 Hive's 6th HD Modeling Contest: Mechanical is now open! Design and model a mechanical creature, mechanized animal, a futuristic robotic being, or anything else your imagination can tinker with! 📅 Submissions close on June 30, 2024. Don't miss this opportunity to let your creativity shine! Enter now and show us your mechanical masterpiece!🔗 Click here to enter!

How Disable Bladestorm Movement?

Status
Not open for further replies.
Level 20
Joined
Aug 29, 2012
Messages
841
I think you can start with something like this:

  • Bladestorm
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Bladestorm
    • Actions
      • Unit - Set (Triggering unit) movement speed to 1.00
Of course you'd need to revert back the speed once the effect is done, so maybe store the unit in a variable, apply a wait, then set the movement speed back again :)
Also for this to work you'd need to change the minimum speed in the gameplay constants, otherwise I don't think you can reduce it under 150 by default.
 

Uncle

Warcraft Moderator
Level 64
Joined
Aug 10, 2018
Messages
6,583
Assuming you're on 1.31+ you can stun the caster like so:
  • Events
    • Unit - A unit Starts the effect of an ability
  • Conditions
    • (Ability being cast) Equal to Bladestorm
  • Actions
    • Custom script: local unit caster = GetTriggerUnit()
    • Custom script: call BlzPauseUnitEx(caster, true)
    • Wait 7.00 seconds
    • Custom script: call BlzPauseUnitEx(caster, false)
    • Custom script: set caster = null
Note that this COULD have weird results if the caster dies and then revives before the 7.00 second Wait is finished. It depends if the BlzPauseUnitEx() stun gets removed when a unit dies or not.

To go into greater detail, this function works similar to the Disable Ability/Enable Ability functions in that it uses an integer Counter to track the number of times you've used this on an individual unit (+1 when stunned, -1 when unstunned). This Counter starts at 0 (nothing happened yet) and will Stun the unit while it's > 0 and Unstun the unit while it's <= 0. What that means is if you were to use this Stun function twice on a unit you would need to Unstun that unit twice to get rid of the effect.

Alternatively, you could try using Ensnare with a Dummy unit, I believe that ability can pierce through Bladestorm's Spell Immunity.

Another option is to trigger Bladestorm yourself which is not that difficult to do. Here's a non-MUI version I made a while ago:
Keep in mind I was pretty new to triggers back then so it might not be perfect :p.
 
Last edited:
Level 21
Joined
Dec 4, 2007
Messages
1,481
There is some other option:
Easiest is probably:
  • Untitled Trigger 001
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Bladestorm
    • Actions
      • Custom script: call SetUnitPropWindow(GetTriggerUnit(), 0)
To revert to default
Custom script: call GetUnitDefaultPropWindow(GetTriggerUnit())
but it doesn't work somehow
But you can just use the function again of course
Custom script: call SetUnitPropWindow(GetTriggerUnit(), 60)
 
Status
Not open for further replies.
Top