Log in

View Full Version : Another Agility Thread


Knuckle
09-02-2024, 08:53 PM
Was chatting with a guildie about loot and they said Ikky legs better than Dagarn legs for monk due to the agility. I had just acquired dagarn legs and I honestly had never heard AGI having any significant impact on p99 for any class. does anyone know the direct impact of agility, and what would say capping 255 agi vs 100 agi actually do for a level 60 monk when tanking a mob? I feel good about the Wurm Legs and don't plan on changing but curious if I have undervalued AGI in general.

zelld52
09-03-2024, 10:41 AM
agi doesnt have the same returns on mitigation as hard AC does. so if something has way more AC (20 more AC on dagarn legs than ikky legs) its the clear winner

zelld52
09-03-2024, 10:42 AM
honestly, it doesnt matter on a monk. monks should be focused on learning to pull and not gearing imo

Knuckle
09-03-2024, 12:21 PM
agi doesnt have the same returns on mitigation as hard AC does. so if something has way more AC (20 more AC on dagarn legs than ikky legs) its the clear winner

That's what I've heard I just wish there was some data I could reference directly. I don't doubt the consensus. There would be more talk about gear with AGI if it had significant value. Just wish I knew what that value was.

And yeah overall its less about this specific instance and more overall, when does agi provide value, when does it beat out ac etc. Some are saying agi specifically effects monk dodge/ac differently from other classes, I don't disagree but imagine its still a negligible amount.

busted
09-03-2024, 01:07 PM
The only person I've ever seen actually trying to parse this was Kankersaur

https://www.youtube.com/watch?v=fYz1PVFbpAw

We need more people with parsers giving this a test.

From my anecdotal experience after I got a https://wiki.project1999.com/Helmet_of_the_Crawler I noticed I got hit way less. Maybe it's all in my head tho lol. I can't tell if it's the AC or the + 20 agi or both.

When you buff AGI, your AC stat bumps up. So it does *something*. Just not clear on how much it helps or if its the same/better than raw AC.

So I DO think AGI helps but have no "hard data" to prove it.

Maybe others have similar experiences they can share

Vivitron
09-03-2024, 02:12 PM
The only attempt I've seen to parse it was Meathookk's. His whole document is interesting; his agi summary is:

Summary: AGI improves avoidance in PvP. It also factors into Avoidance AC. However, past an easily
attainable point, AGI has no discernable impact in PvE.

https://www.project1999.com/forums/showthread.php?t=389704

But he does find that pvp hit rate involves checking the attacker's dex vs the defender's agi. There's a part of me that thinks "it seems unlikely that the emulator would use different combat systems between pvp and pve; I should look carefully for an alternate explanation." For example, while his parse shows no difference between 180 and 230 agi against a cliff golem, maybe it is relevant against stronger or weaker npcs. That said, I haven't been chasing agi on any of my characters.

Jimjam
09-03-2024, 02:32 PM
When you buff AGI, your AC stat bumps up. So it does *something*. Just not clear on how much it helps or if its the same/better than raw AC.


displayed AC is a weird kinda composite stat that sorta guestimates roughly your overall tankiness... it isn't a value actually used in any melee equations.

Snaggles
09-03-2024, 05:01 PM
It’s not the worst stat, better than CHA, INT or WIS.
A little AC is better than nothing. Barely though.

Vivitron
09-03-2024, 05:08 PM
One more thing to note, avatar proc gives you another 100 agi.

Snaggles
09-03-2024, 05:45 PM
One more thing to note, avatar proc gives you another 100 agi.

Maybe not the best marketing for primal weapons but a fact is a fact.

Jimjam
09-05-2024, 01:57 PM
25% hp you have 75% agi, so 100 agi is super useful for that

20% hp you have 50% agi, so if you have 200 agi even better.

IDK if that changes by level or scales differently at different agi etc - just looking at the lvl 8 halfling war I am using atm.

It is also handy to have a truck tonne of agi (and str over encumberance) if you are fighting things that cast cripple. Like you want at least 150 to avoid penalty.

Knuckle
09-07-2024, 12:25 PM
The only attempt I've seen to parse it was Meathookk's. His whole document is interesting; his agi summary is:



https://www.project1999.com/forums/showthread.php?t=389704

But he does find that pvp hit rate involves checking the attacker's dex vs the defender's agi. There's a part of me that thinks "it seems unlikely that the emulator would use different combat systems between pvp and pve; I should look carefully for an alternate explanation." For example, while his parse shows no difference between 180 and 230 agi against a cliff golem, maybe it is relevant against stronger or weaker npcs. That said, I haven't been chasing agi on any of my characters.

Ok I can actually legitimately step in here on this one. Null was a developer from the VZTZ PVP Server that came here during Red 99's heyday. I talked to him occasionally as I used to test spell resists and melee dmg with him from time to time prior to red. At some point when I wasnt even playing EQ I do recall him saying they wanted AGI to have a purpose in PVP and that it would translate to avoidance, so this fits perfectly.

