Minion Beta! - Help us test our new AddOn updater. Get it now!
Download
(438 Kb)
Download
Updated: 05-09-15 09:07 PM
Pictures
File Info
Compatibility:
The Adventure Continues (6.1)
Updated:05-09-15 09:07 PM
Created:07-22-11 11:47 PM
Downloads:4,969
Favorites:61
MD5:
6.1

QuestKing 2

Version: 2.2.0
by: Barjack [More]

NOTE

This addon does have some in-game configuration via slash-commands (for example, for dragging and locking the tracker). However, more detailed customization (if required) must be done by editing values in Lua files. See options.lua for more information. There are no plans to add detailed in-game configuration menus.

Description

QuestKing is a complete replacement for Blizzard's default objective tracker/quest tracker. It is designed to be simple, compact and unobstrusive while supporting all the features of the default tracker, plus some of its own.

QuestKing is inspired by old-school quest trackers like GuestGuru, bEQL and MonkeyQuest. However, QuestKing is written from scratch to be a modern objective tracker that supports not only quests, but all the new types of objectives that Blizzard has gradually added to WoW. This includes achievements, scenarios, dungeon objectives, bonus quests, timed objectives, challenge modes, proving grounds, automatic quests, and so on. I have tried to keep the tracker as efficient as possible, and it should hopefully be kind to both your CPU and memory.

The following standard objective tracker features are supported:

  • Quests! Including quest items (non-tainting and usable in combat), sequenced quests, timed quests, and notifications for automatically received/completed quests.
  • Achievements! Including guild achievements and timed achievements.
  • Scenarios! Including bonus objectives and reward animations.
  • Dungeons! Plus bonus objectives and reward animations.
  • Challenge Modes! Including a fully functional medal timer.
  • Proving Grounds! Including wave timers and endless mode scoring.
  • Bonus Objectives! Including progress bars, animations, and reward display.
  • POI Tracking! Just like the default tracker, you can click quests to set your active destination.

QuestKing also provides the following *additional* features:
  • A special notification which appears when you loot an item which starts a quest.
  • Zone/category headings whose contents can be shown or collapsed.
  • Toggleable tracker with three different levels of information display (full, contextual only, none).
  • Three different tracking display modes which you can freely toggle between (quests only, achievements only, combined).
  • Compact, space-efficient design.
  • Quests and objectives colour coded according to level, completion, progress percentage, etc.
  • Customizable position, size, colours and font.
  • Animations for various events including objective progress, new or updated quests and objectives, and so on.

And with the optional but included QuestKingSounds standalone addon:
  • Quest sounds (fully customizable, with options for quest completion, objective completion, and objective progress sounds).

Sadly, there are a couple of things QuestKing does not and probably will not support. Because QuestKing is a categorized tracker, it does not suport changing the sort order dynamically based on zone/distance. It will always show your tracked quests in the same order and category as the quest log itself. It also takes a more conservative approach to supertracking (see the section on supertracking below).

Options

QuestKing comes with a number of slash commands for basic customization. They are as follows.

/qk lock - Locks and unlocks the tracker, making it draggable.
/qk scale - Sets the tracker's scale. Default is 1. Set to 1.2 for 20% larger, etc.
/qk alpha - Sets the tracker's transparency. Default is 0.9, and valid values are 0 to 1.
/qk origin - Sets the point from which the tracker "grows". Default is TOPRIGHT. Other valid values are TOPLEFT, BOTTOMLEFT, BOTTOMRIGHT.
/qk reset - Resets all collapsed objectives and headers.
/qk resetall - Resets all QuestKing settings (global and for the current character).

Many other options are configured by editing values in Lua files. A list of all default options is shown in options.lua, with comments provided next to many variables in case their name is not sufficiently descriptive. You may edit options directly in options.lua if you wish, but you should also consider using options_override.lua to override just the defaults that you want to change. See the comments at the top of options_override.lua for more information.

QuestKingSounds

QuestKing comes with a bundled addon, QuestKingSounds, providing sound alerts for objective progress, completed objectives, and completed quests. This addon is entirely separate from QuestKing and neither depends on the other. You can install QuestKing without QuestKingSounds, or even install QuestKingSounds by itself without using QuestKing. If you do want to use it, you may configure it in the same way QuestKing is configured by looking at options.lua and options_override.lua.

