So, there's a rather large caveat that this code is for stock eqemu, not p99. It is not clear if there have been changes to make it more classic, outside of obviously removing certain things like AAs, but if the code hasn't been modified it should work like this:
int chance = GetSkill(EQEmu::skills::SkillParry) + 100;
chance /= 45;
if (zone->random.Roll(chance)) {
hit.damage_done = DMG_PARRIED;
return true;
}
Omitted code for aa, spells, items, heroic dex, counter parry as nonclassic.
random.Roll rolls an integer 0->99 and checks that the result under the chance. This would mean that the chance to parry at 230 skill would be floor[(100+230)/45] = 7%
Eqemu uses 50 for Riposte, 45 for Parry and Dodge, and 25 for block as the divisors.
Capped, that should be 7% for Parry/Dodge, 13% for Block, 6% for Riposte. They stack multiplicatively, so the total chance an attack gets through a monk's active defenses would be 0.94*0.93*0.87 = 76%.
|