Remove Advertisements

Parry Hasting Addon

Warning: Theorycraft inside.

Moderators: Fridmarr, Worldie, Aergis, theckhd

Re: Parry Hasting Addon

Postby theckhd » Thu Feb 11, 2010 3:07 pm

Cliffton wrote:Most spells aren't (theoretically) impacted by parry hastes, so they aren't a whole lot of benefit to look at and may just make it more difficult to see what's going on in the plots. Cleaves/"on next attack" type abilities are more interesting, as these would occur at the same time as a parry-hasted attack. If these can be solidly detected then that will help us find parry-hastes.

Spells can reset the swing timer though, which can throw off the data. By including SPELL_DAMAGE and SPELL_MISSED, you were accounting for some of this. But by excluding SPELL_INTERRUPTED, we were missing a few.

Cliffton wrote:Even if they are excluded however, a sufficient amount of autoattack data is all that is truly needed to determine a yea/nay on parry haste enabled/disabled. For this reason, it seems that the most reliable approach to detecting parry hastes to me is to just focus on getting autoattack parry haste detection working flawlessly first (and test it extensively), then add in cleaves and/or spells for a smaller number of bosses.

As far as I can tell, it works perfectly for auto-attacks already. The Anub'arak parse shows this pretty clearly, as do the rest of the "mostly melee" bosses. What's really throwing a wrench into the works is spells, since they can either reset the swing timer or not, and can have different cast times.

The Jaraxxus parse in particular shows that handling these helps - by identifying which ones are potentially affected by spellcasting, we've identified nearly every anomalous data point. Similarly in the Anub'arak parse with Freezing Slash.

The next step is to add some extra filtering to the swingData log. I want to remove all of the spell casts and only show the auto-attacks, which should clean up the plots considerably. We still need them in swingData to properly calculate dSwings, but we can skip plotting them so that we only see the appropriate auto-attacks.

Cliffton wrote:There will always be some minor variance in boss attack time (a few ms here and there), those are caused by issues like server latency, tank moving, paladin healer accidental taunts, dual wielding bosses, etc. Severe outliers in the data should just be discarded and ignored, because they are things like Bonestorm between autoattacks which really don't help us find parry-hastes. The algorithm discards these outliers by setting the Y-axis limits such that they are simply hidden from view. For abilities like Saber Lash that hit multiple players concurrently, it seems the best way to deal with these and many other cleave attacks is to simply discard data from the swingData array after is it populated.
Code: Select all
totally pseudo: if swingData(i) < 0.02 seconds, then swingData(i)=[]


Yeah, that's basically what I'm attempting to do with my Cleave handling code. I agree that it may make more sense to drop the extra lines after the loop rather than during, since by that point we've calculated the timestamps as well.

I want to look carefully at the Onyxia parse though, my gut feeling is that there's a mechanic we're overlooking that's causing all of the anomalies, and that once we handle it properly everything will fall into place. In any event, all of the other bosses look great now, I'll try and post updated plots as I find time (tomorrow will be busy though).
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of Grehn|Skipjack.
MATLAB 5.x, Call to Arms 5.x, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
User avatar
theckhd
Moderator
 
Posts: 7658
Joined: Thu Jul 31, 2008 3:06 pm
Location: Harrisburg, PA

Re: Parry Hasting Addon

Postby Cliffton » Thu Feb 11, 2010 4:47 pm

Spells can reset a bosses' swing timer, but that won't affect our analysis of whether a boss parry hastes or not. A reset swing timer will show up as a longer than usual attack in the data not a shorter than usual one.

I'm not sure what you're trying to do by incorporating reset swing timers.... are you trying to correlate those attacks for which a swing timer is reset with a concurrent parry and subtract out the swing timer reset? I suppose that would improve the accuracy a smidge.
Cliffton
 
Posts: 17
Joined: Thu Jan 21, 2010 12:19 pm

Re: Parry Hasting Addon