Colours

Quests are coloured according to their difficulty, with some exceptions. Completed quests are coloured bright blue. Completed quests that can be turned in from anywhere are dark blue. Quests with no valid objectives are coloured pale green, indicating a probable "connector" quest (a quest that doesn't need to be "completed" but rather simply requires you to visit some other questgiver, often in another zone or area). Objectives are coloured fading from red to green as they are completed, then finally pale purple at completion (to make it easy to distinguish between a 100/100 objective and a 99/100 objective). Many of these colours are configurable in Lua should you wish to do so.

In-Game Tracker Usage

Mode Button [Q/A/C button]:
- [Left click] to cycle between quest (Q) and achievement (A) view mode.
- [Right click] to cycle into combined (C) mode, where both are shown together (achievements are shown under their own header).

Collapse Button [+/-/x button]:
- [Left click] to toggle collapsing the tracker (+/- modes). A collapsed tracker won't show tracked quests or achievements, but it will still show important and contextual information, like dungeon objectives, quest notifications, and bonus objectives.
- [Right click] to collapse the tracker completely (x mode). A tracker in this mode will never show any information at all.
- [Shift] + [Left click] to cycle the tracker between alternative position presets (if in preset mode).
- [Mouse wheel] to fade in a tracker backdrop (helps to increase visibility).

Notifications (e.g. automatic quests, quest-starting item pickups):
- [Left click] to open.
- [Right click] to dismiss.

Headers:
- [Left click] to collapse.

Quests/Achievements:
- [Left click] to open.
- [Right click] to set active supertracked quest.
- [Shift] + [Left click] to link to chat while the chat editbox is open.
- [Shift] + [Left click] to open the quest in Classic Quest Log, if it's installed (only when chat editbox is not open).
- [Alt] + [Left click] to hide objectives.
- [Alt] + [Right click] to stop tracking this quest/achievement.

A note on supertracking

Supertracking is the term for the "actively tracked" quest whose objective is highlighted more strongly on your map and minimap, and for which a minimap arrow appears. On the default objective tracker and the default map, you do this by clicking the big circled numbers. In QuestKing, you can still use the map as usual, or you can do it by right-clicking the title of a quest (a small yellow dot will appear after the name of the actively supertracked quest). You can right click the same quest again to remove the dot and disable supertracking. Unlike the Blizzard system, you can even use this to supertrack bonus objectives or quests in other zones.

Note however that QuestKing takes a more careful approach to automatic supertracking compared to the default objective tracker. First, QuestKing strongly supports the concept of supertracking no quest at all, and will never automatically set a supertrack target if supertracking is not currently active. This means you won't get minimap arrows constantly appearing and changing around when you're not doing any questing at all. QuestKing will automatically change the supertracked quest only if you are actively questing. This is determined to be the case in three situations:

1) You complete all the objectives of a quest. In this case the closest available quest will be supertracked (which might be the turn-in of the same quest).
2) You accept a new quest. In this case also, the closest available quest will be supertracked.
3) A quest you were tracking is removed from your quest tracker. Again, the closest available quest will be supertracked.

Note that even without any quest supertracked, quest objective areas will always be available and highlighted on the map and minimap. Supertracking only sets the minimap arrow and makes the objective area stand out more.

Notes

Looking for an old-school style quest log to go with your old-school style tracker? I recommend Classic Quest Log by Gello. It's a great addon that works perfectly alongside QuestKing, without any overlapping functionality.

I would like to thank the creators and maintainers of the quest trackers who came before me. Bayi, mrobrian, Gregity, Lazare, Jim-Bim, and many others. QuestKing was heavily inspired by the appearance and functionality of these great addons. And of course, thank you to the authors of Blizzard's own objective tracker (which I referred to constantly while writing this), and to all those who helped document WoW's UI on sites like WoWProgramming and WoWpedia.

Comments, constructive feedback, and bug reports are welcome. I hope you enjoy this addon.

2.2.0
- Improved how superceding objectives are displayed (e.g. Garrison invasion point objectives). If you want the old behaviour (all objectives always visible), then set opt.hideSupersedingObjectives to false.
- Slightly increased the time bonus rewards are displayed from 7 to 10 seconds.
- Fixed how "reptutation"-style objectives are displayed to avoid truncation.
- Fixed some issues in locales that show objective description/count in reverse order (e.g. ruRU).