Knuckle
09-07-2024, 12:28 PM
25% hp you have 75% agi, so 100 agi is super useful for that

20% hp you have 50% agi, so if you have 200 agi even better.

IDK if that changes by level or scales differently at different agi etc - just looking at the lvl 8 halfling war I am using atm.

It is also handy to have a truck tonne of agi (and str over encumberance) if you are fighting things that cast cripple. Like you want at least 150 to avoid penalty.

Yes I do understand the logic behind avoiding the sub 75 AGI penalties, but for my purposes of stacking AGI over AC the argument seems weak. based on the meathook parses I am confident in ignoring AGI beyond the bare minimum to avoid penalties as mentioned.

Snaggles
09-07-2024, 10:13 PM
Yes I do understand the logic behind avoiding the sub 75 AGI penalties, but for my purposes of stacking AGI over AC the argument seems weak. based on the meathook parses I am confident in ignoring AGI beyond the bare minimum to avoid penalties as mentioned.

All agility arguments are by nature weak. Sounds like you figured it out.

If I had to guess, 99/100 people are wearing Ikky legs for fashion, not mitigation. You could raid in Wu’s armor (many did) and do just fine assuming you know what to do. People like to split hairs on p99 because we have years to raid the same content ad nauseam.

In a scenario where you could compare two players, one with 255 Agil and one with 100, the difference will not only be the agility. Further gearing for agil for the AC translated benefit will force someone to skip over other stats.

Most tanks don’t cap it with Focus, I’ve never asked for it with my knight. I’ve never given it with my shaman. Maybe there is someone out there looking for the last 20ac or whatever. I’m just not sure it’s gonna help much beyond a placebo.

PestilentCancer
09-11-2024, 11:49 AM
agi doesnt have the same returns on mitigation as hard AC does.

Agility gives avoidance, not mitigation.

displayed AC is a weird kinda composite stat that sorta guestimates roughly your overall tankiness

Your displayed ac is a composite stat of "mitigation" and "avoidance". Mitigation ac is the raw ac from gear and buffs. It, basically, makes mobs hit you for less damage.

Avoidance comes from Agility, the Defense skill, and (possibly) Iksar ac bonus. It, basically, makes mobs "miss" you with melee attacks more often.

When you buff AGI, your AC stat bumps up. So it does *something*. Just not clear on how much it helps or if its the same/better than raw AC.

Agility gives you 1 avoidance ac for every 3 agility points, this is why you gain ac when your agility is buffed. Same with gaining more ac than you thought when putting on a piece of gear that has ac and agility on it. It is, very much, not the same as raw ac. Avoidance is definitely a bit tougher to get a lot of. I don't know about "better". Regardless, attacks missing entirely is pretty cool.

The only attempt I've seen to parse it was Meathookk's

maybe it is relevant against stronger or weaker npcs

Levels are a determining factor in how well your avoidance works. Red, Yellow, and even cons almost, ignore it. Xp viable blue cons, and lower, is really where it shines. With regards to the mentioned parse, cliff golems at 60 are too close to your level for accurate results. Not too mention, 180 agi to 230 agi is like 10 avoidance ac at best. Diminishing returns after 200, iirc. 180 agi to 200 is around 6 or 7 ac, 200 to 230 would be a negligible amount. 10ish more ac is better, but you will never see how much better it is against something that close in level.

The only person I've ever seen actually trying to parse this was Kankersaur

https://www.youtube.com/watch?v=fYz1PVFbpAw

We need more people with parsers giving this a test


Hey! One of my crappy vids! I wish I still had Kank's old logs :(

Would love to see some more parses, if anyone decides nerd out on it.

Knuckle
09-17-2024, 11:56 AM
One day we will know the truth of agility in PVE. The exact formula. I wish we could do a heist. Because right now agility just pisses me off!

astuce999
09-17-2024, 02:57 PM
Levels are a determining factor in how well your avoidance works. Red, Yellow, and even cons almost, ignore it. Xp viable blue cons, and lower, is really where it shines. With regards to the mentioned parse, cliff golems at 60 are too close to your level for accurate results. Not too mention, 180 agi to 230 agi is like 10 avoidance ac at best. Diminishing returns after 200, iirc. 180 agi to 200 is around 6 or 7 ac, 200 to 230 would be a negligible amount. 10ish more ac is better, but you will never see how much better it is against something that close in level.

This is the closest to truth I've ever seen it explained, well done!

Astuce

Jimjam
09-17-2024, 03:20 PM
Steel Warrior forum discussion of agility.

Note this is AFTER the sol/pop revamp.

https://web.archive.org/web/20041214164415/http://www.thesteelwarrior.org/forum/archive/index.php/t-379.html

What does Agi do for AC? Here you go.
Origianlly posted by Sylphan to various places.

