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

Evasion limitations

Status
Not open for further replies.
Level 7
Joined
Nov 19, 2015
Messages
283
Just playing on adding some evasion into my map. I have a toggle ability that adds a evasion passive into a spellbook.

I remember reading somewhere that there are some limitations to using the in game evasion but I can't remember what it was. Is there any cons of using the in game evasion.

If so I may play on using damage detection for it instead unless there are more limitations with using damage detection as a form of evasion.
 
Level 10
Joined
Apr 4, 2010
Messages
509
Afaik, a missed attack makes no sound with in game evasion, but if an attack is "dodged" with a DDS, it will make a sound. DDS can block damage, but it can't avoid it, if you dodge a bash proc with a DDS, you will take no damage, but you will still be stunned.
 

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,197
I forget the exact limitations of evasion, but it could be any of the following.
  • Limited to 5% increments. Might be critical strike instead that has this limit instead.
  • Inaccurate at high but still <100 percentages. Always skews down so less than specified evasion amount. This is because the game has a limit on how many consecutive miss rolls you can receive and at high miss chance you hit this limit most of the time. Might also be critical strike has this limit instead.
  • Stacks by best source takes priority over all others. For example in melee if Demon Hunter has Level 1 evasion and an amulet of Evasion then he might as well not have Level 1 Evasion. At Level 2 Evasion he might as well not have the amulet.
I wrote some stuff about this long ago which I have forgotten. It is easily tested though. Place a dozen odd units with maximum attack speed around a test target with damage event and every second compute the proc rate. Which over 500 attacks per second on the target the results will be fairly accurate as to what the actual chances are.
 
Level 24
Joined
Aug 1, 2013
Messages
4,657
To calculate the evasion chance, you have this formula:
(Factors are 0 -> 1. If you want percents, then you multiply the result by 100.)

Evasion chance factor = 1 - hit chance factor
hit chance factor = (1 - evasion chance1) * (1 - evasion chance2) * (1 - evasion chance3) etc...

So if you have 3 abilities:
1: 20% evasion
2: 40% evasion
3: 60% evasion
You have 60+40+20 = 120% evasion?
Nope:

evasion chance factor = 1 - ((1-0.2) * (1-0.4) * (1-0.6))
= 1 - (0.8 * 0.6 * 0.4)
= 1 - 0.192
= 0.808
80,8% chance to evade.

80% because WC3 rounds it down to the nearest 5 for some reason.

It also seems that there is a limit on how many evasion calculations are done... but I don't know how high that limit is.

If you want accurate evasion and/or normal stacking numbers, then you would have to trigger them.
 
Level 12
Joined
Mar 13, 2012
Messages
1,121
I forget the exact limitations of evasion, but it could be any of the following.

Limited to 5% increments. Might be critical strike instead that has this limit instead.
Inaccurate at high but still <100 percentages. Always skews down so less than specified evasion amount. This is because the game has a limit on how many consecutive miss rolls you can receive and at high miss chance you hit this limit most of the time. Might also be critical strike has this limit instead.
Stacks by best source takes priority over all others. For example in melee if Demon Hunter has Level 1 evasion and an amulet of Evasion then he might as well not have Level 1 Evasion. At Level 2 Evasion he might as well not have the amulet.
Most of that is wrong.
Evasion does not use the pseudorandom system and therefore is not rounded to the nearest 5%, and also is not inaccurate at higher percentages and also does not have a maximum number of consecutive hits where evading an attack is guaranteed.

The evasion ability per se does not stack. Only the three different kinds of evading an attack can stack. Those three are:

-evasion ability on attacked unit
-blind buff on attacking unit
-higher ground evasion in favor of attacked unit

If a unit has more than one evasion ability the highest value among those abilities is used and the others are disregarded. Same applies to blind buffs.

So the complete evasion stacking formula is

chance to evade = 1 - ((1-x)*(1-y)*(1-z))

where
x is the highest evasion ability chance on the attacked unit
y is the highest blind buff miss chance on the attacking unit
z is the higher ground miss chance


@topic: The only limitations that come to my mind right now are that doomed, sleeping, sheeped and paused units have their evasion abilities disabled.
 
Last edited:
Level 7
Joined
Nov 19, 2015
Messages
283
Afaik, a missed attack makes no sound with in game evasion, but if an attack is "dodged" with a DDS, it will make a sound. DDS can block damage, but it can't avoid it, if you dodge a bash proc with a DDS, you will take no damage, but you will still be stunned.
Thats a good point. I guess I can just trigger the bashes.