2.1.1
- Fixed an error that happened when the tracker queued an update for after combat.
- Changed supertracking to always check for the closest POI when accepting a quest.

2.1.0
- Added "/qk scale" to set the tracker scale.
- Added "advanced background" option for better looking backgrounds.
- Fixed the default objective tracker re-appearing after visiting the barber.
- Fixed the scenario stage objective overlay appearing twice when zoning into a scenario or dungeon. (Workaround for Blizzard bug with LevelUpDisplay.)
- Cleaned up some code.

2.0.0
- Massive re-write for WoD.
Optional Files (0)


Archived Files (15)
File Name
Version
Size
Author
Date
2.1.1
437kB
Barjack
04-12-15 11:00 PM
2.1.0
436kB
Barjack
04-12-15 07:35 AM
2.0.0
436kB
Barjack
04-06-15 03:29 AM
0.94
22kB
Barjack
08-30-12 05:13 PM
0.93
22kB
Barjack
08-30-12 02:25 AM
0.92
22kB
Barjack
08-29-12 10:49 PM
0.91
22kB
Barjack
08-29-12 10:31 PM
0.9
21kB
Barjack
08-29-12 10:14 PM
0.72
17kB
Barjack
02-17-12 06:18 AM
0.71
17kB
Barjack
02-17-12 06:05 AM
0.7
17kB
Barjack
02-17-12 05:44 AM
0.66
17kB
Barjack
12-10-11 06:08 PM
0.61
15kB
Barjack
12-03-11 01:11 PM
0.6
16kB
Barjack
08-28-11 03:21 PM
0.5
14kB
Barjack
07-22-11 11:47 PM


Post A Reply Comment Options
Unread 02-17-12, 12:32 PM  
zork
A Pyroguard Emberseer
 
zork's Avatar
AddOn Author - Click to view AddOns

Forum posts: 1410
File comments: 3459
Uploads: 90
Currently testing. Did a little adjustment to the button code. You can make use of predefined button templates.

What I'm using now:
lua Code:
  1. --minimize button
  2.     local minimizeButton = CreateFrame("Button", "QuestKing_TrackerMinimizeButton", titlebar, 'UIPanelButtonTemplate')
  3.     QuestKing_TrackerMinimizeButton = minimizeButton
  4.     minimizeButton:SetWidth(18)
  5.     minimizeButton:SetHeight(18)
  6.     minimizeButton:SetText('+')
  7.     minimizeButton:RegisterForClicks("LeftButtonUp", "RightButtonUp")
  8.     minimizeButton:SetScript("OnClick", QuestKing.MinimizeButtonOnClick)
  9.  
  10.     -- mode button
  11.     local modeButton = CreateFrame("Button", "QuestKing_TrackerModeButton", titlebar, 'UIPanelButtonTemplate')
  12.     QuestKing_TrackerModeButton = modeButton
  13.     modeButton:SetWidth(18)
  14.     modeButton:SetHeight(18)
  15.     modeButton:SetText('Q')
  16.     modeButton:RegisterForClicks("LeftButtonUp", "RightButtonUp")
  17.     modeButton:SetScript("OnClick", QuestKing.ModeButtonOnClick)

That way the buttons will use the UIPanelButtonTemplate and you get all the textures right away. Any label can be removed, just using SetText on the button is enough.

Hint: The button text object in the template has a key value called "Text". Thus you can still reach the text object via: _G["QuestKing_TrackerModeButtonText"]

Result


Info
http://wowprogramming.com/docs/widgets/Button

Additionally I fixed the dragging.

lua Code:
  1. --create dragframe at first
  2.     local df = CreateFrame("Frame", "QuestKingTrackerDragFrame", UIParent)
  3.     df:SetSize(10,10)
  4.     df:SetPoint("TOPRIGHT", -100, -250)
  5.     df:SetMovable(true)
  6.     df:SetUserPlaced(true)
  7.  
  8.     local frame = CreateFrame("Frame", "QuestKing_Tracker", df) --anchor dragframe
  9.     QuestKing_Tracker = frame
  10.     frame:SetPoint("TOPRIGHT",0,0) --important, anchor the frame to the topright
  11.  
  12.     -- titlebar
  13.         -- ...
  14.     titlebar:SetScript("OnMouseDown", function ()
  15.         df:StartMoving()
  16.     end)
  17.     titlebar:SetScript("OnMouseUp", function ()
  18.         df:StopMovingOrSizing()
  19.     end)