Re: On determining AC
--------------------------------------------------------------------------------


Ok I finished the agility table.
Here's the full formula for AC:

Avoidance = (T from table) + trunc(Defense * 16/9), but never less than 0
Caster Mitigation = trunc(Buffs/3) + trunc(Defense/2) + (Equipment + 1)
Anyone else's Mitigation = trunc(Buffs/4) + trunc(Defense/3) + trunc(Equipment * 4/3)
Displayed AC = trunc( (Avoidance + Mitigation) * 1000 / 847 )

Caster means Enchanter, Magician, Necromancer, Wizard.
Defense is the character's Defense skill.
Equipment is just the sum total of the raw AC from everything worn. Don't forget the range slot.
Buffs is the sum of the bonuses from all buffs. You'd have to check your spdat file to see those numbers, but for reference Skin Like Wood adds 15 and Skin Like Nature adds 55.
T comes from the agility table below, use the column corresponding to the character's level.
trunc means truncate, to remove the fraction; keep only the integer part of the value.

Some qualifications: Iksars get a bonus, I'm not sure how much but I suspect it might be adding (Level - 1) to Mitigation. The formula hasn't actually been tested on Beastlords or Vah Shir yet. The formula doesn't work for monks because of the weight limit thing, but it should work if they keep their weight under the limit. There is a 'never less than 0' issue with Mitigation too, but it only matters if you get hit with an AC debuff while wearing little or no equipment... it won't affect most people. The formula doesn't work right if your character has been drinking but it works in every other situation, including illusions, hunger, thirst, drowning, encumbered, low health, low stamina, stacked buffs and debuffs, and resurrection sickness. I have no proof that these are the actual Avoidance and Mitigation values, there isn't even any proof that Avoidance and Mitigation are ever used seperately in actual combat calculations... I just know that the first few factors are rounded up to 0 and are the same for all classes, so it seemed like a sensible division.


The table for T:

Level ..... -- 40+:20-39:7-19:1-6
---------------------------------
Agi 1...... ---24 :-24 :-24 :-24
Agi 2-3.... ---23 :-23 :-23 :-23
Agi 4...... ---22 :-22 :-22 :-22
Agi 5-6.... ---21 :-21 :-21 :-21
Agi 7-8.... ---20 :-20 :-20 :-20
Agi 9...... ---19 :-19 :-19 :-19
Agi 10-11.. ---18 :-18 :-18 :-18
Agi 12..... ---17 :-17 :-17 :-17
Agi 13-14.. ---16 :-16 :-16 :-16
Agi 15-16.. ---15 :-15 :-15 :-15
Agi 17..... ---14 :-14 :-14 :-14
Agi 18-19.. ---13 :-13 :-13 :-13
Agi 20..... ---12 :-12 :-12 :-12
Agi 21-22.. ---11 :-11 :-11 :-11
Agi 23-24.. ---10 :-10 :-10 :-10
Agi 25..... -- -9 : -9 : -9 : -9
Agi 26-27.. -- -8 : -8 : -8 : -8
Agi 28..... -- -7 : -7 : -7 : -7
Agi 29-30.. -- -6 : -6 : -6 : -6
Agi 31-32.. -- -5 : -5 : -5 : -5
Agi 33..... -- -4 : -4 : -4 : -4
Agi 34-35.. -- -3 : -3 : -3 : -3
Agi 36..... -- -2 : -2 : -2 : -2
Agi 37-38.. -- -1 : -1 : -1 : -1
Agi 39-65.. -- 00 : 00 : 00 : 00
Agi 66-70.. -- 01 : 01 : 01 : 01
Agi 71-74.. -- 05 : 05 : 05 : 05
Agi 75..... -- 39 : 33 : 23 : 09
Agi 76-79.. -- 40 : 33 : 23 : 10
Agi 80..... -- 41 : 34 : 24 : 11
Agi 81-85.. -- 42 : 35 : 25 : 12
Agi 86-90.. -- 42 : 36 : 26 : 12
Agi 91-95.. -- 43 : 36 : 26 : 13
Agi 96-99.. -- 44 : 37 : 27 : 14
Agi 100.... -- 45 : 38 : 28 : 15
Agi 101-105 -- 45 : 39 : 29 : 15
Agi 106-110 -- 46 : 39 : 29 : 16
Agi 111-115 -- 47 : 40 : 30 : 17
Agi 116-119 -- 47 : 41 : 31 : 17
Agi 120.... -- 48 : 42 : 32 : 18
Agi 121-125 -- 49 : 42 : 32 : 19
Agi 126-130 -- 50 : 43 : 33 : 20
Agi 131-135 -- 50 : 44 : 34 : 20
Agi 136-139 -- 51 : 44 : 34 : 21
Agi 140.... -- 52 : 45 : 35 : 22
Agi 141-145 -- 53 : 46 : 36 : 23
Agi 146-150 -- 53 : 47 : 37 : 23
Agi 151-155 -- 54 : 47 : 37 : 24
Agi 156-159 -- 55 : 48 : 38 : 25
Agi 160.... -- 56 : 49 : 39 : 26
Agi 161-165 -- 56 : 50 : 40 : 26
Agi 166-170 -- 57 : 50 : 40 : 27
Agi 171-175 -- 58 : 51 : 41 : 28
Agi 176-179 -- 58 : 52 : 42 : 28
Agi 180.... -- 59 : 53 : 43 : 29
Agi 181-185 -- 60 : 53 : 43 : 30
Agi 186-190 -- 61 : 54 : 44 : 31
Agi 191-195 -- 61 : 55 : 45 : 31
Agi 196-199 -- 62 : 55 : 45 : 32
Agi 200-219 -- 63 : 56 : 46 : 33
Agi 220-239 -- 64 : 57 : 47 : 34
Agi 240-255 -- 65 : 58 : 48 : 35


