PDA

View Full Version : Proc rates


Muuss
04-24-2006, 01:10 AM
I m posting this that follows a serious and passionated debate on PEQ's forums. I didnt posted there since Ylosh suggested and identified the problem (for some other reasons too, linked to my own person safety lol).

zone/attack.cpp


float Mob::GetProcChances(float &ProcBonus, float &ProcChance) {
int mydex = GetDEX();
ProcBonus = 0;
if(IsClient()) {
//increases based off 1 guys observed results.
switch(CastToClient()->GetAA(aaWeaponAffinity)) {
case 1:
ProcBonus += 0.05f;
break;
case 2:
ProcBonus += 0.10f;
break;
case 3:
ProcBonus += 0.15f;
break;
case 4:
ProcBonus += 0.20f;
break;
case 5:
ProcBonus += 0.25f;
break;
}
}
ProcBonus += float(itembonuses.ProcChance + spellbonuses.ProcChance) / 1000.0f;

ProcChance = float(mydex) / 3020.0f + ProcBonus;
mlog(COMBAT__PROCS, "Proc chance %.2f (%.2f from bonuses)", ProcChance, ProcBonus);
return ProcChance;
}


What's coded is : we calculate the chance to proc like it should be, and ADD 5 to 25% to the total, which can gives values up to 30/35%
Imho, this is a misinterpretation of the AA, which is that we have to increase the chance of 5 to 25%. IE, if you got 5% chances, with WA, it should be between 5.25 to 6.25 (5*5%/25%), not 5+(5%/25%).


ProcChance = (float(mydex) / 3020.0f ) * (1.0f+ProcBonus));


with a dex of 255 and WA 5 (nothing from spells nor items),

the first formula gives : 255/3020+25=33,44% (Ylosh got such values with mlog)
the second one gives : (255/3020)*1.25=10.55%

Even the second formula is high compared to live, due probably to the dex/3020 which is perhaps not the right formula (it could be scaled and not linear).

Muuss
05-15-2006, 06:36 PM
Proc rates are working better now.
Althought, i wonder if they are really working like they should with weapon that have proc rate modifiers, like the summoned cleric hammers (lvl 58 one for example). A lvl 65 cleric, with around 130 dex procs on each swing, hit or miss.