Thus dragging the titlebar makes the frame move without it going crazy on minimize.

Very nice mod. Ty.
__________________
| Simple is beautiful.
| Roth UI | Roth UI FAQ | GoogleCode | Zork | TDMOG

"I wonder what the non-pathetic people are doing tonight?" - Rajesh Koothrappali (The Big Bang Theory)
Last edited by zork : 02-17-12 at 01:46 PM.
zork is offline Report comment to moderator  
Reply With Quote
Unread 02-17-12, 06:07 AM  
Barjack
A Black Drake
AddOn Author - Click to view AddOns

Forum posts: 83
File comments: 58
Uploads: 7
Updated to 0.72

I've uploaded a version 0.72, which attempts to fix the taint issue. Taint was being caused when item buttons were created/moved during combat, so now QuestKing will delay moving or creating the buttons directly until combat ends. If the text on the Q/A/C mode button turns red, that means an update may be being delayed until the end of combat. Hopefully this solves or comes close to solving the problem.

Since I've changed the item button code a bit (I had to change their parent frame to prevent them automatically moving/hiding with the buttons during combat), I might have introduced some bugs related to that. Let me know if you see anything weird happening with item buttons not disappearing or staying in the wrong position even after combat is over.

I'm pretty sure the current solution isn't perfect, but hopefully it's enough to make it so this problem very rarely if ever happens.
Last edited by Barjack : 02-17-12 at 06:19 AM.
Barjack is offline Report comment to moderator  
Reply With Quote
Unread 02-16-12, 05:17 AM  
Barjack
A Black Drake
AddOn Author - Click to view AddOns

Forum posts: 83
File comments: 58
Uploads: 7
Re: Taint?

Originally Posted by leobolin
First of all, thanks for this awesome addon. I'ts a great replacement to QuestGuru. Keep up the good work!

I'm getting "QuestKing has been blocked from an action only available to the Blizzard UI." a lot when using quest items via the tracker. It seems to trigger randomly, but once it has been triggered it happens every time until I complete the quest in question or reload my UI. Any idea if you will be able to fix this?
Thanks for the report. Personally I've never seen this happen but you mention it's related to using quest items, so I think I know what might be causing the problem (specifically, when quest item buttons are created/hidden/moved during combat). I think I know of a decent work-around, but it'll require some fiddling and I haven't had a lot of time to play lately. Hopefully over the next few days I'll have an opportunity to work on this.

If you're able to provide a taint.log that would probably be helpful, but since I have a decent idea of the cause it's probably not necessary.
Barjack is offline Report comment to moderator  
Reply With Quote
Unread 02-13-12, 12:27 PM  
leobolin
A Defias Bandit
AddOn Author - Click to view AddOns

Forum posts: 2
File comments: 25
Uploads: 1
Taint?

First of all, thanks for this awesome addon. I'ts a great replacement to QuestGuru. Keep up the good work!

I'm getting "QuestKing has been blocked from an action only available to the Blizzard UI." a lot when using quest items via the tracker. It seems to trigger randomly, but once it has been triggered it happens every time until I complete the quest in question or reload my UI. Any idea if you will be able to fix this?
Last edited by leobolin : 02-13-12 at 12:27 PM.
leobolin is offline Report comment to moderator  
Reply With Quote
Unread 02-08-12, 12:37 PM  
Shabazza
A Kobold Labourer

Forum posts: 1
File comments: 52
Uploads: 0
Hi,

sorry that i cause you trouble to look into your code. I have found the problem. It's "DailyQuestHelper". On WoWAce the is an Ticket open with this behavior.

Keep up the good work.

regards, Sha
Shabazza is offline Report comment to moderator  
Reply With Quote
Unread 02-07-12, 06:43 PM  
stako
A Murloc Raider
 
stako's Avatar
AddOn Author - Click to view AddOns