____________________________
____________________________
(Korak)My own personal observations:
Agility does not add to the "mitigation" portion of AC. So, in theory, it should allow you to avoid more hits. The mitigation portion being factored into an equation to determin n=1to20 in the DB+(1-20)DI, and the avoidance being factored into an equation to determine if you are hit. I believe the special skill checks (block/parry/dodge/riposte) are done sepatately and distinct from either of the other two computations. I can't link anything, but iirc testing has shown that riposte rates were constant regardless of mob. I really wish the two numbers were still displayed separately as that would allow for easier analysis. With carefully controlled and recorded tests (and a bit of math) it could be determined what effect agility has on hit rate. I suspect it is rather small, on the order of 1% in significance, since you are only talking about a 25pt increase in avoidance AC for going from 75agi to 240+ (unknown to me how it scales after 255). Therefore, situations might dictate that there are better uses for your buff slots. I still have too many other goals in the game to pursue such testing. Perhaps someone else will take up the banner.


The infamous agility t table.

Knuckle
09-17-2024, 03:27 PM
Steel Warrior forum discussion of agility.

Note this is AFTER the sol/pop revamp.

https://web.archive.org/web/20041214164415/http://www.thesteelwarrior.org/forum/archive/index.php/t-379.html

What does Agi do for AC? Here you go.
Origianlly posted by Sylphan to various places.

Re: On determining AC
--------------------------------------------------------------------------------


Ok I finished the agility table.
Here's the full formula for AC:

Avoidance = (T from table) + trunc(Defense * 16/9), but never less than 0
Caster Mitigation = trunc(Buffs/3) + trunc(Defense/2) + (Equipment + 1)
Anyone else's Mitigation = trunc(Buffs/4) + trunc(Defense/3) + trunc(Equipment * 4/3)
Displayed AC = trunc( (Avoidance + Mitigation) * 1000 / 847 )

Caster means Enchanter, Magician, Necromancer, Wizard.
Defense is the character's Defense skill.
Equipment is just the sum total of the raw AC from everything worn. Don't forget the range slot.
Buffs is the sum of the bonuses from all buffs. You'd have to check your spdat file to see those numbers, but for reference Skin Like Wood adds 15 and Skin Like Nature adds 55.
T comes from the agility table below, use the column corresponding to the character's level.
trunc means truncate, to remove the fraction; keep only the integer part of the value.

Some qualifications: Iksars get a bonus, I'm not sure how much but I suspect it might be adding (Level - 1) to Mitigation. The formula hasn't actually been tested on Beastlords or Vah Shir yet. The formula doesn't work for monks because of the weight limit thing, but it should work if they keep their weight under the limit. There is a 'never less than 0' issue with Mitigation too, but it only matters if you get hit with an AC debuff while wearing little or no equipment... it won't affect most people. The formula doesn't work right if your character has been drinking but it works in every other situation, including illusions, hunger, thirst, drowning, encumbered, low health, low stamina, stacked buffs and debuffs, and resurrection sickness. I have no proof that these are the actual Avoidance and Mitigation values, there isn't even any proof that Avoidance and Mitigation are ever used seperately in actual combat calculations... I just know that the first few factors are rounded up to 0 and are the same for all classes, so it seemed like a sensible division.


The table for T:

Level ..... -- 40+:20-39:7-19:1-6
---------------------------------
Agi 1...... ---24 :-24 :-24 :-24
Agi 2-3.... ---23 :-23 :-23 :-23
Agi 4...... ---22 :-22 :-22 :-22
Agi 5-6.... ---21 :-21 :-21 :-21
Agi 7-8.... ---20 :-20 :-20 :-20
Agi 9...... ---19 :-19 :-19 :-19
Agi 10-11.. ---18 :-18 :-18 :-18
Agi 12..... ---17 :-17 :-17 :-17
Agi 13-14.. ---16 :-16 :-16 :-16
Agi 15-16.. ---15 :-15 :-15 :-15
Agi 17..... ---14 :-14 :-14 :-14
Agi 18-19.. ---13 :-13 :-13 :-13
Agi 20..... ---12 :-12 :-12 :-12
Agi 21-22.. ---11 :-11 :-11 :-11
Agi 23-24.. ---10 :-10 :-10 :-10
Agi 25..... -- -9 : -9 : -9 : -9
Agi 26-27.. -- -8 : -8 : -8 : -8
Agi 28..... -- -7 : -7 : -7 : -7
Agi 29-30.. -- -6 : -6 : -6 : -6
Agi 31-32.. -- -5 : -5 : -5 : -5
Agi 33..... -- -4 : -4 : -4 : -4
Agi 34-35.. -- -3 : -3 : -3 : -3
Agi 36..... -- -2 : -2 : -2 : -2
Agi 37-38.. -- -1 : -1 : -1 : -1
Agi 39-65.. -- 00 : 00 : 00 : 00
Agi 66-70.. -- 01 : 01 : 01 : 01
Agi 71-74.. -- 05 : 05 : 05 : 05
Agi 75..... -- 39 : 33 : 23 : 09
Agi 76-79.. -- 40 : 33 : 23 : 10
Agi 80..... -- 41 : 34 : 24 : 11
Agi 81-85.. -- 42 : 35 : 25 : 12
Agi 86-90.. -- 42 : 36 : 26 : 12
Agi 91-95.. -- 43 : 36 : 26 : 13
Agi 96-99.. -- 44 : 37 : 27 : 14
Agi 100.... -- 45 : 38 : 28 : 15
Agi 101-105 -- 45 : 39 : 29 : 15
Agi 106-110 -- 46 : 39 : 29 : 16
Agi 111-115 -- 47 : 40 : 30 : 17
Agi 116-119 -- 47 : 41 : 31 : 17
Agi 120.... -- 48 : 42 : 32 : 18
Agi 121-125 -- 49 : 42 : 32 : 19
Agi 126-130 -- 50 : 43 : 33 : 20
Agi 131-135 -- 50 : 44 : 34 : 20
Agi 136-139 -- 51 : 44 : 34 : 21
Agi 140.... -- 52 : 45 : 35 : 22
Agi 141-145 -- 53 : 46 : 36 : 23
Agi 146-150 -- 53 : 47 : 37 : 23
Agi 151-155 -- 54 : 47 : 37 : 24
Agi 156-159 -- 55 : 48 : 38 : 25
Agi 160.... -- 56 : 49 : 39 : 26
Agi 161-165 -- 56 : 50 : 40 : 26
Agi 166-170 -- 57 : 50 : 40 : 27
Agi 171-175 -- 58 : 51 : 41 : 28
Agi 176-179 -- 58 : 52 : 42 : 28
Agi 180.... -- 59 : 53 : 43 : 29
Agi 181-185 -- 60 : 53 : 43 : 30
Agi 186-190 -- 61 : 54 : 44 : 31
Agi 191-195 -- 61 : 55 : 45 : 31
Agi 196-199 -- 62 : 55 : 45 : 32
Agi 200-219 -- 63 : 56 : 46 : 33
Agi 220-239 -- 64 : 57 : 47 : 34
Agi 240-255 -- 65 : 58 : 48 : 35


____________________________
____________________________
(Korak)My own personal observations:
Agility does not add to the "mitigation" portion of AC. So, in theory, it should allow you to avoid more hits. The mitigation portion being factored into an equation to determin n=1to20 in the DB+(1-20)DI, and the avoidance being factored into an equation to determine if you are hit. I believe the special skill checks (block/parry/dodge/riposte) are done sepatately and distinct from either of the other two computations. I can't link anything, but iirc testing has shown that riposte rates were constant regardless of mob. I really wish the two numbers were still displayed separately as that would allow for easier analysis. With carefully controlled and recorded tests (and a bit of math) it could be determined what effect agility has on hit rate. I suspect it is rather small, on the order of 1% in significance, since you are only talking about a 25pt increase in avoidance AC for going from 75agi to 240+ (unknown to me how it scales after 255). Therefore, situations might dictate that there are better uses for your buff slots. I still have too many other goals in the game to pursue such testing. Perhaps someone else will take up the banner.


The infamous agility t table.

That's cool but we would need confirmation if P99 are using a post POP agi table.

Jimjam
09-17-2024, 03:47 PM
On live they have split AC into avoidance and mitigation.

Interestingly, while using a monster shroud if you spend monster AA on Agi your shroud’s mitigation improves. Dunno whether that is just a shroud thing, a modern eq thing or what. I just thought it was neat :)

Jimjam
09-17-2024, 03:50 PM
That's cool but we would need confirmation if P99 are using a post POP agi table.

