Elitist Jerks
Register
Blogs
Forums


Go Back   Elitist Jerks » Public Discussion » Class Mechanics

 
 
LinkBack Thread Tools
Old 07/06/07, 3:27 PM   #1
Brodrik
Glass Joe
 
Human Paladin
 
Garona
Parsing - Separating MH from OH

Is there presently an online or offline parser that will differentiate main-hand hits from off-hand hits? It seems reasonably useful for the purposes of statistical analysis. While I haven't run across such a beast, that doesn't mean one doesn't exist, and I'd hate to solve an already-solved problem.

Offline
Old 07/06/07, 3:40 PM   #2
Spades
Piston Honda
 
Spades's Avatar
 
Gnome Rogue
 
Shattered Hand
There's nothing implicit in the combat log that I'm aware of that differentiates hand swings. Your best bet is to use weapons that are very different in terms of their damage ranged, so telling which is which is obvious.

"Existence has no pattern save what we imagine after staring at it for too long."
-Rorschach, Watchmen

Offline
Old 07/06/07, 3:48 PM   #3
Brodrik
Glass Joe
 
Human Paladin
 
Garona
No, to my knowledge there's nothing in the combat log or available in-game that differentiates them, except for damage range and timing. With the OH only doing 75% normal damage (at most), though, it seems that even damage for Mutilate rogues is fairly bimodal.

However, looking at damage ranges alone only works for successful hits. You could not, for example, determine if a miss/parry/dodge was MH or OH -- though determining (to within a certain probability) is (er, should be) possible.

Offline
Old 07/06/07, 3:55 PM   #4
Balkoth
Piston Honda
 
Human Priest
 
Greymane
If you get two weapons that are exactly the same speed you should be able to tell which is which, assuming you can tell two hits apart at a given point in time (and then work from there).

Offline
Old 07/06/07, 4:06 PM   #5
Brodrik
Glass Joe
 
Human Paladin
 
Garona
You can do so even if the weapons are not exactly the same speed. Sometimes the hits will occur close to one another, though unless both are a miss, damage ranges can help you guess which is which. Inaccuracy in the combat log (I get roughly sigma = 110 ms) does complicate things slightly.

Offline
Old 07/06/07, 5:57 PM   #6
sp00n
Bald Bull
 
Night Elf Rogue
 
Wrathbringer (EU)
Well I did make some expirements with parsing and with the damage range.
Basically it comes down to:
1) Saving the damage ranges for hits, crits and glances in an seperate array.
2) Sort the array by the value (each for hit, crit & glance).
3) Walking the array to find out the highest difference between two consecutive values in the sorted array.
4) Everything above the key for this value is main hand, everything below is off hand.

I didn't test this much, but for combat rogues it was somewhat precise.

Of course this method really only works if there are no buffs involved that can expire, like battle shout, any AP & armor trinket and procs, etc.

So for a "real" combat like a boss fight this is rather useless, because for example if you activate bloodlust brooch and have a mongoose proc, your off hand attacks will most like to similar or even more damage than your main hand attacks without these buffs.

Stopped Playing

Offline
Old 07/06/07, 6:03 PM   #7
Balkoth
Piston Honda
 
Human Priest
 
Greymane
Originally Posted by Brodrik View Post
You can do so even if the weapons are not exactly the same speed. Sometimes the hits will occur close to one another, though unless both are a miss, damage ranges can help you guess which is which. Inaccuracy in the combat log (I get roughly sigma = 110 ms) does complicate things slightly.
I was referring to the fact that if your MH and OH are the same speed, your combat log should look this this:

MH
OH
MH
OH
MH
OH

And will probably stay that way.

Offline
Old 07/06/07, 7:50 PM   #8
Brodrik
Glass Joe
 
Human Paladin
 
Garona
I was referring to the fact that if your MH and OH are the same speed, your combat log should look this this:
I know. But combat logs have time stamps, with a certain inaccuracy. The alternating MH/OH hits can be seen by eye, but the statistical analysis you can do with a decent algorithm should be able to do essentially the same thing for weapons with different speeds. :-)

spoon:
I have in fact done essentially that. Actually, what I did is track what buffs and debuffs are up, and pick a set of those that is consistent and produces the most data -- for example, no temporary +AP buffs up and 5 sunders up. Crits, glances, and blocks can be back-calculated to find the base damage dealt. If you graph this, it is distinctly bimodal. For someone with a slow MH and fast OH, you can pick a dividing point just fine. This, however, only labels successful hits -- not misses. :-)

General procedure:
1) Find the damage distributions for MH and OH and label the "easy" hits.
2) Use the "easy" labelled MH and OH hits to estimate the weapon speeds and combat log inaccuracy.
3) Now for a given labelling of attacks as MH and OH, you can write the probability of this labelling being correct. Maximize that probability.