Forum posts: 6
File comments: 20
Uploads: 2
Originally Posted by Shabazza
Hi,

i have a strange behavior with my questlog. Sometimes when i log in, my quest are looking like this:

http://img96.imageshack.us/img96/8292/log1k.jpg

When i open the worldmap f.e. or reloadui once the log looks like this:

http://img843.imageshack.us/img843/5676/log2v.jpg

When i click on another quest, and go back to the previous, then it looks broken again.

I don't know if it is a QuestKing problem, but when i disable the addon, everything is fine...

regards, Sha
I've had the same issue and I have never used QuestKing. Something else causes this.
stako is offline Report comment to moderator  
Reply With Quote
Unread 02-07-12, 06:01 PM  
Barjack
A Black Drake
AddOn Author - Click to view AddOns

Forum posts: 83
File comments: 58
Uploads: 7
Originally Posted by Shabazza
Hi,

i have a strange behavior with my questlog. Sometimes when i log in, my quest are looking like this:
Hmm. I really don't know if this can be QuestKing's fault. QuestKing doesn't actually do anything to the quest log. In fact it even does very little to the quest tracker, only forces it it hide itself by replacing WatchFrame_Update. If you wanted to test that you could open tracker.lua and replace "function WatchFrame_Update()" with "function zzzWatchFrame_Update()" temporarily so that is not being overridden any more.

I can't reproduce this bug on my end though, nor can I understand how it might happen given the virtually zero level of interaction QuestKing has with the quest log (QuestKing does use standard quest log functions for seeing how many quests and such you have, but it never actually tries to set or change anything in the log). So it's difficult for me to say what might be causing this.
Last edited by Barjack : 02-07-12 at 06:02 PM.
Barjack is offline Report comment to moderator  
Reply With Quote
Unread 02-07-12, 01:14 PM  
Shabazza
A Kobold Labourer

Forum posts: 1
File comments: 52
Uploads: 0
Hi,

i have a strange behavior with my questlog. Sometimes when i log in, my quest are looking like this:

http://img96.imageshack.us/img96/8292/log1k.jpg

When i open the worldmap f.e. or reloadui once the log looks like this:

http://img843.imageshack.us/img843/5676/log2v.jpg

When i click on another quest, and go back to the previous, then it looks broken again.

I don't know if it is a QuestKing problem, but when i disable the addon, everything is fine...

regards, Sha
Shabazza is offline Report comment to moderator  
Reply With Quote
Unread 12-03-11, 01:13 PM  
Barjack
A Black Drake
AddOn Author - Click to view AddOns

Forum posts: 83
File comments: 58
Uploads: 7
An update for 4.3 has been added. No known bugs were introduced by the patch, so please consider this an optional upgrade. The only features are a workaround for a very rare bug that only happens for some people, and the addition if a very minor feature (ability to disable item buttons).

Of course, if you do encounter bugs related to the patch or otherwise, feel free to let me know. Once again, 0.61 is essentially a TOC update for most people and may be considered optional.
Last edited by Barjack : 12-06-11 at 02:36 AM.
Barjack is offline Report comment to moderator  
Reply With Quote
Unread 10-16-11, 04:38 PM  
Barjack
A Black Drake
AddOn Author - Click to view AddOns

Forum posts: 83
File comments: 58
Uploads: 7
Awesome. Thanks for confirming that fix for me. I'll include it in the next release.
Barjack is offline Report comment to moderator  
Reply With Quote
Unread 10-16-11, 07:46 AM  
Sec
A Cyclonian
 
Sec's Avatar

Forum posts: 48
File comments: 177
Uploads: 0
Apologies for the late reply.

I made the change in code that you specified. Upon reloading my UI, I was no longer given any errors. On character log-in, again, no errors. While I do have a heavily modified UI (custom, not pre-packaged), QuestKing was the only addon running to modify the quest tracker as I try to avoid stacking addons to avoid complications.

If any other issues pop up, I'll report on them, but all is well now. Thank you for the fix.
Sec is offline Report comment to moderator  
Reply With Quote
Unread 10-10-11, 02:18 PM  
Barjack
A Black Drake
AddOn Author - Click to view AddOns

