Welcome!

Any development news for TSM will be posted here! Posts will contain things like recently added features, announcements for new beta versions, what is coming in the near future, as well as general TSM-related news / commentary.

Sunday, August 14, 2011

So, I had an idea for an something that would use the new blizzard auction house APIs to update your AuctionDB market value / min buyout in game. The way the blizzard APIs work is there is a file that contains details on every auction currently on the auction house. Blizzard updates this file roughly once every hour.

This application will automatically download the auction data when blizzard updates it, do some processing on it, and stick it into an lua file for AuctionDB to use. If you are logged into the game, you just have to reload your UI to load the new data into the game. AuctionDB will detect that the data has been updated and treat it as if you just ran a scan.

There is a lot more that can be done with this data that I have planned. Right now it doesn't do any more than just treat the data as a regular scan of the auction house. I could do things like: in-game notifications of things that are below your dealfinding prices, put info about the market value of the other faction into the tooltip for easy cross-faction arbitrage, and have it keep a historical record of the data and show TUJ-style graphs in game.

Saturday, August 6, 2011

Disclaimer: By "upcoming changes" I mean I coded them today but they are in code that is at least a month from being finished and released.

So, since TSM was first created, there has been anti-bot code in some form or another. There are two things that are more obvious than the others.

The first is that only buttons for repetitive actions are named. This includes the "Craft Next", "Post Auction', "Cancel Auctions", etc buttons but not buttons like the auto-mail button or the button to start a post / cancel scan. This is a pretty simple but effective way to prevent complete automation while still allowing legitimate users the convenience of not having to break their mice while posting auctions.

The second obvious anti-bot measure is the anti-bot check that occasionally pops up when you start a scan with the Auctioning module. This requires the user to enter a random number to continue with the scan. This has also been very effective.

I had to break up the wall of text somehow :)

These new changes are a lot more subtle and also a lot more effective. The random-number popup in Auctioning will be going away but trust me when I say I wouldn't take it out unless it was being replaced by something better, which it is. The random-number popup will be replaced by a "test" which is much simpler and less annoying. This test will also appear far less often. In fact, I wouldn't be surprised if legitimate users never saw it at all. I had a hard time triggering it myself in testing :).

Just wanted to give you guys a heads-up so when the random-number popup does get removed you're not surprised or worried that I'm taking it easy on botters. Botters, like thieves (yes, I went there), are looking for the easiest way to automate things and I will continue to ensure that TSM is not used for performing illegitimate actions in WOW.

I am aware there are some bots which currently use older versions of TSM or even APM. There isn't much I can do about this except for take comfort in the fact that eventually blizzard will change something to break those versions and they aren't getting any of the awesome new features that are being added.

Thursday, August 4, 2011

So I haven't posted here in a while because my time to work on TSM has been pretty low lately. There has been some work getting done though. There was a new version of the Crafting module released just last week for example. Anyways, that's not the topic of this post. The topic on this post is why you should almost always check that "Display lua errors" option (Game Menu -> Interface -> Help).

First a bit of background info. All wow addons are coded in a language called lua (and no it's not an acryonym - it's pronounced "loo-a") and they run completely contained within wow (rather than running side-by-side wow). This is so that for the most part, if there is an error in an addon and it crashes, it doesn't effect the game itself. The game will report the error to the user as a "lua error" (or if you aren't displaying errors it won't display it to the user - but everything else it does, described below, still happens).

That's not all that happens when an error pops up though. Wow will remove the piece of code that caused the error from the addon for the duration of the session (until you reload / re-log). This means that if you got an error when you tried to open some window, if you tried to open the window again, either nothing at all would happen or you'd get another error because the function to open the window is suddenly gone and whatever you did to try to open the window won't be able to find said function causing an error.

If you didn't have lua errors enabled, you'd have no clue why some window is blank or some button didn't do anything or all an addon's features suddenly disappeared and if you went to the author saying "the addon is randomly disappearing", that would be give the author nothing to go on to try and help you fix it. Alternatively, if you went to the author and posted the lua error, that error usually contains everything the author needs to fix the problem (although often a bit of explanation as to what you were doing when you got the error / how to reproduce it is necessary). The error contains info on exactly what went wrong and the specific line of code that caused the error.

Essentially, error messages are the best tool developers can use to fix errors. I'd say 90% of bug reports that don't include lua errors don't end up in any action being taken. So, (and I'm not just speaking for TSM in this post) check to make sure you are displaying lua errors and next time you see one, take 2 minutes to report the error to the addon author. Is 2 minutes of your time too much to ask for the hundreds of hours of the developer's time that went into making the addon?

PS: I would say not displaying lua errors during raids / arenas would be reasonable (don't want something randomly covering any part of your screen during a boss fight).