Postby theckhd » Thu Feb 11, 2010 5:01 pm

Cliffton wrote:Spells can reset a bosses' swing timer, but that won't affect our analysis of whether a boss parry hastes or not. A reset swing timer will show up as a longer than usual attack in the data not a shorter than usual one.

I'm not sure what you're trying to do by incorporating reset swing timers.... are you trying to correlate those attacks for which a swing timer is reset with a concurrent parry and subtract out the swing timer reset? I suppose that would improve the accuracy a smidge.


Well, for example, consider the following sequence:

0.0 Melee
2.0 Melee
3.0 Instant-cast spell that resets swing timer
5.0 Melee

If you're not checking for that spell (regardless of outcome), then your log will see a 3-second gap between the 2.0 melee and the 5.0 melee, which will look odd. The analysis will basically ignore it, because it's obviously not parry-hasted, which is fine. However, what if the sequence is this:


0.0 Melee
2.0 Melee
3.0 Instant-cast spell that resets swing timer
4.2 Melee with 40% parry-haste (0.6*2=1.2)

Now your analysis will see a 2.2 second difference between the two melees, which is just long enough to look fine. But it's actually a false negative. By correctly looking for all spells that reset the swing timer, you don't let any of those slip through the cracks.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of Grehn|Skipjack.
MATLAB 5.x, Call to Arms 5.x, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
User avatar
theckhd
Moderator
 
Posts: 7658
Joined: Thu Jul 31, 2008 3:06 pm
Location: Harrisburg, PA

Re: Parry Hasting Addon

Postby Cliffton » Fri Feb 12, 2010 1:44 am

Makes sense, it would make it easier to identify a parry haste in a smaller data set.

I'm not sure if you're thinking of making a new color/shape dot in the legend or not, but what I would do to keep the graph as easy to interpret as possible follows. When a swing timer is reset, compute the time between auto-attacks then adjust the swingData time by subtracting the time between the last timer reset and the previous swing. Plot this "adjusted" time, not the actual time between attacks. That way, the parry-hasted dots will show up below the mean swing time, just like "normal" parry hastes in which there were no swing timer resets.
Cliffton
 
Posts: 17
Joined: Thu Jan 21, 2010 12:19 pm

Re: Parry Hasting Addon

Postby theckhd » Fri Feb 12, 2010 6:44 am

Cliffton wrote:Makes sense, it would make it easier to identify a parry haste in a smaller data set.

I'm not sure if you're thinking of making a new color/shape dot in the legend or not, but what I would do to keep the graph as easy to interpret as possible follows. When a swing timer is reset, compute the time between auto-attacks then adjust the swingData time by subtracting the time between the last timer reset and the previous swing. Plot this "adjusted" time, not the actual time between attacks. That way, the parry-hasted dots will show up below the mean swing time, just like "normal" parry hastes in which there were no swing timer resets.