Forum posts: 83
File comments: 58
Uploads: 7
Originally posted by Sec
[b]Hi there, I get the following error on log-in, as well as when I obtain items (like buy something from an NPC). My quest tracker appears minimized and if I try to expand it, I also trigger the following error.
Hi. Thanks for the bug report. I had a look at that function and have a pretty good idea what is going wrong. Unfortunately I can't actually replicate your problem even though I can guess at what's causing it, so I can't tell on my PC if this fix actually works.

Are you comfortable editing your .lua file and testing to see if this fix works? The change is:

To go tracker.lua, line 1587 (where that error is happening). From 7 lines before that line, to 1 line after, there will be a section of code that looks like this:

Code:
		if (isHeader) and (not isCollapsed) then
			currentHeader = title
			tinsert(headerList, title)
			if not questSortTable[title] then
				questSortTable[title] = {}
			end
		elseif (not isHeader) and (IsQuestWatched(i)) then
			tinsert(questSortTable[currentHeader], i)
		end
replace this block of code with:

Code:
		if (isHeader) then
			currentHeader = title
			tinsert(headerList, title)
			if not questSortTable[title] then
				questSortTable[title] = {}
			end
		elseif (not isHeader) and (IsQuestWatched(i)) then
			if (not questSortTable[currentHeader]) then
				questSortTable[currentHeader] = {}
			end
			tinsert(questSortTable[currentHeader], i)
		end
If you could let me know if that works, that'd be great. I've already made the change myself but since I don't know if it actually works, I'd prefer to hold off on releasing a new version until the fix is confirmed to work.

Incidentally, are you running an addon that changes the appearance of the Quest Log in some way, or something similar? Some sort of unusual set-up in the log? Although I can guess at what's going wrong, as far as I know it should be impossible for this to happen in the default UI, so I'm curious as to what's going on here.
Barjack is offline Report comment to moderator  
Reply With Quote
Unread 10-10-11, 07:29 AM  
Sec
A Cyclonian
 
Sec's Avatar

Forum posts: 48
File comments: 177
Uploads: 0
Hi there, I get the following error on log-in, as well as when I obtain items (like buy something from an NPC). My quest tracker appears minimized and if I try to expand it, I also trigger the following error.

Code:
Message: Interface\AddOns\QuestKing\tracker.lua:1587: bad argument #1 to 'tinsert' (table expected, got nil)
Time: 10/10/11 09:28:55
Count: 7
Stack: [C]: ?
[C]: in function `tinsert'
Interface\AddOns\QuestKing\tracker.lua:1587: in function <Interface\AddOns\QuestKing\tracker.lua:1564>
Interface\AddOns\QuestKing\tracker.lua:912: in function <Interface\AddOns\QuestKing\tracker.lua:901>
Interface\AddOns\QuestKing\tracker.lua:415: in function <Interface\AddOns\QuestKing\tracker.lua:399>

Locals:
Sec is offline Report comment to moderator  
Reply With Quote
Unread 09-22-11, 11:33 AM  
Barjack
A Black Drake
AddOn Author - Click to view AddOns

Forum posts: 83
File comments: 58
Uploads: 7
Originally posted by Shabazza
Hello,

great lightwight questaddon. Is there a way to hide the questitems? I use Questbar an i dont need a button to klick on the tracker.

regards, Sha
Currently, there's no option to do that. I have added it to the next version, but it's probably not worth releasing an entire update for such a small change (only 1 line). In the next version, you can set itemAnchorSide to nil to hide item buttons.

For the current version, you can edit this manually since it's very simple. First set itemAnchorSide to nil instead of "left". Then change this line (approx line 1317):

Code:
if item and ((isComplete ~= 1) or (showItemWhenComplete)) then
to

Code:
if itemAnchorSide and item and ((isComplete ~= 1) or (showItemWhenComplete)) then
This change will make sure item buttons are never created if itemAnchorSide is nil.
Barjack is offline Report comment to moderator  
Reply With Quote
Unread 09-22-11, 11:02 AM  
Shabazza
A Kobold Labourer

Forum posts: 1
File comments: 52
Uploads: 0
Hello,

great lightwight questaddon. Is there a way to hide the questitems? I use Questbar an i dont need a button to klick on the tracker.

regards, Sha
Shabazza is offline Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: