Thread: Proc rates
View Single Post
  #1  
Old 04-24-2006, 01:10 AM
Muuss
Dragon
 
Join Date: May 2003
Posts: 539
Default Proc rates

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

Code:
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%).

Code:
        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 - [PEQGC] Dobl, the ogre that counts for 2 !
http://www.vilvert.fr/page.php?id=10

Last edited by Muuss; 04-24-2006 at 09:12 AM..
Reply With Quote