If we only include swing-reset spells in swingData, this should automatically do what you suggested. My plan was to keep the graphs as is, but make the dots for spell-like abilities disappear (or change them into an icon that's far less obtrusive, maybe a tiny dot or a circle or something).

That can be done just by keeping the current code format and indexing swingData appropriately, I think. I'll be fairly busy today, so I'm not sure how soon I'll be able to get it finished.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of Grehn|Skipjack.
MATLAB 5.x, Call to Arms 5.x, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
User avatar
theckhd
Moderator
 
Posts: 7658
Joined: Thu Jul 31, 2008 3:06 pm
Location: Harrisburg, PA

Re: Parry Hasting Addon

Postby deigo » Fri Feb 12, 2010 8:36 am

Hey guys I'm keeping a close eye on this thread. I find the data interesting. My question is will similar data have to be collected for heroic ICC bosses as well? Or is it safe to assume blizz will not change any parry haste mechanics from the normal modes?
Image
User avatar
deigo
 
Posts: 26
Joined: Fri Oct 23, 2009 12:29 am

Re: Parry Hasting Addon

Postby theckhd » Fri Feb 12, 2010 8:43 am

Deigo wrote:Hey guys I'm keeping a close eye on this thread. I find the data interesting. My question is will similar data have to be collected for heroic ICC bosses as well? Or is it safe to assume blizz will not change any parry haste mechanics from the normal modes?

It's fairly safe to assume, but if you want to upload a combat log somewhere, it can be very quickly confirmed.

I hope to unlock 10-man heroic mode this weekend, so I should have at least some heroic data from next week's 10-man runs.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of Grehn|Skipjack.
MATLAB 5.x, Call to Arms 5.x, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
User avatar
theckhd
Moderator
 
Posts: 7658
Joined: Thu Jul 31, 2008 3:06 pm
Location: Harrisburg, PA

Re: Parry Hasting Addon

Postby deigo » Fri Feb 12, 2010 10:35 am

Sure I'll upload when we get there, but you will probably beat me to 10 man heroic theck, as we are focused on 25 arthus atm. But i hope to unlock heroic on 10 and 25 by next week as well.

What kind of data would u need? I assume a normal parse wont due. Or am I wrong?
Image
User avatar
deigo
 
Posts: 26
Joined: Fri Oct 23, 2009 12:29 am

Re: Parry Hasting Addon

Postby theckhd » Fri Feb 12, 2010 10:52 am

Deigo wrote:Sure I'll upload when we get there, but you will probably beat me to 10 man heroic theck, as we are focused on 25 arthus atm. But i hope to unlock heroic on 10 and 25 by next week as well.

What kind of data would u need? I assume a normal parse wont due. Or am I wrong?

Just a regular old combat log created with /combatlog (or whatever the slash command is, I use Loggerhead). The same type you feed to the WoL parser.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of Grehn|Skipjack.
MATLAB 5.x, Call to Arms 5.x, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
User avatar
theckhd
Moderator
 
Posts: 7658
Joined: Thu Jul 31, 2008 3:06 pm
Location: Harrisburg, PA

Re: Parry Hasting Addon

Postby steadypal » Fri Feb 12, 2010 8:33 pm

http://www.worldoflogs.com/reports/18oqs1wqu4pp5f7e/



icc 10, all bosses minus arthas pretty much
steadypal
 
Posts: 1206
Joined: Sat Mar 15, 2008 12:28 pm

Re: Parry Hasting Addon

Postby Rhiannon » Sat Feb 13, 2010 2:29 am

I think he's after an unparsed log file, ie the raw .txt that WoW generates rather than after World of Logs has interpreted.
Rhiannon
 
Posts: 1061
Joined: Mon Mar 03, 2008 8:17 am

Re: Parry Hasting Addon

Postby Cliffton » Sat Feb 13, 2010 9:05 am

Correct, an unprocessed (raw) text file as generated by /combatlog is the correct input for the parser. The WoL links do not provide access to the raw combatlog and so cannot be used as input.
Cliffton
 
Posts: 17
Joined: Thu Jan 21, 2010 12:19 pm

Re: Parry Hasting Addon

Postby Freeagent » Thu Feb 18, 2010 8:14 am

Hello,

the code posted http://maintankadin.failsafedesign.com/ ... 30#p540539 doesn't seem to work for me.

Apparantly you commented out the nLines and defaulted it to 1
and even after I changed that I get still errors.

I'm trying to evaluate a combatlog of mine with wich is 4 hours long.

Do I have to split the log per boss, as I think the parser just added everything to marrowgar.
Code: Select all
octave haste.m
GNU Octave, version 3.0.1

fpath = ./logs/
bossList =

{
  [1,1] = Lord Marrowgar
  [2,1] = Lady Deathwhisper
  [3,1] = High Overlord Saurfang
  [4,1] = Deathbringer Saurfang
  [5,1] = Festergut
}

nLines =  1387190
boss = Lord Marrowgar
ans = Lord Marrowgar, Line # 100000 of 1387190, 7.2%
ans = Lord Marrowgar, Line # 200000 of 1387190, 14.4%
ans = Lord Marrowgar, Line # 300000 of 1387190, 21.6%
ans = Lord Marrowgar, Line # 400000 of 1387190, 28.8%
ans = Lord Marrowgar, Line # 500000 of 1387190, 36.0%
ans = Lord Marrowgar, Line # 600000 of 1387190, 43.3%
ans = Lord Marrowgar, Line # 700000 of 1387190, 50.5%
ans = Lord Marrowgar, Line # 800000 of 1387190, 57.7%
ans = Lord Marrowgar, Line # 900000 of 1387190, 64.9%
ans = Lord Marrowgar, Line # 1000000 of 1387190, 72.1%
ans = Lord Marrowgar, Line # 1100000 of 1387190, 79.3%
ans = Lord Marrowgar, Line # 1200000 of 1387190, 86.5%
ans = Lord Marrowgar, Line # 1300000 of 1387190, 93.7%
Elapsed time is 452.10527 seconds.
error: `ParseTime' undefined near line 209 column 34
error: evaluating if command near line 100, column 9
error: evaluating for command near line 91, column 5
error: near line 301 of file `haste.m'
Freeagent
 
Posts: 6
Joined: Thu Feb 18, 2010 7:15 am

Re: Parry Hasting Addon

Postby theckhd » Thu Feb 18, 2010 8:24 am

Freeagent wrote:Apparantly you commented out the nLines and defaulted it to 1
ans even after I changed that I get still errors.

I commented that part out to speed things up when I was doing some debugging (and didn't particularly need the % updates). I was doing just a single Ony log at the time, and the nLines code was a significant portion of the runtime. Uncommenting it shouldn't hurt anything.

Your problem is this:
Freeagent wrote:error: `ParseTime' undefined near line 209 column 34

The ParseTime function isn't defined, because I had to move it out into its own m-file. Newer versions of MATLAB won't let you define subfunctions within a script m-file (don't ask me why, it's a PITA).

Download ParseTime.m and put it in the working directory, and it should run properly.

Eventually I'll write up a "how-to" for this, but at the moment I'm both a)very busy and b)trying to focus on getting the spell-handling working properly.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of Grehn|Skipjack.
MATLAB 5.x, Call to Arms 5.x, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
User avatar
theckhd
Moderator
 
Posts: 7658
Joined: Thu Jul 31, 2008 3:06 pm
Location: Harrisburg, PA

Re: Parry Hasting Addon

Postby Freeagent » Fri Feb 19, 2010 9:30 am

Looks like octave really doesn't like the .m file (at least here).
After adding the ParseTime.m into the WD I got the following errors.

error: strfind: text must be a string or cell array of strings
error: evaluating if command near line 47, column 3
error: called from `strfind' in file `/usr/share/octave/3.0.1/m/strings/strfind.m'
error: if: error evaluating conditional expression
error: evaluating if command near line 255, column 21
error: evaluating if command near line 253, column 17
error: evaluating for command near line 252, column 13
error: evaluating for command near line 251, column 9
error: evaluating if command near line 99, column 5
error: evaluating for command near line 90, column 1
error: near line 300 of file `ph_analyzer3.m'


Maybe I can send you a logfile of mine and you could create some graphs for me?
Freeagent
 
Posts: 6
Joined: Thu Feb 18, 2010 7:15 am

PreviousNext

Return to Advanced Theorycraft and Calculations

Who is online

Users browsing this forum: No registered users and 1 guest


Remove Advertisements

Who is online

In total there is 1 user online :: 0 registered, 0 hidden and 1 guest (based on users active over the past 5 minutes)
Most users ever online was 380 on Tue Oct 14, 2008 6:28 pm

Users browsing this forum: No registered users and 1 guest