According to this, evasion does stack, but each instance is separate, so they can easily get wasted when they proc at once.
Is this true for WC3 or just DotA since they may have coded it.

Most of that is wrong.
Evasion does not use the pseudorandom system and therefore is not rounded to the nearest 5%, and also is not inaccurate at higher percentages and also does not have a maximum number of consecutive hits where evading an attack is guaranteed.
Ok, so this is different from what everyone else is saying. Because of you sir, I'm going to have to test this now.

Also, BTW what does the missed attacks damage factor in the gameplay constants do. Its set at 0.5 default however missed attacks always do 0 damage for me. Does this affect the percentages?
 
Level 12
Joined
Mar 13, 2012
Messages
1,121
Is this true for WC3 or just DotA since they may have coded it.
Only true for DotA where this mechanic was recently introduced to mirror changes in DotA 2.
Also, BTW what does the missed attacks damage factor in the gameplay constants do. Does this affect the percentages?
This constant is only used by the weapon types Missile (Splash), Missile (Line), Artillery and Artillery (Line), so the area damage weapon types. If such a hit misses, it still deals that factor of the damage in the area.
 
Level 7
Joined
Nov 19, 2015
Messages
283
You sir are right. I don't know what the other guys are going on about and where they got their facts from.

I used this test map here.
View attachment Evasion test.w3x

Please check if I have done this correctly but I'm pretty sure everything is correct. It shows the Hit percentage and the number of consecutive hits and misses. Entering a number in the chat will colour code the text to check whether values are with X range of supposed evasion.
 

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,197
According to this, evasion does stack, but each instance is separate, so they can easily get wasted when they proc at once.

To calculate the evasion chance, you have this formula:
(Factors are 0 -> 1. If you want percents, then you multiply the result by 100.)

Evasion chance factor = 1 - hit chance factor
hit chance factor = (1 - evasion chance1) * (1 - evasion chance2) * (1 - evasion chance3) etc...

So if you have 3 abilities:
1: 20% evasion
2: 40% evasion
3: 60% evasion
You have 60+40+20 = 120% evasion?
Nope:

evasion chance factor = 1 - ((1-0.2) * (1-0.4) * (1-0.6))
= 1 - (0.8 * 0.6 * 0.4)
= 1 - 0.192
= 0.808
80,8% chance to evade.

80% because WC3 rounds it down to the nearest 5 for some reason.

It also seems that there is a limit on how many evasion calculations are done... but I don't know how high that limit is.

If you want accurate evasion and/or normal stacking numbers, then you would have to trigger them.
This is all wrong. Evasion does not stack with best source taking priority. DotA Allstars uses triggered evasion to allow it to stack from what I recall. They did that to fix the problem I mentioned where certain evasion sources become useless.

Critical strike does stack with each roll being applied separately. Only 1 critical can proc per attack and in the case of multiple procing it will be the first one (internal ordering) which is applied. Numbers will be shown for all procing critical attacks but damage will only come from the first. This does mean that items providing critical attack chance do have diminishing returns since the intersect probability is wasted.

Is this true for WC3 or just DotA since they may have coded it.
Just DotA. If your Demon Hunter with Level 1 Evasion picks up a Talisman of Evasion it will have exactly 15% chance to evade, the same as the Talisman.

Please check if I have done this correctly but I'm pretty sure everything is correct. It shows the Hit percentage and the number of consecutive hits and misses. Entering a number in the chat will colour code the text to check whether values are with X range of supposed evasion.
The results were?
 
Level 7
Joined
Nov 19, 2015
Messages
283
The evasion % match the (1 - hit%). I also checked the consecutive hits and misses and didn't see anything there but not quite sure.

I think I will just use a damage detection system and trigger on hit effects like bash since I don't have many in my map.

Where did people get the 5% blocks from? Surely someone would have tested this out before me. Unless I did it wrong.
 
Level 21
Joined
Mar 27, 2012
Messages
3,232
Also, BTW what does the missed attacks damage factor in the gameplay constants do. Its set at 0.5 default however missed attacks always do 0 damage for me. Does this affect the percentages?

I tested this recently and found that missed splash attacks only deal damage if the splash area(small) is over 0, regardless of actual distance. The damage factor being set in constants could explain why.
 
Status
Not open for further replies.
Top