The fact it caps out at 40+ and 255 agi suggests to me that Korak Sarathai derived this before the revamp, or it is unchanged from pre-kunark.

Jimjam
09-17-2024, 04:40 PM
That's cool but we would need confirmation if P99 are using a post POP agi table.

Found a similar table from early 2002 meaning it is from before the great monk nerf.

https://web.archive.org/web/20020625231456/http://pub14.ezboard.com/fthesteelwarriorthearena.showMessage?topicID=1462. topic

As the changes focused on ac caps, the table predates the nerf and as i reasoned in a previous post it looks like it has been untouched since vanilla release I suggest p99 should be using a similar table for agi avoidance ac calculation.

greatdane
10-01-2024, 10:14 PM
The long and short of it is that agility gives nowhere near enough to ever care about or give anything up for. It isn't even worth a buff slot unless there are no other useful buffs available. Aside from the well-known breakpoint at 75 agility, the stat can be ignored entirely and the difference is invisible to the naked eye. It does almost nothing.

Salaryman
10-03-2024, 09:47 PM
Agility effects pvp making it the most important stat, I am now stacking agi because i play on a real man's server RED99

Snaggles
10-03-2024, 11:57 PM
*pretending to take notes*
That’s fascinating. Please go on.

Knuckle
10-13-2024, 01:02 AM
Found a similar table from early 2002 meaning it is from before the great monk nerf.

https://web.archive.org/web/20020625231456/http://pub14.ezboard.com/fthesteelwarriorthearena.showMessage?topicID=1462. topic

As the changes focused on ac caps, the table predates the nerf and as i reasoned in a previous post it looks like it has been untouched since vanilla release I suggest p99 should be using a similar table for agi avoidance ac calculation.

Now that is a good find! Feels like an archeology club digging up these old relics.

Jafir
11-06-2024, 10:31 PM
Classic/Kunark/Velious Agility gave both Avoidance and Mitigation AC. Whether or not the formula on P99 adheres to that, I do not know. Here is a reference to mid-Velious, which still had a hard cap on Mitigation AC:

defense_agility_bonus method
if GetAGI() < 40: # penalty
return (25 * (GetAGI() - 40)) / 40

if GetAGI() <= 60:
return 0

if GetAGI() <= 74:
bonus = 28 - (200 - GetAGI()) / 5
return 2 * bonus / 3

# so 75+
bonus = max(200 - GetAGI(), 0)
if GetLevel() >= 40:
bonus = 80 - bonus / 5
elif GetLevel() >= 20:
bonus = 70 - bonus / 5
elif GetLevel() >= 7:
bonus = 55 - bonus / 5
else:
bonus = 35 - bonus / 5
return 2 * bonus / 3

compute_defense method
skill = max(GetSkill(SkillDefense), 0)
bonus = 400 * skill / 225 + defense_agility_bonus()

if IsClient():
drunk = float(GetIntoxication() / 2)
if drunk > 20.0:
redux = min((110.0 - drunk) * 0.01, 1.0)
bonus = int(bonus * redux)

return max(bonus, 1)

ac method
item_ac = 0
for slot in range(0, 21):
item = GetItemPossession(slot)
if item.IsValid and item.GetItemClass() == ItemClassCommon:
item_ac = item_ac + item.GetItemAC()

if not IsMage():
bonus = 4 * item_ac / 3

if IsClient() and bonus > 6 * GetLevel() + 25:
bonus = 6 * GetLevel() + 25

weight_hardcap = 30
weight_softcap = 14

if GetLevel() > 59:
weight_hardcap = 45
weight_softcap = 24
elif GetLevel() > 54:
weight_hardcap = 40
weight_softcap = 20
elif GetLevel() > 50:
weight_hardcap = 38
weight_softcap = 18
elif GetLevel() > 44:
weight_hardcap = 36
weight_softcap = 17
elif GetLevel() > 29:
weight_hardcap = 34
weight_softcap = 16
elif GetLevel() > 14:
weight_hardcap = 32
weight_softcap = 15

if GetClass() == MONK:
weight = GetWeight()
if weight < weight_hardcap - 1:
weight_bonus = float(level + 5)
if weight > weight_softcap:
temp_mod = min(float(weight - weight_softcap) * 6.66667, 100.0)
weight_bonus = max(0.0, weight_bonus * ((100.0 - temp_mod) * 0.01))
bonus = bonus + int(weight_bonus * 11.0 * 0.1)

if bonus < 0:
bonus = 0

if GetClass() == MONK:
weight = GetWeight()
if weight > weight_hardcap + 1:
weight_penalty = level + 5
temp_mod = min(1.0, (float(weight) - 20.0) * 0.01)
bonus = bonus - int(temp_mod)

