View Single Post
Old 03/18/08, 10:38 PM   #43 (permalink)
Rezarel
Von Kaiser
 
Rezarel's Avatar
 
Human Warrior
 
Proudmoore
Originally Posted by landsoul View Post
Thankyou for this, Rezarel.

[ProcDuration] / ([HiddenCooldown]+[AvgTimeToProc])

Is how I have it setup currently (I think) in the current build, so that will not change.

So what you are saying about PPM is this:

MH%: [PPM] / 60 seconds * (1 - [%miss] - [%dodge])

When I see this formula I think okay, where in the game coding does it take 1 - dodge chance - miss chance and multiply it by listed PPM... Can it or will it do that? Lets say the PPM/60sec math cranked out a percent to proc of 1.66~%. For example, coding mechanics may work like this when a hit lands: it does a rand function and an if/then/else statement: IF(RAND(10000)<166); THEN(EFFECTSTART=YES); ELSE(EFFECTSTART=NO). Assuming a 1.66% chance on any attack to proc the effect.

The game takes that and applies it to each attack. Haste, flurry, and speed increase the rate of which you attack, which will also increase the rate in which the effects can proc. UNLESS, there is also a function in the code where it reduced that example 1.66% by a factor of the current weapon in question's attack speed increase.

So by your example, we will say that it would then be IF(RAND(10000)<(166 / [1+IncreasInAttackSpeed]); THEN(EFFECTSTART=YES); ELSE(EFFECTSTART=NO)

And Rez, by that proposition it would apply to special attacks in the means where the percent was not reduced by attack speed. IF(RAND(10000)<166); THEN(EFFECTSTART=YES); ELSE(EFFECTSTART=NO).
Yes, that looks right. Basically, every swing the server determines the proc chance by
Proc chance / swing = (Avg Proc / minute) * (seconds / swing) * (1 minute / 60 seconds)
= PPM * Weapon Speed / 60
This uses the current hasted weapon speed. One example from my testing: using a 2.7 speed weapon and [Mark of Conquest] (2 PPM), while not flurried I had a proc chance of 8.8%, and while flurried I had a proc chance of 7.4%.

The consequence of this is that regardless of your base weapon speed and how much haste you have, you'll get the same average procs per minute.

Also, this assumes that you land (60 / Weapon Speed) attacks per minute. If some miss, your observed procs per unit time will be reduced by (1 - %miss - %dodge).

so in conclusion, the real PPM would then be

([ppm]/60)*[MHWhiteHeroicPerSec] / ((1+.25[FlurryUp])*(1+[AvgSpeed])*(1+[AvgHaste]))
+
([ppm]/60)*[OHWhitePerSec] / ((1+.25[FlurryUp])*(1+[AvgSpeed])*(1+[AvgHaste]))
+
([ppm]/60)*[MHWFInstantPerSec] (assuming wf hits are not penalized by Inc.Speed)
+
([ppm]/60)*[OHWWPerSec] (assuming offhand ww actually counts as a hit as blizz wants in 2.4)

simplifying to the following: ([ppm]/60)*{ (([MHWhiteHeroicPerSec] + [OHWhitePerSec]) / ((1+.25[FlurryUp])*(1+[AvgSpeed])*(1+[AvgHaste]))) + [MHWFInstantPerSec] + [OHWWPerSec] }

instead of how it would be modeled without Inc.Speed penalty:

([ppm]/60)*([MHWhiteHeroicWFInstantPerSec] + [OHWhiteWWPerSec])
I don't quite follow this. The proc chance per swing adjusts with haste to maintain a constant Real PPM regardless of the increased number of swings, so
Real MH PPM = PPM * (1 - %miss - %dodge)
You don't need to bring the actual number of attacks into it at all.

The special attack terms need the base weapon speed involved somehow:
Real Special PPM = Specials per minute * Proc chance per special
Proc chance per special = PPM * MH Base Speed / 60
So a character with a 1.5 speed main hand and 20 specials per minute will see fewer procs from specials than a character with a 2.6 speed main hand and 20 specials per minute.

However, im not yet sold on the haste adjustment thing at the moment. Me and a rogue buddy of mine are gonna go do some testing soon.. to try to figure out what exactly it is.
Looking over the old post, the data's not as convincing as it could be. It's also five months old, and mechanics change, so more testing is good.
 
User is offline.