Hm, yeah Illicit's data raise a couple of red flags on TAKP dodge/parry/riposte/block code. I'd like to dig into it a little further, but can't make much headway without knowing What were the SK dodge/riposte/parry skill caps at level 65 on AK? How confident are we that defensive skills should get evaluated in the TAKP order, riposte > parry > (block >) dodge? Illicit thought (and his data perhaps suggest) that the order was parry > riposte > dodge.

(fun fact, btw: as the code's currently written, the 15% riposte mod on bloodfrenzy should let a warrior with 225 unmodified skill riposte 9% of all incoming attacks, up from 7% unmodified. as if that sword needed to get any better!)

The answer to the correct order of the checks is apparently contained in our client's source code, and someone gave us the answer several years back. It's block, parry, riposte, dodge, shieldblock, avoidance, mitigation. (I don't think shieldblock is actually a thing for us, but apparently there's a lot of weird superfluous stuff like that in the client source.)

1. Block check 2. Parry check 3. Riposte check 4. Dodge check 5. Shield Block check 6. Avoidance check It was commonly noted that swarming knights on Live didn't want Improved Parry modifiers because it reduced the number of riposte rolls they would get, thus reducing their DPS/Healing. This is the order on Live and has been for some time. I sort of just assumed it's been that way forever and Shield Block AA was just tossed in at the end there when that AA was added in OoW. And yes, Bloodfrenzy is OP. It's probably best in slot offhand even in PoTime because of that modifier.

The way the order of operations was done on Live was confirmed by discing. Example: A ranger with Weaponshield on will parry everything. However, if an incoming attack was something-besides-parried, then it was assumed that something-besides-parry had to have rolled before parry. If this was in doubt, we could check old AK logs to confirm AKuracy: Deftdance gives 100% dodge, Weaponshield gives 100% parry, and Furious gives 100% riposte Check what happens when each of those discs are active. If warriors under furious don't parry or dodge, then riposte is first. If rangers never riposte while under weaponshield, then parry is first. If bards don't parry or riposte, then dodge is first.

Aha! That fits Illicit's data better. I believe it also means that TAKP's combat routines are out of order - or at least they were in the last open source version - and that mobs and players are riposting a bit too often atm.

Here are Illicit's data, with 99% Gaussian confidence intervals. (The estimates themselves depend on the data, so they're noisy and random. The confidence interval is the range in which, with approximately 99% probability, the true AK parry/riposte/dodge chance lies.) Although the parses were probably 10+ hours long, the sample size is actually still too small to draw really strong conclusions. Basing decisions on short parses is a bad idea! Anyhoo. No mods: parry: 6.32 +/- 0.51 percent (likely 6% true chance) riposte: 5.93 +/- 0.51 percent (likely 6% true chance) dodge: 5.58 +/- 0.51 percent (could be 5% or 6% true chance) With mods: parry: 7.11 +/- 0.41 percent (likely 7% true chance) riposte: 6.15 +/- 0.40 percent (likely 6% true chance) dodge: 6.22 +/- 0.41 percent (likely 6% true chance) The data are actually consistent with integer parry/riposte/dodge chances, like TAKP currently uses. I think that part is okay. What's weird is that the riposte chance appeared not to have been changed by the 12% riposte mod. The TAKP riposte chance function, Code: [ Only registered users can see the bbcode. Click Here To Register... ] suggests that at 200 unmodified skill, the 12% mod should have bumped the riposte chance from 6% to 7%. The others - 6% to 7% parry, no change to dodge - agree with the TAKP function and the AK knight skills of 205 parry, 170 dodge. (If you want to fiddle with that function, btw, the floor of a number is just the number rounded down to the nearest integer. So floor(2.38) = 2, floor(1.937) = 1, floor (328348.432) = 328348, etc.)

Our code currently does: Rip, Block, Parry, Dodge; because: https://forums.daybreakgames.com/eq...st-update-06-10-15.223510/page-2#post-3261772 Parse results from my 2016 logs seem to agree with Dzarn, but I didn't use discs. Riposte/swing rate matches skill + 100 / 50, and parry/swing rate is noticeably less than skill + 100 / 45. Also parry rate went up with a fire beetle eye equipped (parry does not require a weapon). If there is hard evidence that AK was different (I wouldn't be surprised) then it needs to be changed.

