The Mage's Parchment

First Mod Ever!

Well, I've looked at LUA files before, when I wanted WoW to behave differently than default. I'm a CS student in college, so I thought that programming background would make it EASY! I mean, how hard could just swapping around a couple of variables and stuff be?

Well, as it turns out, not only was I unfamiliar with LUA (and familiar with Java / C++ / C#, which have very different syntax for ... well, pretty much everything...), but I didn't realize how big the WoW API was, or the Widget API, or how many different events, etc... The method of combining XML and LUA (and macros, at times!) is still rather foreign to me, I don't really understand it. So given all of the previous, I pretty much abandoned every attempt I would periodically make at doing anything significant to my UI by myself.

Until a few days ago when I found QuestIon. The original author hasn't been heard from in almost a year, and then it was picked up four months later by another, who released like, three versions or so, and then he too was never heard from again. "Too bad," I thought. "There are lots of good ideas in the comments on wowinterface.com for good additions to this mod."

The cool thing about QuestIon is that it's flexible enough to dynamically make a list of quests to watch, and it gets out of your way and disappears when you're not using it, but comes back quickly with just a teeny tiny mouseover. The problem that I first discovered with it was that if you tell it to show all the quests within 2 levels of you, it would display that. And if you told it to show all the quests in your current location, it would display that. But if you checked both options, it would display the UNION of those two sets, where to me, I thought very naturally that it should display the INTERSECTION instead. So, I was once more motivated to start digging into the code.

It was frustrating at first. For one, this is not an Ace2 addon, meaning that all the code for creating the cascading menu is all right in the addon. It's BIG! (Or at least, it looked that way at first). First, I tried searching for the text on the button I'd click to toggle the filtering. After a while, I found the text, and sure enough, it was in the localization.lua!!! So I linked that text to a constant, found THAT in the addon itself, and finally had myself a starting point!

Eventually, I did fix it. But then I had another idea. So I was able to hack that one out real quick. And I read all the comments that others had made on other sites, and I thought, yeah, that'd be really cool if someone could do that. Someone who ... knows the code. At that point, I realized that was me. I DID kind of already know the code, I was getting familiar with the method of registering events, parsing them, controlling structure, etc. So, I tracked down the easiest to implement items first, and went for it.

I looked all over inside other mods to understand how they achieved their effects. I like to think this was more because I didn't know the WoW API than that I suck as a programmer. (Thanks here go to the respective authors of CT_Core, Fizzwidget Levelator, and TipTac) Then I incorporated them into QuestIon!

Good to go! With a few minor last polishing tweaks, and two bugfixes later, I have a once-more stable mod, with all new features. I've posted it here (check it out, if you haven't already) and on WoWInterface.com. (Curse is apparently by far the more popular site. Certainly, it looks nicer.  :) ) Anyways, I feel very satisfied to have been able to contribute to the community, finally. School's starting again next week, and I may just have to cancel my WoW account for the semester, but I was glad to be able to at least be some small benefit to my fellow Horde.

Too bad there's no way for Curse to filter out players who's mains are Allies and prevent them from downloading this...  ;) Just kidding!

  • Comments

Add Comment  

Add

You need to login or register to post.

Benefits of Registration

  • Interact with hundreds of thousands of other gamers on an open social network.
  • Post your stories, news, images, videos, and other content to share.
  • Create a network with your fellow gamers or join an existing one.
  • Gain reputation for everything you do.
 
  • net said 
    Sat, Aug 18 2007 9:45 AM ()

    Congratulation on your first mod, and thanks for hosting with us:)

  • 1 page(s)