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

Best way to get slows to stack?

Status
Not open for further replies.
Level 7
Joined
Jun 14, 2009
Messages
235
I'm curious whats the best way to get multiple slows (from different abilities) to stack with each other.

I know that if you canst 2 different versions of the "Slow" spell, they don't stack with each other.

Is Slow Aura the only way? I'm aware I can use different abilities (Drunken Haze, Thunder Clap).

Would multiple Endurance Auras' with negative speed boost work?
 
Level 7
Joined
Jun 14, 2009
Messages
235
Auras would work in theory, not sure about negative Endurance aura though.

Slows from different base abilities (eg. not two abilities based on Slow) should stack in theory.

They do stack, but there's a limited number of them in the game. I need a solution that would allow me to add an effectively infinite amount of different slows (not really but in theory)
 
Level 7
Joined
Oct 19, 2015
Messages
286
As long as aura abilities use different buffs, any number of them will stack even if they are based on the same base ability. Of course, if you want a timed, dispellable buff, you'll need to use a buff system to apply the aura (or code it from scratch for every buff spell, but it's less work to use a system).
 
Level 24
Joined
Aug 1, 2013
Messages
4,657
Otherwise, you can code the movement speed and simply change their speed via data manipulation.

That is the most powerfull and effective method.
But it requires some serious coding skills.

An easier method is using the slow aura/tornado aura and remove it after a while.
It is also used as base ability for buffs.
Be aware that this will not allow you to change the movement speed without showing a buff.
 
Level 11
Joined
Aug 24, 2012
Messages
429
An alternative method is to use Slow Poison with the stacking field ticked for Attack or Movement Speed (whichever you want it to slow, you can do both at once). This will allow the slow to stack from different units with this ability when attacking the same enemy unit - let's say a Dryad's attack slows movement speed by 20%, 3 Dryads attacking the same Abomination would slow its movement speed by 60% in total for the duration of the poison.

The downside of this is that Posion is not dispellable and one unit will not cause the slow to stack on its own. I think Parasite also has a field for stacking Attack and Movement speed, not sure if it actually works but this would give you a dispellable, autocastable slow. You will need to use a dummy unit for the unit that spawns upon the death of the host.

Frost Arrows might also work, not sure if they have stacking fields or not.
 
Level 5
Joined
Mar 6, 2015
Messages
130
easy way
first method: use Tornado Slow Aura but manipulate its data code
second method is hard to create use channel Ability and add it to enemy unit changing the level of channel means switching between stacks for example you want to create a spell that the victim`s movement speed decreased 10% per second for 5 sec
first thing you must do is Create an ability based on Channel remember we use that spell because of its visibility boolean however you add 5 level to it to satisfy our purpose (50% slow) then in the cast trigger you add last created ability to enemy unit and add him to a group then run the loop trigger that has periodic 1 second timer ,pick units and every time increase the slow ability for enemy unit then you can set an algorithm to Decrease the movement speed of unit with level of Slow ability like speed=speed-10*level of slow
 
Level 12
Joined
Jan 2, 2016
Messages
973
You could check my Movespeed modifying library (3-rd link in my signature) :)
It does both the slow (or speed-up), AND the buff for you.
Only downside is that it can't be dispelled - you'd have to trigger the dispell :p (There are functions in the library, that can end the speed modification before the duration is over)

For your purposes - you should use the "normal" type of modifier or the "special" type.
Difference is that the special type stacks, and all of the stacks end together, while with the normal type - each stack has its own time.

EDIT: Dispelling can easily be achieved like this:
Event: A unit starts the effect of ability
Condition: Ability being cast equal to (Abolish Magic or Abolish Magic (Neutral Hostile) or etc)
Actions:
If target of ability being cast is an ally then
call ForceEndByType(GetSpellTargetUnit(), "slow")
else
call ForceEndByType(GetSpellTargetUnit(), "boost")
 
Last edited:
Status
Not open for further replies.
Top