I've found such evidence. Frankly I should have looked at this more closely a lot sooner. Avoidance skill order will soon change to what Darchon posted. Also riposte and parry rates will be reduced. Seems Sony couldn't stop making the game easier time and time again.

** picks up the Torv-phone ** Big T, question for you! Back in the November 3 patch notes, we read Are you open to sharing how you changed the formulas? I don't doubt that the new ones are more accurate, I'm just curious about how dodge/parry/riposte/block mods are handled now. In the old code, the integer arithmetic gave some counterintuitive behavior. (Not inAKurate, just counterintuitive.) For example, knights saw no benefit from 1-5% dodge mods, but big benefit from mods of 6% or higher. I'm curious if the new code changes that kind of conclusion.

I just increased the divisor by 5. Parry is / 50 now, and Riposte is / 55. While going over pet skills, I did notice that when Sony applies the skill multipliers from items, that it includes the +100 in the multiplication; that's why the percentiles are so low. Of course this still makes the gains all-or-nothing with integer arithmetic. (seems silly for them to have used ints here)

Heh, yeah, using integer math but expressing dodge mods as percentages was pretty misleading. It seems like it would've been more natural to combine integer math with the tiered dodge mod system they used in later expansions (Improved Dodge I-II-III, etc.). The Luclin/PoP system is also tiered, but sneakily! Here's my best guess at the 'sneaky tiers' we'll see in Luclin. tldr: Knights, go for 10% riposte mod. Don't worry about parry or dodge; they're unachievable. Warriors, go for 7% parry mod and 3% riposte mod. Don't worry about dodge; it's unachievable. Casters, go for 3% dodge mod. Code for calculating dodge/parry/riposte chance from your base skill and worn mod: Code: [ Only registered users can see the bbcode. Click Here To Register... ] (Does that look about right, Torv? I'm not sure exactly what you meant about Sony including the +100 in the multiplication.) knights parry (205 skill) - 6% chance for mod < 15%, 7% chance above riposte (200 skill) - 5% chance for mod < 10%, 6% chance above dodge (170 skill) - 6% chance for mod < 17%, 7% chance above warriors parry (230 skill) - 6% chance for mod < 7%, 7% chance above riposte (225 skill) - 5% chance for mod < 2%, 6% chance above dodge (190 skill) - 6% chance for mod < 9%, 7% chance above casters dodge (75 skill) - 3% chance for mod < 3%, 4% chance above

I thought some Temerity SK on AK parsed and found that the lower mods worked. Are you sure the code shouldn't be: Code: [ Only registered users can see the bbcode. Click Here To Register... ]

Yeah, sorry, I edited a bit. I had the divisor wrong for dodge and parry in the first draft. I initially used /50 for all three. I updated the last post. I'll check agreement with Illicit's data.

So to recap, Illicit parsed AK defense skills with (a) no mods and (b) 12% parry/10% riposte/8% dodge mods. Let's assume that the AK skill caps for level 65 SKs were 205 parry, 200 riposte, 170 dodge. Then the formula Code: [ Only registered users can see the bbcode. Click Here To Register... ] predicts that without mods, Illicit's evasion rates should've been 6% parry, 5% riposte, 6% dodge. With the mods, it predicts 6% parry, 6% riposte, 6% dodge. Only the riposte mod should've mattered. That's inconsistent with Illicit's data, which suggest with fair confidence that the parry mod mattered, the dodge mod might've mattered, but the riposte mod probably did nothing. (His evasion rates with confidence intervals are a few posts up.)

Yes. The +100 is right in your formula here. I.e. it's (skill+100)*mult, not skill*mult. The second floor() you're doing here would still result in 0 for small mod vlaues. Regardless, the random roll done is with ints. Live parses confirm that, on Live at least, the roll is an int. I should make very clear that it's certain that Sony changed their function and the way I modified it to better fit the data I was seeing is an educated guess. Also VERY long parses would be required to parse differences of a fraction of a percent in the rate change of avoidance skills.

