• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

How to revert the removal of Buffs?

Status
Not open for further replies.
Level 20
Joined
Jul 14, 2011
Messages
3,213
That's not an error.

You have to create a buff for ability 1 and a different buff for ability 2 (They can look the same, but have to be different) and set each buff accordingly. Otherwise they'll not stack.
 
That's not an error.

You have to create a buff for ability 1 and a different buff for ability 2 (They can look the same, but have to be different) and set each buff accordingly. Otherwise they'll not stack.

^
Tested it, the icon become invisable and the armor swap into the last cast. The buff itself become invisable so "unit - unit has buff true / false" might be bugged cause of that.
1) proven "need + buffs" statement was wrong
2) proven "thats not an error" statement was wrong


Can anyone who know and is smart answer the question please?
 
Level 20
Joined
Jul 14, 2011
Messages
3,213
I'll repeat

Base Ability 1 - Buff 1
Base Ability 2 - Buff 2

They're perfectly stackable.

Also, there's no need to indirectly say i'm not smart :)
 
Level 11
Joined
Nov 15, 2007
Messages
800
Only auras will stack with different buffs AFAIK. Any other ability won't stack its effects with the same base ability. You'll have to use a dummy ability based on a different kind of buff-placing spell, and add a negative "Item Armor Bonus" (I think that's what it's called?) ability with a timer to remove it.
 
Abilities based on the same base ability won't ever stack unless they are Aura based like Meticuluos said...

I would suggest that you use a custom buff system for that...

or basically, make the buff placers as dummy abilities based on channel... then maybe use aura based abilities for the real debuff which target is set to self... now when you cast the dummy ability, add the aura based debuff on that unit, and maybe have a system running on a timer loop to determine when you need to remove the buff already...

this way, you can have really several buffs of the same kind...
 
You'll have to use a dummy ability based on a different kind of buff-placing spell, and add a negative "Item Armor Bonus" (I think that's what it's called?) ability with a timer to remove it.

Abilities based on the same base ability won't ever stack unless they are Aura based like Meticuluos said...

I would suggest that you use a custom buff system for that...

or basically, make the buff placers as dummy abilities based on channel... then maybe use aura based abilities for the real debuff which target is set to self... now when you cast the dummy ability, add the aura based debuff on that unit, and maybe have a system running on a timer loop to determine when you need to remove the buff already...

this way, you can have really several buffs of the same kind...
First, sorry for being mean and indirectly say the guy was not smart, I had "one of those bad days" and I was arrogant.

Now about this idea of armor, I actually am using all the buff placer spells allready: slow , cripple , Fiery fire... and so on, untill nothing left to use.

The question is: If I will use : unit - add negetive armor - first it will be undispelledable, secondly, I use the buff itself to know when to remove the skill, checked any 1 second ( set ug = all units with the ARMOR MINUS, if they havent got the buff, remove the skill ) well, since all the skills on my map was allready used, is there a way to make channel force a buff that is unconnected to other buffs? or I don't know maybe some other solution that allows dispell?
 
It doesn't matter if the buff is from slow or cripple... If the base ability is both Faerie fire, the buff will never stack... buff stacking relies on the base ability and not the buff itself...

which is why I suggested to use Channel based ability, then use auras as the real debuff since aura based abilities stack...
 
It doesn't matter if the buff is from slow or cripple... If the base ability is both Faerie fire, the buff will never stack... buff stacking relies on the base ability and not the buff itself...

which is why I suggested to use Channel based ability, then use auras as the real debuff since aura based abilities stack...

AAAAAAAA now I get it, but in order to make this perfect, "unit cast purge"
"unit has aura based buff" "remove the aura" and another thing is that there is need to be a timer for each unit under the effect, how you do that?
 
You don't need a timer per unit... You can do this with only one timer + some arrays...

For the purge, its pretty straightforward... event would be unit starts effect, condition will be, casted ability is purge, for the actions, you can loop through all the custom buffs that the unit could have, if it has, then remove both the aura and the buff itself (because removing only the aura will leave the buff for about 2 seconds)
 
You don't need a timer per unit... You can do this with only one timer + some arrays...
what do you mean? a timer[99999] which is check if its used and if it is, you do I++ and go timer ?
or is there something more simple? and how do u connect among the unit with the buff and its own uniqe timer? don't tell me u can only Feiry Fire ONE unit at a time?
:]
 
Just make one timer loop function then just index every unit afflicted with buffs etc... basically do it with something like how spells which use timer loops + dynamic indexing do things...

Lets say that the unit has Armor Reducer ( gives the unit custom value of 3) and then it has Poison! ( gives the unit custom value of 2 )

Once unit is effected by more than 1 "custom buff" there is an error.
Do you have another plan?

EDIT: I understand that this kind of system will be totaly complax, once one armor reducer moved away, the other one will check its time and might stay, it probably will be totaly complax but I don't see any other way to do it
 
You will loop thru all possible buffs, and check them one by one, remove them one by one...

How can u do something like that? I mean, u can't just give the trigger "every one second pick all the units on the map, randomly ghess who need another second without knowing who, and then ghess random number of 1-10 to randomly let them have another second of the buff, then do that to the following buff."
Its totaly impossible unless u can make for each aura an invisable skill to the unit, the skill will represent how long you can put Armor Reducer on it, as it goes 5-4-3-3-2-1, remove the buff, the skill, and the dummy skill. The big question is which skill that leaves no buffs to use. So something like... Armor Passive (item) which have 100 levels (represent 100 seconds of maximum cast) and then make it each second -1 level till it reaches level 1. That way:
* the buff will be removed
* another cast will refresh the cooldown
* each skill will have dummy aura and a dummy timer (skill)
* there will be no error.

But that might cause imba lag unless you put it into random unit on game initiation and then remove it , since it make lag that may cause crush.
My thanks and this will guide all those who want to know.
 
You can make aura's invisible on the UI via the disabled spellbook method...

basically you just have one timer loop trigger which runs every .x seconds which loops thru all units affected by a custom buff (you can for like add them into a unit group when they get a custom buff), then check it for every custom buff... and you will need one real array per buff too to save the remaining time... reduce the remaining time for that buff every loop if the unit has the buff, then if it goes to 0.00, remove the custom aura (and the buff that it has too) then if they don't have any custom buff, remove them from the group...

you might need to remove the buff via custom script (using UnitRemoveAbility) as I don't think that you can remove a specific buff via GUI... you can also opt to remove the aura only, but that will leave the buff on the unit for about 2 seconds...

meaning, you will need to save into an array all possible custom buffs too for easier looping...

to do it, you will need knowledge on

-integer loops and arrays or hashtables, and maybe some basic knowledge on adding/removing abilities

then for the casting triggers, just use channel as a dummy ability for the hero then trigger the addition of the aura-based ability which acts as buff placer... if the unit already has that buff, just reset the duration for it...

I know it sounds like a lot of work, but that's what you need to do if you want stacking buffs...

if you don't want it, then live with the limitations of the abilities...
 
Last edited:
Status
Not open for further replies.
Top