takatok
10-26-2009, 09:48 AM
Some quick things to note
The following is based upon current SVN of EQEMU code.
Its not meant to be a primer on how AC/mitigation was calculated in live
Differences between Live and EMU
The Interval AC system used on live most closely resembled a bell curve. That curve's top would vary between interval 1 (min hit) and 20 (max hit) based on your AC vs their Attack. The EQEMU system is more like a square button. Here is a bad representation of it, showing your the base chances based when AC exactly equals opponent's attack.
48%
|--------------------|
| | 46%
6% | |-------------
-------|
Min hit Interval 2-19 Max hit
There is 6% min hit chance, 46% max hit chance. and the other 48% is evenly spread between intervals 2-18. Since you don't have a bubble to move like on live, what happens is: As your AC rises percentages are taken off the max hit chance. and 1/3 of it is added to the min hit and the other 2/3 are added to I2-I19. For Example: If you have enough AC to reduce the max hit by 3%.. Then your min hit chance is 7% (+1), and the I2-I19 chance is 50% (+2), and max hit chance is 43% (-3). This system works in reverse as well. You can such bad AC that max hit goes UP by 3%. Taking 2% away from middle and 1% away from min hit. While this isn't quite the same as live (You won't ever see a peak of mostly I13/ I14 ), it is a fair approximation.
Nitty Gritty Numbers
The EQEMU system uses a sliding scale to figure out how much AC you need to push the numbers above around. The base figure is calculated by the following formula.
For levels 1-19 add 15 (total of 285 at 19)
For levels 20-49 add 30 (total of 1185 at 49)
For level 50 add 60 (total of 1245 at 50)
Lets call this number your ACScale.
Its important to remember the ACScale has nothing to do with your AC, mob's attack or how much AC you should have. It is simply a number to help make a sliding scale to balance low level and high level AC into one system.
Ok take your ACSCale above and divide it by 39 (for a less messy approximation you can use 40 and be pretty close) This is how much AC you need to decrease your max hit chance by 1% and add 1/3% to min hit and 2/3% to I2-I19.
Here is some concrete examples.
Bob is lvl 30 has an ACScale of 615. 615/39 = 15.77. So for every 15.77 AC bob gets, his chance for getting hit for MAX is reduced by 1%. The reverse of this is for every 15.77 attack the monster has increases his chance of getting hit for MAX by 1%. Remember the base chance when attack and AC are even is 46% for a MAX hit.
Sue is lvl 40 and her ACSCale is 915 (19*15 + 21*30 = 915).
915/39 = 23.46. So Sue needs 23.46 AC to decrease her chance of getting hit for max by 1%.
Note all these AC numbers are relative to a mobs attack. So in the case of Sue if she was exactly even with a mob's attack her chance of getting hit for MAX is 44% Suppose she then fights a mob a few levels lower whose attack is 100 less than the first mob. She now beats the mob's attack by 100 AC. This translates into 100/23.46 = 4.26% LESS chance of being hit for max.
The Long and the Short of it
Basically AC does work and it does work similiar (if not exactly) the same as live. However, like many things with EQEMU.. a lot of stress testing was done at higher levels while levels 1-40 have much less testing done, since no server has people spending such long times at these levels. Here is one example of why you might not notice AC working even though it is:
A LVL 40 warrior will have a base AC based on defense skill and level that has nothing to do his armor(his naked AC). To compare a 40 warrior in bronze vs cloth we just need to know the difference between bronze and cloth. Lets assume his Naked AC is 550.
Raw Silk armor (13 pieces) = 37 raw ac x 1.55 (warrior ac bonus) = 35.45 AC. Total AC = 585.45
Bronze armor (13 pieces) = 114 raw ac x1.55 = 176.7. Total AC = 726.7
Ok Lets assume he fights a mob whose attack exactly evens out his AC in all silk armor. ACScale of a Level 40 is 915. SO 915/39 = 23.46. The differnce is 726.7- 585.45 = 141.25. 141.25/23.46 = ~6% (6.02).
Silk Armor Warrior
Min Hit = 6%
Max Hit = 46%
Middle Interval = 48%
Bronze Armor Warrior
Min Hit = 8%
Max Hit = 40%
Middle Interval = 52%
So you can see the bronze warrior is getting hit for less. It just might not be extremely noticeable without some large parsing to detect the pattern.
Bapo 29 Magician
The following is based upon current SVN of EQEMU code.
Its not meant to be a primer on how AC/mitigation was calculated in live
Differences between Live and EMU
The Interval AC system used on live most closely resembled a bell curve. That curve's top would vary between interval 1 (min hit) and 20 (max hit) based on your AC vs their Attack. The EQEMU system is more like a square button. Here is a bad representation of it, showing your the base chances based when AC exactly equals opponent's attack.
48%
|--------------------|
| | 46%
6% | |-------------
-------|
Min hit Interval 2-19 Max hit
There is 6% min hit chance, 46% max hit chance. and the other 48% is evenly spread between intervals 2-18. Since you don't have a bubble to move like on live, what happens is: As your AC rises percentages are taken off the max hit chance. and 1/3 of it is added to the min hit and the other 2/3 are added to I2-I19. For Example: If you have enough AC to reduce the max hit by 3%.. Then your min hit chance is 7% (+1), and the I2-I19 chance is 50% (+2), and max hit chance is 43% (-3). This system works in reverse as well. You can such bad AC that max hit goes UP by 3%. Taking 2% away from middle and 1% away from min hit. While this isn't quite the same as live (You won't ever see a peak of mostly I13/ I14 ), it is a fair approximation.
Nitty Gritty Numbers
The EQEMU system uses a sliding scale to figure out how much AC you need to push the numbers above around. The base figure is calculated by the following formula.
For levels 1-19 add 15 (total of 285 at 19)
For levels 20-49 add 30 (total of 1185 at 49)
For level 50 add 60 (total of 1245 at 50)
Lets call this number your ACScale.
Its important to remember the ACScale has nothing to do with your AC, mob's attack or how much AC you should have. It is simply a number to help make a sliding scale to balance low level and high level AC into one system.
Ok take your ACSCale above and divide it by 39 (for a less messy approximation you can use 40 and be pretty close) This is how much AC you need to decrease your max hit chance by 1% and add 1/3% to min hit and 2/3% to I2-I19.
Here is some concrete examples.
Bob is lvl 30 has an ACScale of 615. 615/39 = 15.77. So for every 15.77 AC bob gets, his chance for getting hit for MAX is reduced by 1%. The reverse of this is for every 15.77 attack the monster has increases his chance of getting hit for MAX by 1%. Remember the base chance when attack and AC are even is 46% for a MAX hit.
Sue is lvl 40 and her ACSCale is 915 (19*15 + 21*30 = 915).
915/39 = 23.46. So Sue needs 23.46 AC to decrease her chance of getting hit for max by 1%.
Note all these AC numbers are relative to a mobs attack. So in the case of Sue if she was exactly even with a mob's attack her chance of getting hit for MAX is 44% Suppose she then fights a mob a few levels lower whose attack is 100 less than the first mob. She now beats the mob's attack by 100 AC. This translates into 100/23.46 = 4.26% LESS chance of being hit for max.
The Long and the Short of it
Basically AC does work and it does work similiar (if not exactly) the same as live. However, like many things with EQEMU.. a lot of stress testing was done at higher levels while levels 1-40 have much less testing done, since no server has people spending such long times at these levels. Here is one example of why you might not notice AC working even though it is:
A LVL 40 warrior will have a base AC based on defense skill and level that has nothing to do his armor(his naked AC). To compare a 40 warrior in bronze vs cloth we just need to know the difference between bronze and cloth. Lets assume his Naked AC is 550.
Raw Silk armor (13 pieces) = 37 raw ac x 1.55 (warrior ac bonus) = 35.45 AC. Total AC = 585.45
Bronze armor (13 pieces) = 114 raw ac x1.55 = 176.7. Total AC = 726.7
Ok Lets assume he fights a mob whose attack exactly evens out his AC in all silk armor. ACScale of a Level 40 is 915. SO 915/39 = 23.46. The differnce is 726.7- 585.45 = 141.25. 141.25/23.46 = ~6% (6.02).
Silk Armor Warrior
Min Hit = 6%
Max Hit = 46%
Middle Interval = 48%
Bronze Armor Warrior
Min Hit = 8%
Max Hit = 40%
Middle Interval = 52%
So you can see the bronze warrior is getting hit for less. It just might not be extremely noticeable without some large parsing to detect the pattern.
Bapo 29 Magician