Cool, thanks for clarifying. Do we care that the current formula may not be consistent with Illicit's data? You're totally right about the huge number of swings needed to detect a 1% difference; although Illicit did 15k swings in the no mods case and 26k with mods, his evasion rate estimates are only accurate to about half a percent.

Also you need to keep in mind the avoidance order. Parry and block results will most closely match the expected rate, but skills after that will parse slightly lower due to the avoidance skills before them triggering first.

Hmm, I was thinking that might help the rounding error but I actually might have made that worse. Also, are you sure Verant wasn't pulling some mult/shift tricks to get better precision? Tough to say of course but even for Verant adding in a bunch of completely dysfunctional items seems a bit improbable somehow.

Yeah, sample sizes get progressively smaller for the skills that get checked later. I took that into account when I processed Illicit's data. Here's the code for the no mods case. The mods case looks similar. It's vectorized Matlab code, so apologies if it's not the world's most readable thing. Code: [ Only registered users can see the bbcode. Click Here To Register... ] That resulted in the following 99% confidence intervals: No mods: parry: 6.32 +/- 0.51 percent (likely 6% true chance) riposte: 5.93 +/- 0.51 percent (likely 6% true chance) dodge: 5.58 +/- 0.51 percent (could be 5% or 6% true chance) With mods: parry: 7.11 +/- 0.41 percent (likely 7% true chance) riposte: 6.15 +/- 0.40 percent (likely 6% true chance) dodge: 6.22 +/- 0.41 percent (likely 6% true chance) I could do a formal hypothesis test thingy, but just eyeballing it, +0.8% from the parry mod looks significant. The +0.6% from the dodge mod, ehh, maybe. The riposte mod probably did nothing.

To be honest that's not a whole lot when parsing fractions of a percent. It required logs with 500k+ to parse crit rates of a tenth of a percent. But of course we don't have the luxury of a server to parse on anymore, so we have to use what we have. I would like to parse those logs myself if they are still available. It's entirely possible that the old logs I was looking at simply parsed low due to how short they were, and that the divisors were the same back then. I made these logs in 2003, which were the most influential in my decision: Level 65 Monk w/ Ton Po Chestwrap defending vs Defender Filorou (Shadowhaven Guard), Oct 30 2003: Total Swings: 3381; Landed Blows: 1139 (33.688%); Avoided Swings: 2242 (66.311%) - Blocks: 500 (14.788%) - Parried: 0 (0%) - Riposted: 152 (4.495%) - Dodged: 196 (5.797%) - Misses: 1394 (41.23%) Level 65 Warrior w/ Raex BP defending vs Defender Kealren (Shadowhaven Guard), Oct 30 2003: Total Swings: 3373; Landed Blows: 1340 (39.727%); Avoided Swings: 2033 (60.272%) - Parried: 184 (5.455%) - Riposted: 178 (5.277%) - Dodged: 172 (5.099%) - Misses: 1499 (44.441%) Using the modern EQ formulae, expected avoidance rates would be: Monk block: (100+230)*1.08/25 = 14% Monk riposte: (100+225)/50 = 6% Monk dodge: (100+230)/45 = 7% Warrior parry: (100+230)/45 = 7% Warrior riposte: (100+225)*1.08/50 = 7% Warrior dodge: (100+190)/45 = 6% I also checked some other logs (which were even shorter) and they all seemed to agree that parry and rip were lower. Again, the RNG could have been deceiving me. I'm certainly willing to make more changes or revert my modifications if the data demands.

Sadly, Illicit didn't post his raw logs, just the following summary: Base case (Bloodmaw, no mods): Total Attacks: 15,320 Hits: 4,533 Misses: 8,214 Defensed: 2,573 Parried: 968 Riposted: 851 Dodged: 754 Modded case (same mob, 10% parry mod, 12% riposte mod, 8% dodge mod): Total Attacks: 26,328 Hits: 7,547 Misses: 13,978 Defensed: 4,803 Parried: 1,871 Riposted: 1,504 Dodged: 1,428