Offline
Old 07/07/07, 7:02 AM   #9
sp00n
Bald Bull
 
Night Elf Rogue
 
Wrathbringer (EU)
For misses/dodges/parries, you can either go the way to take the time stamp into account, which of course suffers from certain inconsistencies in the combat log and certain buffs/debuffs (haste, swing timer after parrying, old sword spec proc, etc).
Or you could simply estimate to which hand they belong.
You already have the distribution for main hand and off hand attacks. Now for let's say for a 2.6 main hand and a 1.4 off hand (pretty much standard for rogues these days) your distribution will be (regardless of haste) 1-(1.4/(2.6+1.4))= 65% offhand and 35% main hand attacks.

Therefore 65% of your misses/dodges/parries *should* be coming from your off hand.

Stopped Playing

Offline
Old 07/07/07, 1:38 PM   #10
Brodrik
Glass Joe
 
Human Paladin
 
Garona
Therefore 65% of your misses/dodges/parries *should* be coming from your off hand.
Unless, of course, you have weapons of different types in each hand and a piece of gear that gives +skill in one and not the other. :-)

Anyway, what I'm getting is that there is nothing that attempts to do this. While estimates are nice and all, this seems like a useful exercise in statistical analysis to take up.

If 2.6 MH and 1.4 OH is standard now, I doubt in-combat damage-increasing buffs could push the OH's damage range up into the MH's damage range.

Interesting facts, if you didn't know: damage from a weapon seems to follow a Gaussian distribution. Not surprisingly, so does the timing of attacks (due to combat log inaccuracy). My combat log seems to have sigma ~= 110 ms.

Offline
Old 07/07/07, 2:43 PM   #11
zepi
Miekkamies
 
zepi's Avatar
 
Human Mage
 
Darksorrow (EU)
There is a problem with procs and trinkets and such, where your OH hits might actually approach the lower damage range of your normal MH hits.

It should still be possible to determine it if you analysed trinket uptimes, but it's not going to be all that easy.

Offline
Old 07/07/07, 6:06 PM   #12
Brodrik
Glass Joe
 
Human Paladin
 
Garona
Trinket uptimes -- and other buffs -- are pretty straightforward to track. They should add to both hands, though, and not widen the range. If your MH is slower than your OH, then it'll add more damage per hit to your MH than OH hits, so shouldn't cause them to run into one another.

Offline
Old 07/07/07, 8:03 PM   #13
Tornhoof
Piston Honda
 
Tauren Shaman
 
Die Silberne Hand (EU)
statistical values, for each encountered swing calculated the currently expected weapon damage, correct possible glancings and use a sliding window over the last few values, together with some statistic test to decide which offhand it was. This method works fine for enh shamans, unless they have very strange weapons.

Simple version of the method above is:

curdamage := current damage done by your weapon in the combat log
theodamagemh := currently theoretical damage done by your mh
theodamageoh := currently theoretical damage done by your oh

realdamage =curdamage/0.85 (assuming 15% armor reduction)

correct possible glancings, blocks etc.

now substract the realdamage value from the theoretical values and take the one with the smallest difference.

This is certainly not as correct as using a sliding window, but should do just fine for most cases.

I don't think there is a solution for strange weapon choices, like low dps mh, high dps oh or similar. Very fast,very fast might be problematic too.

Offline
Old 07/07/07, 10:08 PM   #14
Brodrik
Glass Joe
 
Human Paladin
 
Garona
Yeah, if you have low dps mh or slow oh and fast mh, you could be in trouble.

I actually do just that to get an initial labelling for the easy cases (hits with 5 sunders and no special buffs up), except instead of theoretical damage, I just measure the hits and notice that they're very bimodal, so you can visually pick out the two damage ranges. ;-)

Offline
Old 07/08/07, 1:25 PM   #15
Mendayen
Glass Joe
 
Human Rogue
 
Argent Dawn
Ok, there appears to be reasonable methods to estimate which hits are MH and which are OH. Does anyone have any parses of this? I'd be interested in seeing the split in white damage percentage between the MH and OH.

Is it worthwhile to single-wield a weapon instead of dual-wielding due to the miss rate penalty and off-hand damage penalty (at least while leveling up, where +hit gear is not readily available)?

Offline
 

Go Back   Elitist Jerks » Public Discussion » Class Mechanics

Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Combat Log Logging and Parsing Latito Public Discussion 22 06/23/09 4:22 PM
Separating DKP into contributions and gear: EPGP & Relational DKP teedog Public Discussion 17 10/25/06 2:37 PM
Combat Log Parsing Minotas Public Discussion 11 08/04/06 6:24 PM