You are here

World of Warcraft

World of Warcraft may be one of the better games of the decade. It is certainly the highest grossing game in existence right now and possibly one of the most engaging. It is also really time-consuming.

Kids driving Yogg-Saron down FDR Drive

I have been doing some amount of work on combat log analysis recently. There are certain things for which neither WWS nor WoL are suitable.

When Blizzard redid the combat logs in 2.4, they added GUID columns for each participant in the line (source and destination or, if you prefer, subject and object). The GUIDs can be used to uniquely identify a participant.

According to WoWWiki's page on UnitGUID(), you can determine the type of object using a bitmask. If you shift the GUID right 52-bits and do a boolean AND with 0x7:

  • 0 is a player.
  • 1 is a world object.
  • 3 is an NPC.
  • 4 is a pet.
  • 5 is a vehicle.

(In US realms, the third digit from the left will show this. In EU realms, the higher bits seem to be used for something recently.)

So, given the following GUIDs:

  • The entity with GUID 0x0200000000322CF9 is a player. (My mage on Stormrage.)
  • The entity with GUID 0xF130008061003BD7 is an NPC. (Thorim)
  • The entity with GUID 0xF13000752E004257 is also an NPC. ("Desecrated Ground V")
  • The entity with GUID 0xF14007BC02000063 is a pet. (An imp.)
  • The entity with GUID 0xF150008208030C23 is a vehicle. (Yogg-Saron)

Yes, Yogg-Saron is a vehicle. Other mobs which appear as vehicles include the Constrictor Tentacles, Ignis, and Archavon the Stone Watcher. All of these mobs have effects that physically hinder or affect a character in some fashion. This suggests that these are designated as vehicles as a side effect of the internal mechanic for these effects.

There is something hilarious about Yogg-Saron as a vehicle though.

Bringing things back up to date

I've been bad about updating the site recently. Unfortunately, a lack of "important" insights and time has kept me from doing much. Perhaps I will get someone else to write.

Anyway, what I've been doing:

  • Raiding. A lot.

    Raiding five days per week does decrease the amount of time available. We did get Yogg-Saron down two weeks ago in the 10-man raids so at least that's something.

  • Working on Rawr.

    What started out as contributing patches for Rawr's DPSDK model has turned into a position as an official developer. My focus is still fixing small bugs in the DPSDK model.

With 3.2 coming soon, I hope to do more posts. However, my track record on this is somewhat poor so we'll see how that goes.

The last fight of 3.0 won

The Avarice Alliance downed Sartharion with all three drakes up in both 10-man and 25-man on Saturday, 21 March 2009. This keeps Avarice among the top raiding entities on Stormrage (although still a little slow, we should be better in Ulduar).

ReadyCheckFix released

ReadyCheckFix is now ready for public use.

ReadyCheckFix fixes a bug added by Blizzard in 3.0.2 that prevents the ready check sound from playing for all checks.

To learn more, go to the project page.

CharmCommand released

CharmCommand is now ready for public use.

CharmCommand provides commands for assigning raid symbols, also called "lucky charms." These are suitable for use in macros or from the edit box/command line.

To learn more, go to the project page.

S4 gear for PvE (mages)

I really need to get back in the habit of doing updates.

Anyway: S4 gear for PvE for mages doesn't seem to really be that great an idea. Last I checked in Rawr, the S4 pieces all tended to lose out to gear acquirable in early T5 if not earlier.

The neck is a different case. The Guardian's Pendant of Subjugation is a very nice piece. When gemmed with one of the new epic haste tems, it comes out superior to Loop of Cursed Bones from Zul'jin, which is a pretty nice neck piece. (When I finish updating the item list, I'll be able to show the difference better.)

Great minds...

So while I was not working on Phaedra's List (work has been pretty busy for the last few weeks and I've gotten no work done), the fact that Rawr, a druid modeling project now has a module for mages too was brought up on the EJ mage theorycrafting thread. And it turns out that it does most of what I'd wanted to achieve with Phaedra's List. So I guess I'm putting the project on hiatus, especially since I still don't have time at the moment.

This is not to say I won't come back and work on it... I think that there's a definite niche for the tool but I don't have the time to work on it right now. And a proper implementation of the gear parser (quartermaster) would definitely allow for a backend for something like Lootzor... and it could be kept up to date too! (This being an outstanding issue with Lootzor...)

REXML bug strikes again

It turns out that the tooltips had not been completely parsed correctly.

When originally doing the testing on rishu, I ran into an issue that the Test::Unit::XML gem wasn't working correctly. It would accept two radically different XML paragraphs with doctype headers and say that they were equal.

After some amount of digging, I found this bug on the REXML tracker. I made the (one-line) change provided and suddenly Test::Unit::XML started working again.

The ruby install on winry provided with a newer version of REXML than what was on rishu. However, it still did not incorporate the fix in the bug report. Unfortunately, I used winry to validate the item tooltip XML since it was faster.

After adding the fix to REXL, the validation script is dying because there are still unimplemented tags. Yay for more work.


It feels so good to be raiding again and to actually have momentum. In the past four weeks, we've gone from only having Lurker Below down in SSC to actually making attempts at Vashj.

This week, for a change of pace, we're revisiting Tempest Keep. Today we try Al'ar for the first time. I should remember to have my Ashtongue Cowl just in case it looks like we're getting close today.

Parsing the info XML

Having completed the tooltip XML parsing, it's time to work on the info XML parsing. So far I have learned two things:
1. There's a lot of extraneous crap in the info XML parsing that likely isn't going to do anyone much good.
2. 65,535 characters is not enough to hold the info XML for some items (e.g. Rune Thread).

The second one took me a short time to figure out. Suddenly REXML was crashing and I couldn't quite figure out why. It turns out that the issue is that I originally stored the XML in a TEXT column, which is limited to 65,535 characters. Changing the column to a MEDIUMTEXT in MySQL increases the capacity to something like 16 million characters, which should be more than sufficient.

I'm letting the parse checker run now. If it completes, that'll give me everything I need to work on the next step: Extracting the item schema.