Editing Discussion Edit
Mercilessly trashed my previous contribution, recognizing its lack of value and the confusion it adds to the gathering of additional observations. Added some clarification to Miguillo's text, as well as headings to make the table of contents more useful.
Hrocdol 21:22, 9 August 2007 (UTC)
- Though I agree that the formula for dodge rating contribution should be copied over here from Combat Rating System, it seems odd to me to use a table for it since it's only a single value. How about instead making a small header that goes over how to do "dodge rating/(246/13) = dodge% ? (246/13 = 18 12/13, the exact value for the conversion) --Tejing 21:27, 10 August 2007 (UTC)
- I do agree that a table seems awkward, but I wanted it to have a similar formatting separation from the bulk text of the page, so that it would stand out similar to the agi-per-dodge values. Does that make sense? Just trying to make the hard numbers highly visible and accessible.
- I think the next thing that would make sense is to get the old level 60 values (that 'patch 1.12' table) off the front page, or at least pushed down to a 'historical information' section.
- --Hrocdol 18:03, 13 August 2007 (UTC)
- Agreed about the level 60 values. Let's get that away from the top of the page so people glancing over it don't think it's current. Also, at least temporarily, I think we can agree to the idea of putting dodge rating in the same table as the agility values, as another column. It wouldn't cause so much blank space on the page that way. Although the number would be repeated 9 times. Going to go ahead and do these 2 things --Tejing 23:34, 14 August 2007 (UTC)
Gathering Observations Edit
To gather highly accurate observations (and thereby make more accurate formula) please post your dodge chance with full precision by using this little piece of code
/script _,temp1=UnitStat("player",2);_,temp2=UnitClass("player"); DEFAULT_CHAT_FRAME:AddMessage("|"..temp2.."||"..UnitLevel("player").."||"..GetDodgeChance().."||"..temp1.. "||"..GetCombatRating(CR_DEFENSE_SKILL).."||"..GetCombatRating(CR_DODGE));
How to contribute observations needed to calculate agi per dodge:
- exec this piece of code and post resulting line below (Prat give a way to copy paste if you are lazy like I'm)
- remove a piece of equipment with agi (and no def or dodge)
- exec again this piece of code and post resulting line below
You can repeat this process as wanted (but shouldn't be useful as precision is so high)
--Miguillo 05:33, 27 February 2007 (EST)
Note: This data can't be used to calculate base dodge directly as they're are not always made at max def (i.e. the base def of a level 30 hunter is usually not at 150 since his pet is tanking, if he is a good hunter). The purpose of this data is to determine the agi/dodge. Once this known, base dodge is trivial to find.
Note 2: I cannot add the base def to this script because it reached the max length for a one-liner. The purpose of the def rating in this formula it to be sure that the contributor didn't change any other dodge modifier than the agility.
Note 3: If you don't understand what this script does, you should consider it unsafe. While the author is confident in its harmlessness, this is an open forum, and modifications can be made by anyone.
--Miguillo 12:45, 1 March 2007 (EST)
- clarified some phrases and grammar - Hrocdol 21:22, 9 August 2007 (UTC)
- added a couple of (I think) syntactically insignificant spaces in the code to let it break across lines gracefully to add readability. - Hrocdol 16:25, 27 August 2007 (UTC)
Observed Values Edit
|class||level||%dodge||Agility||Defense rating||Dodge rating||Contributor|
|PALADIN||2||5,2129998207092||23||0||0||--Miguillo 07:49, 27 February 2007 (EST)|
|DRUID||70||19,08614730835||273||46||12||--Miguillo 07:49, 27 February 2007 (EST)|
|DRUID||70||17,658145904541||252||46||12||--Miguillo 07:49, 27 February 2007 (EST)|
|DRUID||70||15,890147209167||226||46||12||--Miguillo 08:04, 27 February 2007 (EST)|
|DRUID||70||17,318145751953||247||46||12||--Miguillo 08:04, 27 February 2007 (EST)|
|HUNTER||30||4,3854007720947||99||0||0||--Miguillo 08:28, 27 February 2007 (EST)|
|HUNTER||30||3,9670004844666||95||0||0||--Miguillo 08:28, 27 February 2007 (EST)|
|HUNTER||30||3,1302003860474||87||0||0||--Miguillo 08:28, 27 February 2007 (EST)|
|WARLOCK||30||5,0485997200012||39||0||0||--Miguillo 05:02, 28 February 2007 (EST)|
|WARLOCK||30||4,8838000297546||37||0||0||--Miguillo 05:02, 28 February 2007 (EST)|
|WARLOCK||30||4,7189998626709||35||0||0||--Miguillo 05:02, 28 February 2007 (EST)|
|HUNTER||31||4,3099999427795||100||0||0||--Miguillo 09:45, 28 February 2007 (EST)|
|HUNTER||31||3,4939997196198||92||0||0||--Miguillo 09:45, 28 February 2007 (EST)|
|HUNTER||31||2,8819999694824||86||0||0||--Miguillo 09:45, 28 February 2007 (EST)|
|PALADIN||11||5,2673001289368||27||0||0||--Miguillo 10:06, 7 March 2007 (EST)|
|PALADIN||11||4,3977999687195||22||0||0||--Miguillo 10:06, 7 March 2007 (EST)|
|DRUID||70||2,6159999370575||66||0||0||--Taleden 17:25, 22 March 2007 (CDT)|
|DRUID||70||4,3159999847412||91||0||0||--Taleden 17:25, 22 March 2007 (CDT)|
|DRUID||70||7,1039996147156||132||0||0||--Taleden 17:25, 22 March 2007 (CDT)|
|DRUID||70||8.1239995956421||147||0||0||--Taleden 17:25, 22 March 2007 (CDT)|
|DRUID||70||8,9400005340576||159||0||0||--Taleden 17:25, 22 March 2007 (CDT)|
|DRUID||70||10,776000022888||186||0||0||--Taleden 17:25, 22 March 2007 (CDT)|
|DRUID||70||12,407999992371||210||0||0||--Taleden 17:25, 22 March 2007 (CDT)|
|DRUID||70||13,223999977112||222||0||0||--Taleden 17:25, 22 March 2007 (CDT)|
|PALADIN||70||3.7320000648499||77||0||0||--Yozozo 22:25, 11 May 2007 (EDT)|
|PALADIN||70||5.891999912262||131||0||0||--Yozozo 22:25, 11 May 2007 (EDT)|
|DRUID||70||35.257755279541||515||0||21||(night elf)--Tejing 18:56, 27 July 2007 (UTC)|
|DRUID||70||30.905755996704||451||0||21||(night elf)--Tejing 18:56, 27 July 2007 (UTC)|
|DRUID||70||30.225757598877||441||0||21||(night elf)--Tejing 18:56, 27 July 2007 (UTC)|
|DRUID||70||27.097755432129||395||0||21||(night elf)--Tejing 18:56, 27 July 2007 (UTC)|
|DRUID||70||24.989755630493||364||0||21||(night elf)--Tejing 18:56, 27 July 2007 (UTC)|
|DRUID||70||21.997755050659||320||0||21||(night elf)--Tejing 18:56, 27 July 2007 (UTC)|
|DRUID||70||20.433755874634||297||0||21||(night elf)--Tejing 18:56, 27 July 2007 (UTC)|
|DRUID||70||18.461755752563||268||0||21||(night elf)--Tejing 18:56, 27 July 2007 (UTC)|
|DRUID||70||17.4417552948||253||0||21||(night elf)--Tejing 18:56, 27 July 2007 (UTC)|
|DRUID||70||16.285757064819||236||0||21||(night elf)--Tejing 18:56, 27 July 2007 (UTC)|
|DRUID||70||13.497756004333||195||0||21||(night elf)--Tejing 18:56, 27 July 2007 (UTC)|
|DRUID||70||11.253755569458||162||0||21||(night elf)--Tejing 18:56, 27 July 2007 (UTC)|
|DRUID||70||8.3760004043579||136||0||0||(night elf)--Tejing 18:56, 27 July 2007 (UTC)|
|DRUID||70||4.3640003204346||77||0||0||(night elf)--Tejing 18:56, 27 July 2007 (UTC)|
|MAGE||70||5.1375002861023||42||0||0||--Hrocdol 22:58, 22 August 2007 (UTC)|
|MAGE||70||6.5374999046326||77||0||0||--Hrocdol 22:58, 22 August 2007 (UTC)|
Calculated Values Edit
It seams that 4 decimals are sufficient (after it is only floating point precision differences)
- another thing that will cause issues for this table is the night elf 1% dodge racial. my contribution is from a night elf druid, so I noted that in the contributor column. --Tejing 18:56, 27 July 2007 (UTC)
Older Discussion Edit
>Class Modifier = 14.5 (Rogue), 26.5 (Hunter), 20 (everyone else) >Dodge% = contibution from items + contribution from talents + ((Defense skill - mob level * 5) * 0.04) + (AGI / Class Modifier)
I don't think this is entirely correct. I'm a shaman and this formula does not add up.
My tooltip hover over Dodge says I have 8.40%, CTProfiles calculates it at 8.37%.
I have +1% dodge from items. Shaman have no +dodge talents. My defence skill is 308. My agility is 106.
1 + 0 + (308-60*5) * 0.04 + 106/20 = 6.62
So almost 2% chance to dodge has gone unaccounted for.
If I swap an item out and check that my dodge does not change. Then replace the item with one that gives an extra +10 agility.
My new dodge is 8.91%. If the agility class modifier for shaman was 20 I would expect the new value to be 8.9. It's obviously not exactly 20, but something close.
If I remove all items that give agility down to my base of 57 my new dodge is 5.92%. Using the formula described it should be 4.17%. The agility class modified is definitely not 20. I don't think it scales linearly.
- I found that there's another value that was not included in the formula : base dodge (which strictly depends on the class). I'll post about that shortly.
- --Dorenthas 19:43, 13 September 2006 (EDT)
- The value I came up with by questioning a Shaman was 1.75%, and it works with you as well: the tooltip says 8.40%, adding up would be 6.62 + 1.75 = 8.37, which is exactly what CTProfiles calculates. The difference between 8.40 and 8.37 might be because WoW rounds some of the values during the calculations, or because the Class Modifier might not be exactly 20. And if you remove all items that give agility, like you said, your new dodge is 5.92%, which is equal to the 4.17% you calculated plus the shaman base dodge of 1.75% that was missing from the formula.
- --Dorenthas 09:51, 14 September 2006 (EDT)
crit's being dodged Edit
I have seen crits dodged before. such as a rogue using coldblood which is a 100%crit. My guess is that a crit% will over-ride dodge to a certain unpassable point. Example: If your enemy has a 20% dodge rate and you have a 20% crit rate they're both small enough %'s to where it would be possible for your enemy to keep a 20% dodge. With a 100% crit rate your enemy might end up with the hypothetical bottomed out dodge% of 1% making it appear as if crit's can't be dodged when infact they can.
--- This is simply because for every hit you first consider miss chance, then dodge, then parry, then block, then glancing blow (if a mob +3 levels) and then crit is taken out of any hit chance left. Thus, yes, any crit can be dodged because it has to get past the damage mitigation possibilities first. Cold Blood is 100% crit (IF you hit), not 100% chance to hit.
NB: I know WoW is table based, but the above is still conceptually correct, even if there's not actually an if-then-else system. --Athan 08:51, 19 July 2006 (EDT)
I'm going to go ahead and revert the last change, as User:Crazyguy co is contradicting himself. WoW being table-based exactly explains what's going on with Cold Blood crits being dodged/parried.
- Wow works out the %age chance of: Miss, Dodge, Parry, Block, Glancing Blow, Normal Hit, Crit
- WoW rolls d100, then looks up in the value against #1 to decide the outcome.
- If it's Cold Blood then all the Hit gets converted to extra Crit
Thus indeed a Cold Blood can be dodged/parried/blocked, but that's simply because Hit and Crit chance can never eat up any of the chance for those damage mitigating abilities, they're considered 'first' so always get their share of the d100 roll.
Admittedly this is the same as if you do an if-then-else in the order I gave, but that's the point, it's *the same*. The coder gets the choice of either starting with 100% hit, then taking off the mitigation in order, then finally the crit, checking for going negative at any point, to ensure 100% total, then do a d100 roll, or doing if-then-else as you go along and keeping track then, to again ensure 100% total.
Either way User:Crazyguy co's edit was irrelevant.
--Athan 04:52, 27 July 2006 (EDT)
- I agree. I believe that the Cold Blood tooltip is misleading, in that it does NOT guarantee that you hit in the first place. With WoW combat being a table-based system, the only way to ensure that Cold Blood's description of increasing the "critical strike chance (...) by 100%" does not also make it an automatic hit is to use the calculated combat table without changing anything, except that if Cold Blood is activated when calculating the damage of any Backstab, etc., the damage is calculated as a crit instead of a hit. One might wonder, though, if Block is also considered a Crit event instead.
- It would have been clearer if, in the first place, the tooltip specified something along the lines that " the next Sinister Strike, Backstab, Ambush or Eviscerate that hits is a critical strike".
- --Dorenthas 18:20, 13 September 2006 (EDT)
Notes and corrections Edit
There were some anonymous "Notes" at the bottom of the article that I feel did not really belong there. I've moved them here to keep trace of them, but perhaps they could simply be removed. Just in case, here they are, in italics.
- (Note: There was some incorrect information about how Dodge worked here. WoW uses a table based combat system, not a "if-then-elseif" system. I removed it and added the correct information above. Thanks to the Warrior community for much of this information.)
- (Note: I'm confirming the Dodge calculation above. I'm sure all of the parts present are correct, just verifying that there are no modifiers or class specific differences).
As for corrections, there's a crucial one I made: the formula was missing a "Base Dodge" value, which depends on the class. I discovered that while playing around with numbers and calculating things for my lvl 60 rogue and lvl 60 paladins. The figures were alright with my rogue (of course, since Base Rogue Dodge is 0%!), but really didn't add up correctly with my paladin. Then I realized that my paladin seemed to have 0.75% Dodge "too much". After consulting various guildmates playing different race/class combinations, I concluded that there was indeed a "Base Dodge" value which didn't depend at all on the race (we already know that night elves have +1% and the rest, +0%).
At the time, I didn't have any hunter guildmate online, and since it is a pre-expansion Alliance guild, I didn't have any Shaman readily available to help me with these calculations either. I'll try to fill in the table ASAP, though.
--Dorenthas 20:57, 13 September 2006 (EDT)
EDIT: I've completed the table, but I'm not completely certain of the values I put as "Base Dodge", especially the Hunter value. I'd like someone to double-check them. Also, the Shaman value I got was actually 1.74, not 1.75. The shaman I questioned had 50 agility, 300 defense and no other dodge bonus, for a total of 4.24% dodge. It's pretty straightforward then with an AGI:Dodge ratio of 20 that the base value SHOULD be 1.74, but my intuition tells me that 1.75 is correct, and that the inexact 1.74 comes in fact from 20 being an approximation, not an exact value.
Feel free to comment/complete/alter whatever I've written so far.
--Dorenthas 22:03, 13 September 2006 (EDT)
Beaze's change (Nov 30) Edit
Beaza changed values I personally verified with awkward values, and directly contradicted various blue statements from forums over the past two years (among others), including things that can be observed like : each point of Defense increases Block, Parry, Dodge, and Miss chance against you by 0.04% (Beaza says 0.01%), or that WoW combat is table-based (Beaza says it's an if-then-else system).
Beaza, who has no contribution before today (no Wowwiki history) has modified today (or is MODIFYING right now) every combat-related article to show his/her view. I consider this vandalism, as he/she does not back ANY CHANGE in the Discussions but merely inputs data which may be, as far as I know, arbitrary and/or incorrect.
At the very least, I expect explanation for these changes. --Dorenthas 14:28, 30 November 2006 (EST)
- Well, I checked Beaza's other modifications and they didn't seemed as random as I first thought (except one entry, which states that the Combat system is a series of "if then else", which it probably isn't - but that may have been said just so it's clear which event takes precedence over what). However, the values changed in the formulas of THIS article STILL seem completely random, and the statement about Defense (regarding its effect in increments of 0.01%) is applicable to mobs' Defense skill, not players' Defense skill. This was unclear in the modifications to this article, but it was stated more obviously in another modification from Beaza.
- I apologize for the quick accusations of vandalism, Beaza.
- --Dorenthas 14:40, 30 November 2006 (EST)
- I did not intend to suggest an if-then relationship. It IS a table. I fixed that reference you saw to make it clear it's a table.
- --Beaza 14:25, 30 November 2006 (PST)
- Thanks for replying! But something's not just right.
- Night Elf Rogue, level 60, +5% Dodge through talents, +1% through race, nothing through items, 300/300 Defense.
- At 135 Agi (naked, unbuffed), you say I should get -0.59 + (135/14.08) + 6 = 14.998. I say I should get something closer to 0 + (135/14.5) + 6 = 15.31. The tooltip displays 15.32. Deltas are -0.322, -.01.
- At 257 Agi (half naked, unbuffed, no +Dodge item), you say I should get -0.59 + (257/14.08) + 6 = 23.663. I say I should get something closer to 0 + (257/14.5) + 6 = 23.724. The tooltip displays 23.73. Deltas are -0.067, -.006.
- At 351 Agi (fully dressed, unbuffed, no +Dodge item), you say I should get -0.59 + (351/14.08) + 6 = 30.339. I say I should get something closer to 0 + (351/14.5) + 6 = 30.207. The tooltip displays 30.22. Deltas are 0.119, -.013.
- Night Elf Rogue, level 60, +5% Dodge through talents, +1% through race, nothing through items, 300/300 Defense.
- It appears I don't have the exact values... but neither do you, unless I'm missing something. And unlike mine, which are all below the real value around a 0.01 delta, your 14.08 ratio makes the calculated value go from lower than tooltip value to higher than tooltip value as agi increases.
- Similar testing with my paladin showed that the exact values are halfway between your values and mine. Again, not good for your case that your values don't work... So, any explanation?
- (BTW, whenever I refer to "tooltips", I mean in 1.12. Are you referring to the Beta?)
- First, just to make sure we're doing the same math:
- chance = base by class (-0.0059 for a rogue) + factor by class and level (0.00071 for a 60 rogue) * AGI
- if the target is a mob level 10+ then chance += 0.001 * rating difference (below level 10 mobs dodge less so that combat is not as random)
- else target is not a mob so chance += 0.0004 * rating difference
- Finally +% dodge mods are applied.
- Pre-expansion values appear to be 0 base and 0.000689655172413793 per AGI. Pre-BC is therefore 0 + 135 * 0.00068... = 15.3103448275862% dodge.
- After BC the values change and are currently -0.0059 + 135 * 0.00071 = 14.995% dodge.
- --Beaza 14:51, 30 November 2006 (PST)
- P.S. Here are the 1.12 numbers for base dodge:
- Rogue 0.0%
- Druid 0.9%
- Hunter 0.0%
- Mage 3.2%
- Paladin 0.7%
- Priest 3.0%
- Shaman 1.7%
- Warlock 2.0%
- Warrior 0.0%
- Now dodge per AGI:
- Rogue 0.000689655 i.e. 14.5 AGI per 1%
- Druid 0.0005 i.e. 20 AGI per 1%
- Hunter 0.000377358 i.e. 26.5 AGI per 1%
- Mage 0.000514286 i.e. 19.44444444 AGI per 1%
- Paladin 0.000505882 i.e. 19.76744186 AGI per 1%
- Priest 0.0005 i.e. 20 AGI per 1%
- Shaman 0.000507692 i.e. 19.6969697 AGI per 1%
- Warlock 0.0005 i.e. 20 AGI per 1%
- Warrior 0.0005 i.e. 20 AGI per 1%
- I thought it was Blizzard policy not to give these numbers out? We've seen limited information posted on the forums by blues, but generally they've been very reluctant to give this kind of detail... --Karrion 19:15, 30 November 2006 (EST)
- (Karrion, you have a point. Beaza is not an official voice. Blizzard's policy is to make great games and support the community as much as possible, but this information is unofficial and subject to change at any time. Treat it as such.)
- Thanks for clearing up the confusion :) (BTW, little hint: when discussing, avoid erasing what other people say, even when replying to a question ;) It helps to know what was asked when reading the answer! I restored Karrion's comment for you.) I'll take the 1.12 info and update the article with it, and offer the TBC info as "information to be confirmed when TBC is released".
- Ugh, and don't forget to sign >.> --Dorenthas 22:26, 30 November 2006 (EST)
So do we even care about dodge for level 60 now? Kohist just made a change that is incorrect. He changed the chart that shows level 60 Paladin dodge from AGI to reflect the level 70 value. The chart was right for level 60, so his change is incorrect, but if we want the chart to be for level 70 now then his change is correct. In fact the chart is simple for level 70. All classes are 25 AGI per 1% dodge except warrior (30) and druid (14.7) and rogue (20) as far as I know. Also note there is a dodge rating of around 18.9 rating per 1% dodge, and all classes have a base dodge value ranging from under -5% to over +3% based on if they are a high AGI class or not.
--Beaza 10:52, 27 February 2007 (PST)
As of now, it looks like dodge on my 32 Night Elf Druid is 6.8 AGI / dodge. This is way off the 11.93 posted on the main page.
Patch level is ... 2.0.9. ( I believe - posting this as of March 6, 2007 which is release date for 2.0.10, and I made these measurements a few nights ago)
Base stats are
Unbuffed, naked. Added various pieces with +agi and measured. Results below.
So, highest %dodge = 9.973 - lowest dodge 5.1484 = 4.8246
Change in AGI = 75 - 42 = 33
4.8246 / 33 = 0.1462 % dodge / point of AGI
1 / 0.1462 = 6.8 AGI / %dodge
|class|lvl| %dodge |agi|defense | dodge
--Mazda Corolla 11:16, 6 March 2007 (MST)
May I save you some time with your 32 druid?
Dodge% = AGI * 0.1462% + 0.04% * (DEF - MLVL * 5) - 1.872%
When you get to level 70 it'll be:
Dodge% = AGI * 0.068% + 0.04% * (DEF - MLVL * 5) - 1.872%
--Beaza 09:16, 8 March 2007 (PST)
Dodge data for 70 druids and warriors Edit
I've been developing an exact combat simulation spreadsheet to help me choose gear for my Druid tank, and this has included a lot of research on dodge%. I'll be submitting my data to the wiki as time permits, but this is my first contribution.
My first suggestion is to always compute ratios as 'dodge/agility' rather than 'agility/dodge'. When I first started collecting data I kept doing the former, but the numbers were never consistent past a few decimal places. When I started computing 'dodge/agility' instead, all of a sudden every data point was identical to 4 decimal places, then followed by at least 3 0's or 9's in a row; to me this screams floating point precision error. I'm guessing this is because, internally, the game actually does have a constant that it multiplies your agility by, rather than dividing.
Anyway, to the best of my research and data, these are the exact numbers for warriors and druids at level 70:
DRUID base dodge -1.872%, dodge per agility 0.0680
WARRIOR base dodge +0.758%, dodge per agility 0.0333
(edit 3/24/07: I goofed my data on warrior dodge and wasn't accounting for 0.8% dodge via 5/5 Anticipation, so my warrior base dodge constant was 0.8% too high; the correct value is 0.758, not 1.558)
--Taleden 16:06, 22 March 2007 (EDT)
Druid Feral Dodge Edit
I did some tests on my druid and I can confirm that in Cat and Bear form, the base chance to dodge is -1.87%, and each point of agility adds 0.0680% chance to dodge. The numbers are different in caster form.
Dodge data for 70 Paladins Edit
Adding my computations to Paladins here. I was talented for +20 defence, so I manually subtracted .8% from dodge to get the following results
Human Pally Agi 77 + 0 Equiped Terokk's Quill for +54 Agi
Subtracting the two gives: 2.159999847 Divide by 54 It takes 25.00000177 agi to equal 1% dodge, or 1 agi = 0.0399999972 dodge
Which means a Paladin's base dodge is +0.652%
So, to figure out your total dodge as a paladin it is
=0.652+(Agi/25) +(Dodge Rating/18.923078536987)+(Defense *0.04)
Yozozo 22:25, 11 May 2007 (EDT)
Low level char dodge calculations. Edit
I did some investigations for low level characters and recorded dodge rating for different classes and races. It shows that the dodge calculation for lvl 1-9 differs significantly from higher lvl characters. All dodge values have been read from the tool tip and recalculated to the value it would have had with max defense for the given lvl. All tests are made with WoW version 2.1.x
A human warrior have a consistent dodge rating of 5% through out lvl 1-6. While levelling, the only source of fluctuation was due to varying defense, which has been compensated for.
lvl: Dodge : Agi
1 : 5% : 20
2 : 5% : 21
3 : 5% : 21
4 : 5% : 22
5 : 5% : 23
6 : 5% : 24
However, playing another race gives significantly different result. A night elf warrior have the following dodge values:
lvl: Dodge: Agi
1 : 7,06% : 25
2 : 7,01% : 26
3 : 7,01% : 26
4 : 6,96% : 27
5 : 6,92% : 28
6 : 6,89% : 29
7 : 6,89% : 29
And a night elf druid have:
lvl: Dodge : Agi
1 : 7,72% : 25
2 : 7,72% : 25
3 : 7,64% : 26
4 : 7,64% : 26
5 : 7,56% : 27
6 : 7,56% : 27
7 : 7,49% : 28
8 : 7,49% : 28
9 : 7,43% : 29
Also played this char to lvl 11, showing significantly different values for lvl 10 and above
10: 6,79% : 30
11: 6,80% : 31
Same for a tauren druid:
1 : 3,28% : 15
2 : 3,28% : 15
3 : 3,36% : 16
4 : 3,36% : 16
5 : 3,44% : 17
6 : 3,44% : 17
Even though AGI increases, the Nelf dodge value decreases which is counterintuitive. Still the Tauren case show the expected increase in dodge vs Agi.
Will present a theory which fit these values but is not supported in any other way.
I assume there is a base dodge value of 5% (6% for Nelf racial passive). For the first 10 lvls, The base value is then modified by the following formula:
dodge = base_dodge + (lvl_1_Agi - 20) / (class_Agi_per_dodge * (Agi - 5))
Here we have:
dodge : Actual dodge value shown in tooltip compensated for defense.
lvl_1_Agi: The agility the character has as lvl 1.
class_agi_per_dodge: A constant for the class.
Agi: Current Agi for the character.
Using Agi_per_dodge value of 14,55 for druids and 23,57 for warriors will explain these dodge values down to 0,01% which is within rounding error. Also note that the Agi_per_dodge values are very much like the values used for lvl 70 to determine how much Agi is needed to increase dodge.
For example, our Nelf dodge value at lvl 4, defense 20 would be calculated as:
6% + (25 - 20) / (14,55 * (26 - 5)) = 6% + 5 / 305,55 = 6% + 1,64% = 7,64%
which is the value observed during gameplay.
Can also observe that the -20 constant is the same as the lvl 1 human Agi. Also that within a class the Stat increases happens at the same lvls. This probably means all characters receive the same amount stat increase within a single class. The data is to small to support that conclusion though.
--Caturix 13:13, 9 June 2007 (UTC)
Level 70 Hunter data Edit
I have the following data, rounded to two decimal places
14.47% Dodge, 423 Agility, 0 Defense, 0 Dodge Rating 13.75% Dodge, 405 Agility, 0 Defense, 0 Dodge Rating 17.71% Dodge, 504 Agility, 0 Defense, 0 Dodge Rating 12.91% Dodge, 384 Agility, 0 Defense, 0 Dodge Rating
17.71% dodge - 12.91% dodge = 4.8% dodge 504 agi - 384 agi = 120 agi 120 agi / 4.8% dodge = 25 agi / 1% dodge
384 agi / (25 agi / 1% dodge) = 15.36% dodge 12.91% dodge - 15.36% dodge = -2.45% dodge
Therefore, a level 70 hunter has a negative 2.45% base dodge, and needs exactly 25 points of agility per 1 percent dodge chance.
- This doesn't seem to be completely accurate. Based on data from WoWArmory, it looks more like -5.45%. The above data seems consistent with having 3/3 Catlike Reflexes. Ra1330 23:42, 4 September 2007 (UTC)
Level 70 dodge data for all classesEdit
Constructed and calculated from data gathered on the 2.2 test realm server. Raw data can be viewed at http://spreadsheets.google.com/pub?key=pyBRMg7Prg27lugqWdymNNA
|Class||Base dodge||AGI:Dodge ratio||Dodge Rating:Dodge ratio|
Avagro 21:55, 14 September 2007 (UTC)
New formulas Edit
As a side note, refers to the constant for dodge (), and similarly for and ( is parry and is miss chance).
Avoidance diminishing returns Edit
- Dodge from Dodge Rating, Defense Rating, Agility.
- Parry from Parry Rating, Defense Rating.
- Chance to be missed from Defense Rating.
The following is the result of hours of work gathering data from beta servers and then spending even more time running multiple regression analysis on the data.
- DR for Dodge, Parry, Missed are calculated separately.
- Base avoidances are not affected by DR, (Ex: Dodge from base Agility)
- Death Knight's Parry from base Strength is affected by DR, base for parry is 5%.
- Direct percentage gains from talents and spells(ex: Evasion) are not affected by DR.
- c and k values depend on class but does not change with level.
Avoidance DR formula and , constants derived by Whitetooth (hotdogee [at] gmail [dot] com)
- The DR formula:
- diminished stat before converting to IEEE754.
- stat before diminishing returns.
- cap of the stat, and changes with class.
- value that changes with class.
Class Warrior 0.9560 47.003525 0.021275 88.129021 0.011347 16 Paladin 0.9560 47.003525 0.021275 88.129021 0.011347 16 Hunter 0.9880 145.560408 0.006870 145.560408 0.006870 Rogue 0.9880 145.560408 0.006870 145.560408 0.006870 Priest 0.9530 0 0 150.375940 0.006650 Deathknight 0.9560 47.003525 0.021275 88.129021 0.011347 16 Shaman 0.9880 145.560408 0.006870 145.560408 0.006870 Mage 0.9530 0 0 150.375940 0.006650 Warlock 0.9530 0 0 150.375940 0.006650 Druid 0.9720 0 0 116.890707 0.008555
Class Lv80 Dodge/Agi Lv80 Agi/1%Dodge Base Agi Warrior 0.013600 73.52941176 3.463600 Paladin 0.019200 52.08333333 3.268500 Hunter 0.013300 75.18796992 -5.450000 Rogue 0.024100 41.49377593 -0.590000 Priest 0.019200 52.08333333 3.183000 Deathknight 0.013600 73.52941176 0.758000 Shaman 0.019200 52.08333333 1.675000 Mage 0.019500 51.28205128 3.457500 Warlock 0.019200 52.08333333 2.035000 Druid 0.024000 41.66666667 4.951000
- Think very hard
After some creative thinking, this is what I got:
- Percentage =
- Lv 8 to 60:
- Lv 60 to 70:
Ability F = Weapon Skill 2.5 Expertise 2.5 Defense 1.5 Dodge 12.0 Parry 15.0 Block 5.0 Hit 10.0 Crit 14.0 Haste 10.0 Spell Hit 8.0 Spell Crit 14.0 Spell Haste 10.0 Resilience 25.0
- This formula is correct to the 13th decimal place, so I'm 100% sure this is what blizzard uses.
Stat Conversion Data for Reference Edit
- Combat rating needed for 1 point of stat
Level Dodge 1 6 2 6 3 6 4 6 5 6 6 6 7 6 8 6 9 6 10 6 11 6 12 6 13 6 14 6 15 6 16 6 17 6 18 6 19 6 20 6 21 6 22 6 23 6 24 6 25 6 26 6 27 6 28 6 29 6 30 6 31 6 32 6 33 6 34 6 35 6.23 36 6.46 37 6.69 38 6.92 39 7.15 40 7.38 41 7.62 42 7.85 43 8.08 44 8.31 45 8.54 46 8.77 47 9 48 9.23 49 9.46 50 9.69 51 9.92 52 10.15 53 10.38 54 10.62 55 10.85 56 11.08 57 11.31 58 11.54 59 11.77 60 12 61 12.46 62 12.95 63 13.48 64 14.06 65 14.69 66 15.38 67 16.13 68 16.97 69 17.89 70 18.92 71 20.36 72 21.91 73 23.57 74 25.36 75 27.29 76 29.36 77 31.59 78 33.99 79 36.57 80 39.35
I can also personally vouch for the DR formula for paladins - I've verified it in the game and it is accurate.
- Modified to use TeX markup. 1:29 PM, 5 Jun 2009 (EDT)
Stuff from unmerged talk page Edit
Upcoming Changes for 3.0 and/or Wrath Edit
I was just checking on the PTR with my Night Elf druid, and got the following numbers. I have no dodge rating, and no defense rating was involved on the gear I was experimenting with.
I used the macro from Talk:Formulas:Dodge to get more exact dodge chance numbers than the tooltip gives.
42.860145568848 dodge at 741 agi
35.747329711914 dodge at 602 agi
22.829992294312 dodge at 350 agi
From this, I can calculate that I'm getting something like 19.52 dodge per agi (might be some slight rounding error). Nerf bat sucks, huh? -_-
I didn't dig for any changes to the base dodge value.
Dodge Rating Edit
I've worked out all the math to update the formulas. However it takes me some time to convert this into readible prose & TeX (the math stuff) so have some patience. I outlined the high level formula first - I'll slowly add the details for dodge from agi, diminishing returns, un-maxxed defense skill, characters below level 80, and more examples hopefully this weekend.
- If a math person can help me troubleshoot, I'm a little bit off somewhere. Somehow I lost a negative, and I also am missing enough significant digits (I think it's d that's the problem there). I'm looking to solve Rd to 52.08333 instead of -51.6991. Thanks in advance... 5:28 PM, 8 Jun 2009 (EDT)
For characters who are not maximum level, you will need to calculate the rate of dodge per agility.
--[[ Name: LibStatLogic-1.1 Description: A Library for stat conversion, calculation and summarization. Revision: $Revision: 49 $ Author: Whitetooth Email: hotdogee [at] gmail [dot] com Last Update: $Date: 2009-04-14 17:41:40 +0000 (Tue, 14 Apr 2009) $ Website: Documentation: SVN: $URL $ Dependencies: UTF8 License: LGPL v3 Features: StatConversion - Ratings -> Effect Str -> AP, Block Agi -> Crit, Dodge, AP, RAP, Armor Sta -> Health, SpellDmg(Talent) Int -> Mana, SpellCrit Spi -> MP5, HP5 and more! StatMods - Get stat mods from talents and buffs for every class BaseStats - for all classes and levels ItemStatParser - Fast multi level indexing algorithm instead of calling strfind for every stat ]] --[[--------------------------------- :GetDodgePerAgi() ------------------------------------- Arguments: None Returns: ; dodge : number - Dodge percentage per agility ; statid : string - "DODGE" Notes: * Formula by Whitetooth (hotdogee [at] gmail [dot] com) * Calculates the dodge percentage per agility for your current class and level. * Only works for your currect class and current level, does not support class and level args. * Calculations got a bit more complicated with the introduction of the avoidance DR in WotLK, these are the values we know or can be calculated easily: ** D'=Total Dodge% after DR ** D_r=Dodge from Defense and Dodge Rating before DR ** D_b=Dodge unaffected by DR (BaseDodge + Dodge from talent/buffs + Lower then normal defense correction) ** A=Total Agility ** A_b=Base Agility (This is what you have with no gear on) ** A_g=Total Agility - Base Agility ** Let d be the Dodge/Agi value we are going to calculate. # 1 1 k # --- = --- + --- # x' c x # x'=D'-D_b-A_b*d # x=A_g*d+D_r # 1/(D'-D_b-A_b*d)=1/C_d+k/(A_g*d+D_r)=(A_g*d+D_r+C_d*k)/(C_d*A_g*d+C_d*D_r) # C_d*A_g*d+C_d*D_r=[(D'-D_b)-A_b*d]*[Ag*d+(D_r+C_d*k)] # After rearranging the terms, we get an equation of type a*d^2+b*d+c where # a=-A_g*A_b # b=A_g(D'-D_b)-A_b(D_r+C_d*k)-C_dA_g # c=(D'-D_b)(D_r+C_d*k)-C_d*D_r ** Dodge/Agi=(-b-(b^2-4ac)^0.5)/(2a) Example: local dodge, statid = StatLogic:GetDodgePerAgi() -----------------------------------]] function StatLogic:GetDodgePerAgi() local class = ClassNameToID[playerClass] -- Collect data local D_dr = GetDodgeChance() local dodgeFromDodgeRating = self:GetEffectFromRating(GetCombatRating(CR_DODGE), CR_DODGE, UnitLevel("player")) local baseDefense, modDefense = UnitDefense("player") local dodgeFromModDefense = modDefense * 0.04 local D_r = dodgeFromDodgeRating + dodgeFromModDefense local D_b = BaseDodge[class] + self:GetStatMod("ADD_DODGE") + (baseDefense - UnitLevel("player") * 5) * 0.04 local stat, effectiveStat, posBuff, negBuff = UnitStat("player", 2) -- 2 = Agility local A = effectiveStat local A_b = stat - posBuff - negBuff local A_g = A - A_b local C = C_d[class] local k = K[class] -- Solve a*x^2+b*x+c local a = -A_g*A_b local b = A_g*(D_dr-D_b)-A_b*(D_r+C*k)-C*A_g local c = (D_dr-D_b)*(D_r+C*k)-C*D_r --RatingBuster:Print(a, b, c, D_b, D_r, A_b, A_g, C, k) local dodgePerAgi = (-b-(b^2-4*a*c)^0.5)/(2*a) if a == 0 then dodgePerAgi = -c / b end return floor(dodgePerAgi*10000+0.5)/10000, "DODGE" end
Should it be explained more clearly how does Dodge affect the level and which (base) Cap it gives? I couldn't find any explanation. For small example, which dodge I've (or pet) as lvl 80 against lvl 73 npc, is there a cap? --Olliminatore (talk) 17:55, 8 June 2009 (UTC)
- I'm working on upgrading this article. It was severely out of date just a few days ago. Check out melee diminishing returns, melee mitigation, the combat rating system, and RatingBuster in the mean time. It may take me a while to get this article where I want it to be. 5:31 PM, 8 Jun 2009 (EDT)