if GetClass() == ROGUE:
agi = GetAGI()
if agi > 75 and GetLevel() > 29:
LevelScaler = GetLevel() - 26
if agi >= 100:
LevelScaler = LevelScaler * 5
elif agi >= 90:
LevelScaler = LevelScaler * 4
elif agi >= 85:
LevelScaler = LevelScaler * 3
elif agi >= 80:
LevelScaler = LevelScaler * 2
tmp_bonus = LevelScaler / 4
bonus = bonus + min(12, tmp_bonus)

if GetRace() == IKSAR:
bonus = bonus + min(35, max(10, GetLevel())

if IsMage():
bonus = bonus + GetSkill(SkillDefense) / 2
else:
bonus = bonus + GetSkill(SkillDefense) / 3

if GetAGI() > 70:
bonus = bonus + GetAGI() / 20

if IsMage():
bonus = bonus + TotalEffect(SPA_AC) / 3
else:
bonus = bonus + TotalEffect(SPA_AC) / 4

if bonus < 0:
bonus = 0

if IsClient():
hardcap = 350
if GetClass() == WARRIOR and GetLevel() > 50:
hardcap = 430
if (GetClass() == PALADIN or GetClass() == SHADOWKNIGHT or GetClass() == BARD) and GetLevel() > 50
hardcap = 403
if (GetClass() == RANGER or GetClass() == ROGUE or GetClass() == MONK) and GetLevel() > 50
hardcap = 375
if bonus > hardcap:
bonus = hardcap

return bonus

That means you could have 12.75 Mitigation AC and 53.33 Avoidance AC from 255 Agility. Compared to 75 Agility where you get 3.75 Mitigation AC and 36.67 Avoidance AC.

Knuckle
11-06-2024, 10:43 PM
Would be cool if there was a dev response on how AGI works on p99. really hard to confirm if any effect here.

Jimjam
11-06-2024, 11:33 PM
Classic/Kunark/Velious Agility gave both Avoidance and Mitigation AC. Whether or not the formula on P99 adheres to that, I do not know. Here is a reference to mid-Velious, which still had a hard cap on Mitigation AC:

defense_agility_bonus method
if GetAGI() < 40: # penalty
return (25 * (GetAGI() - 40)) / 40

if GetAGI() <= 60:
return 0

if GetAGI() <= 74:
bonus = 28 - (200 - GetAGI()) / 5
return 2 * bonus / 3

# so 75+
bonus = max(200 - GetAGI(), 0)
if GetLevel() >= 40:
bonus = 80 - bonus / 5
elif GetLevel() >= 20:
bonus = 70 - bonus / 5
elif GetLevel() >= 7:
bonus = 55 - bonus / 5
else:
bonus = 35 - bonus / 5
return 2 * bonus / 3

compute_defense method
skill = max(GetSkill(SkillDefense), 0)
bonus = 400 * skill / 225 + defense_agility_bonus()

if IsClient():
drunk = float(GetIntoxication() / 2)
if drunk > 20.0:
redux = min((110.0 - drunk) * 0.01, 1.0)
bonus = int(bonus * redux)

return max(bonus, 1)

ac method
item_ac = 0
for slot in range(0, 21):
item = GetItemPossession(slot)
if item.IsValid and item.GetItemClass() == ItemClassCommon:
item_ac = item_ac + item.GetItemAC()

if not IsMage():
bonus = 4 * item_ac / 3

if IsClient() and bonus > 6 * GetLevel() + 25:
bonus = 6 * GetLevel() + 25

weight_hardcap = 30
weight_softcap = 14

if GetLevel() > 59:
weight_hardcap = 45
weight_softcap = 24
elif GetLevel() > 54:
weight_hardcap = 40
weight_softcap = 20
elif GetLevel() > 50:
weight_hardcap = 38
weight_softcap = 18
elif GetLevel() > 44:
weight_hardcap = 36
weight_softcap = 17
elif GetLevel() > 29:
weight_hardcap = 34
weight_softcap = 16
elif GetLevel() > 14:
weight_hardcap = 32
weight_softcap = 15

if GetClass() == MONK:
weight = GetWeight()
if weight < weight_hardcap - 1:
weight_bonus = float(level + 5)
if weight > weight_softcap:
temp_mod = min(float(weight - weight_softcap) * 6.66667, 100.0)
weight_bonus = max(0.0, weight_bonus * ((100.0 - temp_mod) * 0.01))
bonus = bonus + int(weight_bonus * 11.0 * 0.1)

if bonus < 0:
bonus = 0

if GetClass() == MONK:
weight = GetWeight()
if weight > weight_hardcap + 1:
weight_penalty = level + 5
temp_mod = min(1.0, (float(weight) - 20.0) * 0.01)
bonus = bonus - int(temp_mod)

if GetClass() == ROGUE:
agi = GetAGI()
if agi > 75 and GetLevel() > 29:
LevelScaler = GetLevel() - 26
if agi >= 100:
LevelScaler = LevelScaler * 5
elif agi >= 90:
LevelScaler = LevelScaler * 4
elif agi >= 85:
LevelScaler = LevelScaler * 3
elif agi >= 80:
LevelScaler = LevelScaler * 2
tmp_bonus = LevelScaler / 4
bonus = bonus + min(12, tmp_bonus)

if GetRace() == IKSAR:
bonus = bonus + min(35, max(10, GetLevel())

if IsMage():
bonus = bonus + GetSkill(SkillDefense) / 2
else:
bonus = bonus + GetSkill(SkillDefense) / 3

if GetAGI() > 70:
bonus = bonus + GetAGI() / 20

if IsMage():
bonus = bonus + TotalEffect(SPA_AC) / 3
else:
bonus = bonus + TotalEffect(SPA_AC) / 4

if bonus < 0:
bonus = 0

if IsClient():
hardcap = 350
if GetClass() == WARRIOR and GetLevel() > 50:
hardcap = 430
if (GetClass() == PALADIN or GetClass() == SHADOWKNIGHT or GetClass() == BARD) and GetLevel() > 50
hardcap = 403
if (GetClass() == RANGER or GetClass() == ROGUE or GetClass() == MONK) and GetLevel() > 50
hardcap = 375
if bonus > hardcap:
bonus = hardcap

return bonus

That means you could have 12.75 Mitigation AC and 53.33 Avoidance AC from 255 Agility. Compared to 75 Agility where you get 3.75 Mitigation AC and 36.67 Avoidance AC.

Very interesting. On live, if you use a monster shroud and spend shroud AA on agility your mitigation ac rises too. I wonder whether a similar system is in use there.

Snaggles
11-07-2024, 12:08 AM
A 60 shaman can buff over 129 agility and heal a monk against a normal blue con forever.

There is nothing stopping anyone from parsing this. Aside from it being silly and painfully boring.

Snaggles
11-07-2024, 07:51 PM
Damn nevermind. Focus doesn’t add AGI, lol. Someone revoke my shaman license.

Salaryman
11-08-2024, 12:30 AM
I switched from Belt of the Great Turtle and Sentry Leggings, to Sentry Girdle and Tolonds Leggings of the gloid, im taking alot less damage form Guard Captain latori and the higher lv guards in paineel on my 60 Ranger

Duik
11-08-2024, 09:14 AM
Red.

DeathsSilkyMist
11-08-2024, 10:08 AM
A 60 shaman can buff over 129 agility and heal a monk against a normal blue con forever.

There is nothing stopping anyone from parsing this. Aside from it being silly and painfully boring.

Damn nevermind. Focus doesn’t add AGI, lol. Someone revoke my shaman license.

Use Primal Avatar and Deliriously Nimble for 152 AGI. Wouldn't be hard to get to 103 AGI base with gear + starting stats. Would be an interesting test to see how much AGI actually does on P99.

Jafir
11-08-2024, 09:52 PM
Velious era had a hard cap on AC, but P99 has a soft cap. The hard cap was not that difficult to hit, so Agility probably did next to nothing for mitigation AC in live. I don’t actually know what Avoidance AC correlates to in terms of a mob missing you. If P99 uses the code I linked and converted the hard cap to a soft cap with their diminishing returns agi still would max out at ~13 mitigation ac. Hardly anything to write home about, but also not nothing.

Snaggles
11-09-2024, 12:42 AM
Use Primal Avatar and Deliriously Nimble for 152 AGI. Wouldn't be hard to get to 103 AGI base with gear + starting stats. Would be an interesting test to see how much AGI actually does on P99.

Good call. I’d burn a few emeralds for science :)

I still think the only real practical question is if agility buffs are worth the slot they take up. Ultimately there are a finite number of gearing options on p99 so taking agility usually comes at a detriment to another stat, outside a few weird pieces with bonus agility. I expect it’s a minimal effect if that, otherwise this server would be flooded with halfling warriors.

DeathsSilkyMist
11-14-2024, 07:08 PM
Good call. I’d burn a few emeralds for science :)

I still think the only real practical question is if agility buffs are worth the slot they take up. Ultimately there are a finite number of gearing options on p99 so taking agility usually comes at a detriment to another stat, outside a few weird pieces with bonus agility. I expect it’s a minimal effect if that, otherwise this server would be flooded with halfling warriors.

Agreed on the point about buff slot limits. I usually cast the AGI buff on myself when doing hard solo content simply because I have the buff slot available. Might as well eek out whatever slim benefit I can get if it isn't blocking a better buff. I am usually at 13 or 14 buffs when self buffed, with 1 slot available for Torpor.

In a group or raid that spell slot used by the AGI buff would be taken by a buff Shamans cannot cast on themselves, like C2. Regardless of how people end up parsing 255 AGI, I don't think raid buff rotations will change, simply due to the buff limit. Best case scenario is groups/solo players will cast AGI buffs more often if people have the buff slots available.