Looks good, but I can't run it. I'm getting this error message:
Failed to load Main-Class manifest attribute from
C:\...\JavaLibrary1.jar
(I've downloaded jre1.6.0_02)
It runs from html only, can not run jar itself. Crazy Shaman's DPS & AEP calculator (c) Yo
If you want to run it off-line you can copy html file and jar to one place and open html.
1) Check what expected DPS it provides you with. If it is about the same that you can achieve at 100% performance against boss with almost 0 armor and if the % break-up of attacks is similar to yours - use these AEP values safely.
I am running it again right now with slightly updated numbers: 2511 AP, 33.26% crit, 13.63% hit, 2.34% haste... and, done. Somewhat more reasonable numbers this time. I assume this is because of the fix you mentioned earlier in the thread.
The value I am getting for DPS is 1027 when not counting shocks. Tornhoof's sim when I ran up it against my gear and appropriate buffs was giving me 1393 DPS. I'm guessing this is in part to do with trinkets (bloodlust brooch / hourglass of the unraveller), mongoose procs, and the unchanged haste rating in Tornhoof's sim, but would all that account for the extra 366 DPS? In short, it will be hard to compare it to our "real" DPS without the addition of all those things, but I'm looking forward to comparing them when it does.
I would like to note that Tornhoof's sim isn't accurately reporting some of my stats. My hit is 13.63% and it has it listed at 13.37%. I am not sure how accurate the averaging of crit and AP gained from procs/buffs is, but it seems believable enough.
So, I was trying to finally produce some hard numbers for WF/GoA comparisons based on party composition. I started off by assuming GoA gives 88 AGI with max rank and talents. I know that is 88/40 = 2.2% crit for rogues and 88 AP. I wanted a way to convert this AP to a DPS figure, and this thread gave me a figure of .3 DPS/AP.
The next step was to look at a WWS parse and see what benefit my rogues were getting from WF. I selected a recent Tidewalker kill because it’s long, we had three rogues, and there’s a lot of consistent attacking from behind. At this point, I’m still only interested in the rogue data.
On three rogues, WF accounted for:
(number WF attacks)*(average hit)/(total seconds)*(1 + crit rate)
49*378/508*1.20=43.75 DPS (3.76% of 1163 DPS)
52*363/508*1.22=45.33 DPS (4.01% of 1130 DPS)
62*352/508*1.19=51.12 DPS (4.45% of 1148 DPS)
An average of 46.73 DPS / 4.07% of DPS
GoA would have given them:
(DPS from AP) + total DPS*(1 – crit rate)*(AGI from GoA)/(AGI/Crit %)
26.4 DPS from 88 AP + 1163*(1-.20)*88/40/100 DPS from crit = 46.87 DPS
26.4 DPS from 88 AP + 1130*(1-.22)*88/40/100 DPS from crit = 45.79 DPS
26.4 DPS from 88 AP + 1148*(1-.19)*88/40/100 DPS from crit = 46.86 DPS
An average of 46.50 DPS
MH poison would obviously have made up the minimal difference (according to this outdated link, IP is 14.7 DPS.)
So… what’s wrong here?
My math?
Was WF uptime on the rogues obviously lower than 100% (I might have been twisting)?
Is the .3 DPS/AP figure terribly wrong for rogues?
- (Take it down to .2 DPS/AP and if that figure for IP is right, IP + GoA is still better.)
Do the mechanics of the Tidewalker fight (Watery Grave, potential agro cap) work against WF in a non-obvious way?
- (Specifically, do they impact DPS from WF more harshly than DPS from other sources?)
Or is WF no longer the superior choice for rogues?
as far as I know, the 1ap=>.3 dps was achieved through the rogue dps spreadsheet, which yields DPS pre-armor mitigation. Additionally, I think that figure was found for raid buffed rogues, which would include WF in its calculations.
Finally, even if that is not the case, there is still the untangible benefits of WF, such as increased energy regen and additional ppm procs.
Regarding rogue aggro, my top rogues claim to rarely, if ever, have to actually use feint. They have vanish if aggro is too much of an issue, and warriors are getting hit very hard (and thus generating a lot of rage) in that fight, so I doubt aggro is the culprit.
as far as I know, the 1ap=>.3 dps was achieved through the rogue dps spreadsheet, which yields DPS pre-armor mitigation. Additionally, I think that figure was found for raid buffed rogues, which would include WF in its calculations.
Good to know that it's pre-armor mitigation, but taking off 1/3 of the AP->DPS to account for 30% armor mitigation still results in GoA being theoretically superior. And if the figure was found including WF, if GoA gives a similar DPS increase the figure should still be accurate.
Originally Posted by Xoya
warriors are getting hit very hard (and thus generating a lot of rage) in that fight, so I doubt aggro is the culprit.
Warriors also get an attack speed debuff in that fight, so threat is actually more of a problem than you might imagine -- well, at least when our Venezuelan warrior with 700ms latency tanks (our two US warriors don't have an issue). I looked at the parse again and it looks like one of our good-ping warriors was tanking though, so this probably wasn't a concern (and I probably wasn't twisting for more than the first 30 sec of the fight or perhaps during SRs so there was probably negligible impact on WFT buff uptime).
Basically, I'd love for someone to prove me wrong and the status quo right -- any takers?
Good to know that it's pre-armor mitigation, but taking off 1/3 of the AP->DPS to account for 30% armor mitigation still results in GoA being theoretically superior. And if the figure was found including WF, if GoA gives a similar DPS increase the figure should still be accurate.
editi posted something completely wrong, but instead of just asking for deletion, I decided to write something else)
You are multiplyin WF hits by average hit, which also includes off hand hits. The correct way would be to multiply wf hits by main hand average.
I would like to note that Tornhoof's sim isn't accurately reporting some of my stats. My hit is 13.63% and it has it listed at 13.37%. I am not sure how accurate the averaging of crit and AP gained from procs/buffs is, but it seems believable enough.
You're hit is lower, since you're missing 4 HitRating in my model, due to the missing meta gem (not modelled) in your helmet, so you don't get a bonus.
If I actually put the values from my program into Yo's model, I get 1210 DPS, my model outputs 1357, some 50 DPS can be accounted to modelled procs and other internal modelling. Yo's model is probably a bit on the lower side and mine on the higher side of DPS. 1250-1275 DPS is probably a realistic value for your gear.
My model is designwise a bit on the higher side, since it does assume ideal distributions for some things to achieve a closed form expression.
We will need to change a fair amount of modelling after 2.2 anyway, because apparently they change ppm procs too in the next patch.
Hey Yo, will you please upload the source to your code in a text version somewhere? I'm not familiar with java, and it's not immediately obvious to me where I should be going in order to see the source so I can review the code.
thanks much!
Edit - too many weird things happening here, seeing the source will help.
first, please error check. Setting weapon speed to 0 = firefox crash. yeah, it makes no sense to have a 0 speed weapon, but my fat fingers don't know that
Easy examples of weirdness:
1) Hit above 25%, 30%, 40% increases dps. Hit increases above 59% don't. I have no idea how the code is working in this case.
2)
Take:
AP: 1400
Crit: 0%
Hit: 25% (I assume that's hit bonus, not total hit)
Haste: 0%
MH DPS: 0
MH Speed: 2.6
MH Skill: 350
OH DPS: 0
OH Speed: 2.6
OH Skill: 0
White DPS = 90
Since there's no flurry, white dps should be 1400 / 14 = 100. Ok, so maybe there's a 10% armor factor in there. Or maybe dodge. Or maybe parry, or glancing, or some combination, or maybe it's calculated wrong. I don't know. None of that is relevant to the next point:
now, set OH Skill to 350
white DPS = 125
So, if White DPS with just mainhand = 90, white dps with mh + oh should be 135 (90 + 90/2) since there's no flurry component, etc.
Also, I don't know how weapon skill is being calculated, but if i put in 0 weapon skill for both weaopns, I still get 21 dps white damage, which I don't understand since those shouldn't hit/crit at all. I suppose this oddityh probably explains the part above.
It's just really hard to believe the numbers in here when we can't:
turn off stormstrike
turn off windfury
turn off offhand weapon
turn off mainhand weaopn
know what % dodge, parry, miss, glance, armor you use
etc.
In short, please let us review your code, or change it so that we can activate and deactivate portions of it so that we can verify the results against common sense and/or testing. You have some odd stuff in there. I'm sure smarter people than I know how to get to the actual code that runs your page, but I'm not one of those people. I do, however, know a little bit about the math behind it, and can possibly help you get your page working more realistically.
I apologize if this was all listed elsewhere and I missed it.
So, I was trying to finally produce some hard numbers for WF/GoA comparisons based on party composition. I started off by assuming GoA gives 88 AGI with max rank and talents. I know that is 88/40 = 2.2% crit for rogues and 88 AP. I wanted a way to convert this AP to a DPS figure, and this thread gave me a figure of .3 DPS/AP.
The next step was to look at a WWS parse and see what benefit my rogues were getting from WF. I selected a recent Tidewalker kill because it’s long, we had three rogues, and there’s a lot of consistent attacking from behind. At this point, I’m still only interested in the rogue data.
On three rogues, WF accounted for:
(number WF attacks)*(average hit)/(total seconds)*(1 + crit rate)
49*378/508*1.20=43.75 DPS (3.76% of 1163 DPS)
52*363/508*1.22=45.33 DPS (4.01% of 1130 DPS)
62*352/508*1.19=51.12 DPS (4.45% of 1148 DPS)
An average of 46.73 DPS / 4.07% of DPS
GoA would have given them:
(DPS from AP) + total DPS*(1 – crit rate)*(AGI from GoA)/(AGI/Crit %)
26.4 DPS from 88 AP + 1163*(1-.20)*88/40/100 DPS from crit = 46.87 DPS
26.4 DPS from 88 AP + 1130*(1-.22)*88/40/100 DPS from crit = 45.79 DPS
26.4 DPS from 88 AP + 1148*(1-.19)*88/40/100 DPS from crit = 46.86 DPS
An average of 46.50 DPS
MH poison would obviously have made up the minimal difference (according to this outdated link, IP is 14.7 DPS.)
So… what’s wrong here?
My math?
Was WF uptime on the rogues obviously lower than 100% (I might have been twisting)?
Is the .3 DPS/AP figure terribly wrong for rogues?
- (Take it down to .2 DPS/AP and if that figure for IP is right, IP + GoA is still better.)
Do the mechanics of the Tidewalker fight (Watery Grave, potential agro cap) work against WF in a non-obvious way?
- (Specifically, do they impact DPS from WF more harshly than DPS from other sources?)
Or is WF no longer the superior choice for rogues?
Your GoA numbers are off because you're taking the total dps including WF. If you were to remove the 49 procs on the first rogue (figuring out what to subtract is hard considering it averages mh+oh attacks, I'd use the maximum melee swing for simplicity sake) 49*1.2*775/480=95 dps removal. So.. 1070 dps as opposed to 1163. I'm not entirely sure what all of your numbers are getting at with the GoA calculation and I am far too lazy to investigate it further!
Also, GoA will be skewed even further because you are giving poison/rupture benefit from agi, so remove another 795xx/480 and 95 = ~900 dps that can gain from GoA
Last edited by rava : 09/05/07 at 8:21 PM.
Reason: also!
[quote=Disquette;469446]Edit - too many weird things happening here, seeing the source will help.
The main idea is that no special fool-proof measures were built-in. It was programmed with player level 70 hitting boss level 73 in mind.
1) it is not cheked if weapon speed = 0
2) Hit is not capped at Miss (need to fix first)
3) you get 90 in your first example because of dodge and glancing (need to put detailed statistics on separate tab) and this 90 dps included OH damage because of weapon skill that was assumed to be in 350+ range - a switch was only at point of 355 weapon skill (need to fix)
4) need another tab with procs including procs from items, sets and shaman abilities for the ability to turn on/off choosen ability.
5) about the picture - I assumed that
"the chance of receiving critical hits from any level attacker decreases by 0.04% per point that the target's Defense skill exceeds the attacker's Weapon Skill"
(wowwiki) and that "
the player will gain 0.1% to their critical strike rating per weapon skill against monsters above their level"
leading to
CritMH = (MHskill-350)*0.001-0.03
All input values (Crit, Hit, AP) are grand totals after all buffs and talents. So if Grand total Crit is 1% (not possible in game) it makes Crit after taking level difference into account -2% and additional small value of Crit is not helping to push dps - still no crits. If you will put 3% into sim it will produce correct result.
Thanks for your time spent to test these things.
Time = new double []{0,inf,0,inf,0,inf,inf};
private void MainProc(){
findMinIndex(Time);
while (min[1]<=(Hours))
{
R1=Math.random();
R2=Math.random();
switch ((int)min[0])
{
case 5: //WFcooldown ends
Time[5]=inf;
break;
case 0: //MH
if (R1>(MissMH+Dodge))
{ // landed
if ((Time[5]==inf)&&(R2<=0.32))
{ //windfury
Time[1]=min[1];Time[5]=min[1]+3;
WF = true;
}
if (R1<=(MissMH+Dodge+0.25))
{ //glancing
Ndamage+=((MHdps + AP/14)*MHspeed*Glancing);
}
else if (R1<=(MissMH+Dodge+0.25+Crit+CritMH))
{ //crit
if (Time[6]==inf){AP*=1.1;WFap*=1.1;}
Time[6]=min[1]+10;
Ndamage+=(2*(MHdps + AP/14)*MHspeed);
Flurry = 3;
}
else {Ndamage+=((MHdps + AP/14)*MHspeed);} //hit
}
if (Flurry > 0)
{ //flurry
Flurry-=1;
Time[0]+=MHspeed/(1.3+1.3*Haste);
}
else {Time[0]+=MHspeed/(1+Haste);}
break;
case 1: //MH WF
if (R1>(0.05+Dodge))
{ // landed
if (R2<=(Crit+CritMH))
{ //crit
if (Time[6]==inf){AP*=1.1;WFap*=1.1;} // UR
Time[6]=min[1]+10; // UR
WFdamage+=(2*1.4*(MHdps + WFap/14)*MHspeed);
Flurry = 3;
}
else {WFdamage+=(1.4*(MHdps + AP/14)*MHspeed);} //hit
}
if(WF){WF=false;}
else {Time[1]=inf;}
break;
case 2: //OH
if (R1>(MissOH+Dodge))
{ // landed
if ((Time[5]==inf)&&(R2<=0.32))
{ //windfury
Time[3]=min[1];Time[5]=min[1]+3;
WF = true;
}
if (R1<=(MissOH+Dodge+0.25))
{ //glancing
Ndamage+=((OHdps + AP/14)*OHspeed*Glancing/2);
}
else if (R1<=(MissOH+Dodge+0.25+Crit+CritOH))
{ //crit
if (Time[6]==inf){AP*=1.1;WFap*=1.1;}
Time[6]=min[1]+10;
Ndamage+=((OHdps + AP/14)*OHspeed);
Flurry = 3;
}
else {Ndamage+=((OHdps + AP/14)*OHspeed/2);} //hit
}
if (Flurry > 0)
{ //flurry
Flurry-=1;
Time[2]+=OHspeed/(1.3+1.3*Haste);
}
else {Time[2]+=OHspeed/(1+Haste);}
break;
case 3: //OHWF
if (R1>(0.05+Dodge))
{ // landed
if (R2<=(Crit+CritOH))
{ //crit
if (Time[6]==inf){AP*=1.1;WFap*=1.1;} // UR
Time[6]=min[1]+10; // UR
WFdamage+=(1.4*2*(OHdps/2 + (WFap-AP/2)/14)*OHspeed);
Flurry = 3;
}
else {WFdamage+=(1.4*(OHdps/2 + (WFap-AP/2)/14)*OHspeed);} //hit
}
if(WF){WF=false;}
else {Time[3]=inf;}
break;
case 6: // UR ends
Time[6]=inf;
AP /=1.1;
WFap /= 1.1;
break;
case 4: //SS
if (R1>(0.05+Dodge))
{ // both SS landed
//#1 MH
if ((Time[5]==inf)&&(R2<=0.32))
{ //windfury
Time[1]=min[1];Time[5]=min[1]+3;
WF = true;
}
if (R2<=Crit+CritMH)
{ //crit
if (Time[6]==inf){AP*=1.1;WFap*=1.1;}
Time[6]=min[1]+10;
SSdamage+=(2*(MHdps + AP/14)*MHspeed);
Flurry = 3;
}
else {SSdamage+=((MHdps + AP/14)*MHspeed);} //hit
//#2 OH
R2=Math.random();
if ((Time[5]==inf)&&(R2<=0.32))
{ //windfury
Time[3]=min[1];Time[5]=min[1]+3;
WF = true;
}
if (R2<=Crit+CritOH)
{ //crit
if (Time[6]==inf){AP*=1.1;WFap*=1.1;}
Time[6]=min[1]+10;
SSdamage+=((OHdps + AP/14)*OHspeed);
Flurry = 3;
}
else {SSdamage+=((OHdps + AP/14)*OHspeed/2);} //hit
}
Time[4]+=10;
break;
}
findMinIndex(Time);
}
TotalDamage = Ndamage+SSdamage+WFdamage+Edamage;
}
I want to start my first thread with a gracious "thank you" to all involved. My shaman is new to me, and reading this thread has helped me maximize my role and make me a valued member of my guild and raids.
My question is in regards to the Pawn addon. I got it, and put in the string suggested on the first page. It gave a higher value to the Amani Venom-Axe than the
Boggspine Knuckles. Is this correct, or did I screw up the addon?
I'm not sure why weaponspeed = 0 crashed firefox then, if that turns it off. Also, now I understand the crit issue, so that makes a lot more sense.
Off to work now, maybe I'll have time to look at it more while there. Being able to set glancing%, armor mitigation%, dodge%, parry%, and the SS/WF toggles will be a huge help for testing.
My question is in regards to the Pawn addon. I got it, and put in the string suggested on the first page. It gave a higher value to the Amani Venom-Axe than the
Boggspine Knuckles. Is this correct, or did I screw up the addon?
Thanks in advance for your time.
Without doing the exact math, sure, the pawn value might be higher (but probably by only a teeny bit!). Pawn value only looks at the stat / combat-rating bonuses though. Things like the weapon dps and speed are not number-ized in Pawn strings (at least the ones we have here).
In a realistic comparison, where you look at the dps and speed of the weaopns, boggspine knuckles come out *way* ahead.
Lootzor is good for out-of-wow work. So is Tornhoof's WOWEquipOptimizer. Pawn is fine for in-game comparison of items but you just need to keep a list in your head of the weapons you should be searching for.
Edit: and I should mention that both of those have links in the main post, just in case you missed it!
For your mainhand weapon, get something slow with high dps. Stats are a bonus. Look at the pages of debate regarding the Drakefist hammer vs the Planar Edge as an example. 2.6, 2.7, 2.8 speed and high dps is what you want.
For your offhand, re-read the first post, as it covers it all, as I recall. The section is called "Itemization - Weapons"
Use pawn when evaluating non-weapon item slots. Pawn can do the math for you for regular armor slots very well, though the specific pawn values will vary depending on your current gear. The strings listed are probably pretty good for your level of gear, based on what I see in the armory.
Ok, going to pull out interesting lines from the code as I see them...
if ((Time[5]==inf)&&(R2<=0.32))
Why a 32% chance to proc windfury on an attack instead of the tested and empirically determined 36% chance?
if (R1<=(MissMH+Dodge+0.25))
How is MissMH determined, and why does it have a different rate than the OH miss rate? I see you did something similar with crit. Is this for Orcs or other people who have +skill ratings who use non-similar weapon types between hands?
*** editing out my WF dmg thing - this is referred to later on, but I can see where I made a mistake in analysis ***
I assume you mean to have WFap/14 in the "hit" statement for the MHWf hit case.
Also, now that I think of it, is Windfury Actually hitting twice? Again, I'm pretty good at being dumb, so I hope this isn't s stupid question, but how do you have the code proc'ing 2 windfury attacks? I'm only seeing one. I'm not so familiar with the array coding, however, so maybe you take care of it somewhere in there.
I assume that when you say that adding Hit wasn't capped, the result in the sim is that you end up pushing dodge off of the table? I'm not sure how you determine MissOH and MissMH, so I can't be sure. I still don't get why having 60% Hit was better than 50% hit, but as long as you say you're fixing it, I'm happy with that.
Also, I'm not sure what's happening here:
case 1: //MH WF
if (R1>(0.05+Dodge))
{ // landed
if (R2<=(Crit+CritMH))
{ //crit
if (Time[6]==inf){AP*=1.1;WFap*=1.1;} // UR
Time[6]=min[1]+10; // UR
WFdamage+=(2*1.4*(MHdps + WFap/14)*MHspeed);
Flurry = 3;
}
else {WFdamage+=(1.4*(MHdps + AP/14)*MHspeed);} //hit
}
if(WF){WF=false;}
else {Time[1]=inf;}
break;
This part in particular:
if (R1>(0.05+Dodge))
{ // landed
is the 0.05 supposed to be the default miss rate? If so, then why don't you have +hit reducing that 0.05 result off the table? I know you mentioned a two-roll system for yellow attacks, but I don't see that anywhere in here - Is this somehow related to that?
Other than those things, I don't see any glaring mistakes (either on your part in the code, or mine in understanding it). Not to say that these mistakes might not explain the huge dps gaps seen - If you're not granting the WF AP bonus to MH WF hits, and if you only have WF hitting once instead of twice, that could easily explain the 200dps delta between your and tornhoof's models. But, if these are the only problems with it...
Then this, in fact, is by far the cleanest code I've seen, and makes the step by step versions (like mine ) look really ugly in comparison. Your method of finding the minimum value of the "next event" is so much more efficient - now I'm starting to understand why your sim runs so much quicker than mine ever could as I check every x milliseconds for an event.
I'm really impressed man :-) The only thing that I haven't mentioned so far that I'd like to see, that I haven't requested yet, is more detailed reporting - how many main hand hits were there, for how much damage. How many off hand glances, etc etc. That sort of thing really helps us compare the code results against empircal or theoretical examination.
Unless I'm reading that haste/ppm thread wrong, the conclusion seems to be that the PTR behavior is the same as what we have on live.
I just did a test on this and it looks to me like you're correct. With 30% haste from flurry, mongoose seems to have the same proc rate on PTR as it does on live.
Results of the test are in the the PPM/haste thread if anyone's curious.
I have a little question about SS...
I know that:
if MH SS is dodged/parryed then there is no OH hit
MH and OH can crit separately
What I don' know - can OH be dodged/parryed if MH hits? (I don't remember)
In this case using Attack Table we will get a much bigger chance for OH not to hit than for MH...
I have a little question about SS...
I know that:
if MH SS is dodged/parryed then there is no OH hit
MH and OH can crit separately
What I don' know - can OH be dodged/parryed if MH hits? (I don't remember)
In this case using Attack Table we will get a much bigger chance for OH not to hit than for MH...
Yes, I believe this has been understood for a while to be actual stormstrike behavior.