View Single Post
  #5  
Old 10-16-2008, 07:52 AM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

Don't forget about this:

Code:
			case SE_ProcChance:
			{
				//multiplier is to be compatible with item effects
				//watching for overflow too
				effect_value = effect_value<3000? effect_value * 10 : 30000;
				if(newbon->ProcChance < effect_value)
					newbon->ProcChance = effect_value;
				break;
			}
With that multiplying by 10, it makes proc spell bonuses in your equation at 10X more than they should be.

Other than that, it looks to be basically the same as what I was writing. After going over the code again and again, the AA bonus wasn't causing the chance to be less, it was actually just adding 25% of the base procchance to the bonus, which is essentially the same thing that you and I have been writing in different ways. It just looked confusing the way it was before lol.

Combining how you and I wrote it, I think this is about as simple as it can get and it still does the same thing:

attack.cpp
Code:
	ProcBonus += float(itembonuses.ProcChance + AABonus + (spellbonuses.ProcChance / 10)) / 100.0f;
	
	ProcChance = float(mydex) / 10000.0f;
	ProcChance += (ProcChance * ProcBonus);

	mlog(COMBAT__PROCS, "Proc chance %.2f (%.2f from bonuses)", ProcChance, ProcBonus);
	return ProcChance;
And that also means you would have to set the AABonus code back to this:

Code:
		switch(CastToClient()->GetAA(aaWeaponAffinity)) {
			case 1:
				AABonus = 5;
				break;
			case 2:
				AABonus = 10;
				break;
			case 3:
				AABonus = 15;
				break;
			case 4:
				AABonus = 20;
				break;
			case 5:
				AABonus = 25;
				break;
		}
	}
And, really, we could remove the 10 divider for the spellbonuses.ProcChance if we just removed the multiplier in the case SE_ProcChance

zone/bonuses.cpp
Code:
                        case SE_ProcChance:
                        {
                                //multiplier is to be compatible with item effects
                                //watching for overflow too
                                effect_value = effect_value<3000? effect_value * 10 : 30000;
                                if(newbon->ProcChance < effect_value)
                                        newbon->ProcChance = effect_value;
                                break;
                        }
though, the code you have will work perfectly fine once you get the spell bonus divided by 10 or remove it from the SE_ProcChance.

I do agree that dex is nice to be able to factor into procs so it actually does something. I just think that the base calculations need to be tweaked a little further. Even if their base is only a total of 5% (after dex is calculated), that is still 1 in 20 hits, which should be about 1 in 10 rounds or less after double attack and dual wield (if they have 2 procing weapons) are factored in. IMO, that isn't too bad at all for someone with no AAs, 100ish dex, and no item or spell bonuses. Maybe I should cap Combat Effects down to 25 max instead of 50 on my server. Even still, with the base being set that high, even my players agree that proc rates were way too much once you are geared and have the AAs.

I have run through this equation with different parameters dozens of times now. The base is the only thing that can really be adjusted here. It is really close to being good, but a bit of tweaking would help.

I am currently using this:
Code:
ProcChance = 0.04f + float(mydex) / 20000.0f;
And that definitely seems more reasonable in the very high end. It also doesn't make a huge difference in the very low end.

With that base equation, here are some example of what base proc rate would be:

100 Dex = 4.5%
200 Dex = 5%
255 Dex = 5.3%
305 Dex = 5.5%
355 Dex = 5.8%
380 Dex = 5.9% (almost a 50% increase)
471 Dex = 6.4%

And, with your equation:

100 Dex = 6.1%
200 Dex = 7.2%
255 Dex = 7.8%
305 Dex = 8.3%
355 Dex = 8.9%
380 Dex = 9.2%
471 Dex = 10.2% (over a 200% increase)

If you get the AA maxed and only 25 combat effect bonuses, it will jump up 50% higher than that, which means 471 goes to over 15% chance. Then factor in quad attacks with 2 procing weapons and it will be procing every round or 2. Not to mention if the weapon is augmented with a procing aug.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote