What can Autochievement do?
- Automatically track achievements in continent, zone or subzone.
- Automatically track holiday achievements (Winter Veil, Children's Week, etc).
- Show achievement for units and items in tooltip.
How to configure it?
Hit <escape> for game menu, click "Interface", find "Autochievement" in the "Addons" tab.
Only tracking achievements in zone and subzone is enabled by default.
Is it heavy on CPU or memory?
No, not really. It use about 1.5 MB memory at all times, but nearly no CPU (except when scanning achievements, which is done the first time you use Autochievement and when you manually rescan the achievements). Tracking achievements is done when you change zone, and optionally you can show incomplete achievements for a unit or an item in the tooltip. Both are very simple things to do and doesn't use a lot of CPU (you won't notice it).
Issues?
Plenty. This addon takes a very generic approach to the problem. It is difficult to figure out which zone/unit/item an achievement belongs to, and what you have to do in order to get the achievement. Autochievement doesn't know anything about any achievements, it makes an educated guess which achievements to show for which zone/unit/item. Often it does a decent job at that, but sometimes it doesn't:
- Even if you've told Autochievement not to track holiday achievements, it will track holiday achievements when you're in a zone that got a holiday achievement. The option of tracking holiday achievements simply mean that you should track them at all times when that holiday is active.
- When hovering the mouse over certain races (Undead, for example) then it will show achievements for completely unrelated things, such as capturing (non-combat) pets. This is not because Undead players makes excellent pets, but because a criteria of certain achievements is "Undead".
- Several achievements won't show even if it makes sense to show the achievement when in a zone or hovering the mouse over a unit or an item. Why? Because Autochievement was unable to connect the achievement title/category/criteria to the zone/unit/item.
- Autochievement may track/show an achievement where the relevant criteria is already completed, although rescanning the achievements should fix this. This is because Autochievements only check if the achievement itself is completed when tracking/showing achievements, not if the relevant criteria is fulfilled. This is slightly complex and could make tracking/showing achievements slightly more CPU intensive, but the main reason I haven't fixed it is because I'm lazy.
Going to fix it?
Depends. The idea is that Autochievement shouldn't know anything specific about achievements (i.e. I don't want a huge list that says when and where to track achievements). It is probably quite possible to improve the algorithms that scans/tracks/shows the achievements, leave a comment if you come across an achievement that you really think Autochievement should [not] show in a zone or for an unit/item.
How does it work?
Autochievement scans all the achievements, picking out the name of the achievement, the name of the category the achievement is in and criterias for the achievement. Then it removes some unwanted words to make it easier to match the achievement to a zone/unit/item, before it creates a hashmap which is a fast way to look something up.
Use the source, Luke.
Why?
I have no idea, really. I kinda don't care that much about achievements, most of them are not really an "achievement" anyways, more of "Here! Take this plaque for falling down without dying! Good job!".
Although, I got the idea when someone started talking about what achievements they had left in certain battlegrounds for the "Battlemaster" title, and I thought it could be useful for them to automatically track the achievements in battlegrounds so they easily could see what they were missing. And well, I enjoy coding, so I just got stuck with spending time on it. Thought I might as well just put it out here, maybe other people will find it useful.