FuBar_QuestsFu
WARNING: I don't actively use this myself any more. I wrote BetterQuest which I now use instead. If you're not incredibly wedded to FuBar, I'd recommend switching.
This is a quest-tracker replacement plugin for FuBar. It provides a tooltip which replicates /most/ of the information from the quest log. It can display (or not): quest level, difficulty, objectives, zones, and suchlike. It will put quest information into the tooltips for quest monsters and items. It will make quest levels appear when talking to NPCs.
If other people in your party are using QuestsFu it'll show you how many of each quest objective they've gathered.
If you want it to, and don't think it will annoy people, you can send a message to party chat when you advance a quest objective.
Shift-click on quests in the tooltip to copy the title to the chatbox if it's open. Control+Shift-click on quests in the tooltip to copy their objectives and status to the chatbox if it's open. Control-click on quests in the tooltip to share them with your party. Alt-click on quests in the tooltip to add them to Blizzard's quest-tracker.
QuestsFu includes a replacement for the Blizzard built-in quest tracker, which can track more than 10 quests at a time. Right-click on it to adjust its scale and coloration. (Or alt-right-click if you've locked the tracker.)
Achievements show up in QuestsFu's tracker. Ain't that cool?
Certain thanks must be given to MonkeyQuest, which motivated me to write this by being everything that I wanted in a quest-tracker replacement while annoying me by putting a frame over a quarter of my screen.
..\AddOns\FuBar_QuestsFu\Blizz\Blizz.lua line 197:
bad argument #2 to 'format' (number expected, got nil)
That line contains the following code:
button:SetText(format('[%d] %s', select(i, ...), button:GetText()))
The problem seems to be twofold. On the one hand, the button:GetText() returns nil in some cases and on the other hand it seems that GetGossipAvailableQuests() no longer returns triplets (title, level, isLowLevel) per Quest. Trying to do the daily fishing quest in Dalaran I get (Dangerously Delicious, -1, nil, 1, nil). As there is not yet any information available on what each of these fields means, for the time being the easiest fix is probably to add
--[[ as the first line of the function and ]] at the end before the return
local function gossip_loop(buttonindex, do_texture, ...)
--[[
local numQuests = select('#', ...)
[snip]
end
]]
return buttonindex + 1
end
This fix works for me. Replace the three functions in FuBar_QuestFu\Blizz\Blizz.lua with the three below:
local function gossip_loop(available, buttonindex, do_texture, ...)
-- GetGossipAvailableQuests() returns Quintuplets
-- GetGossipActiveQuests() returns Quatruplets
local step = 4 -- match for active
if available then
step = 5
end
local numQuests = select('#', ...)
if (numQuests > 1) then
for i=1, numQuests, step do
local button = _G["GossipTitleButton"..buttonindex]
local title = select(i, ...)
local level = select(i+1, ...)
button:SetText(format('[%d] %s', level, title))
if do_texture then
local texture = _G["GossipTitleButton"..buttonindex.."GossipIcon"]
local _,_,_,_,_,objectives,complete = quixote:GetQuest(select(i-1, ...))
if complete==1 or objectives==0 then
texture:SetDesaturated(false)
else
texture:SetDesaturated(true)
end
end
buttonindex = buttonindex + 1
end
end
return buttonindex + 1
end
function QuestsFu_Blizz:GOSSIP_SHOW()
local buttonindex = 1
if GetGossipAvailableQuests() then
buttonindex = gossip_loop(true, buttonindex, false, GetGossipAvailableQuests())
end
if GetGossipActiveQuests() then
buttonindex = gossip_loop(false, buttonindex, true, GetGossipActiveQuests())
end
end
The line
local _,_,_,_,_,objectives,complete = quixote:GetQuest(select(i-1, ...))
must be
local _,_,_,_,_,objectives,complete = quixote:GetQuest(select(i, ...))
http://forums.worldofwarcraft.com/thread.html?topicId=22749241671&sid=1
Has anyone else noticed this? Have there been changes in the quest related API?
I'm running v3.3 and it's exhibiting some funny behavior. Namely, the Autowatch appears to ignore my settings, or some of them, and watches new quests whether I have it checked or not. In addition, it autowatches the wrong quests. When I pick up a new quest, or progress on a quest, the notification (via SCT) is accurate, but the quest that gets added to the tracker is the one listed directly below the correct quest in the quest log.
Not getting any errors, and adding quests by hand (ALT+click) works just fine.
237 -- Add quest givers to the quest log
so not sure if this part is needed unless you want the quest log (L) to have the name of the quest giver. Any ideas if this can be removed? :)
--if name and givers and givers.db.char.questgivers[name] then
--local questObjectives = QuestLogObjectivesText:GetText()
--QuestLogObjectivesText:SetText(givers.db.char.questgivers[name] .. '\n\n' .. questObjectives)
--end
In theory, disabling the givers option in the right click menu should have prevented this from ever executing, but for some reason that option won't disable...
Date: 2010-01-02 00:15:43
ID: 3
Error occured in: Global
Count: 1
Message: ..\AddOns\FuBar_QuestsFu\Blizz\Blizz.lua line 244:
attempt to index global 'QuestLogObjectivesText' (a nil value)
Debug:
[C]: ?
FuBar_QuestsFu\Blizz\Blizz.lua:244:
FuBar_QuestsFu\Blizz\Blizz.lua:240
(tail call): ?
[C]: QuestLog_SetSelection()
..\FrameXML\QuestLogFrame.lua:776: QuestLog_OpenToQuest()
..\FrameXML\WatchFrame.lua:122: WatchFrameLinkButtonTemplate_OnLeftClick()
..\FrameXML\WatchFrame.lua:100: WatchFrameLinkButtonTemplate_OnClick()
[string "*:OnClick"]:1:
[string "*:OnClick"]:1
AddOns:
Hey - Im running r421 and when i pick up a quest i get the following error
FuBar_QuestsFu-r43802\Blizz\Blizz.lua:244 attempt to index global 'QuestLogObjectivesText' (a nil value)
(tail call): ?:
<in C code>: in function `QuestLog_SetSelection'
Interface\FrameXML\QuestLogFrame.lua:158 in function `QuestLogTitleButton_OnClick':
<string>:"*:OnClick":1: in function <[string "*:OnClick"]:1>
Locals:
(*temporary) = "LeftButton"
(*temporary) = false
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = <function> defined =[C]:-1
And when im abandon a quest i get
FuBar_QuestsFu-r43802\Blizz\Blizz.lua:244 attempt to index global 'QuestLogObjectivesText' (a nil value)
(tail call): ?:
<in C code>: in function `QuestLog_SetSelection'
Interface\FrameXML\QuestLogFrame.lua:716 in function `QuestLog_SetNearestValidSelection':
Interface\FrameXML\QuestLogFrame.lua:355 in function <Interface\FrameXML\QuestLogFrame.lua:330
<in C code>: in function `QuestLog_Update'
Interface\FrameXML\QuestLogFrame.lua:255 in function <Interface\FrameXML\QuestLogFrame.lua:252
Locals:
(*temporary) = "QUEST_LOG_UPDATE"
(*temporary) = "QUEST_LOG_UPDATE"
(*temporary) = nil
(*temporary) = nil
(*temporary) = <function> defined =[C]:-1
--------------------------
UPDATE
I deleted the folder called Blizz inside Fubar_QuestFU folder and now it works without errors
[2009/12/15 05:18:56-175-x1]: FuBar_QuestsFu-r43802\Blizz\Blizz.lua:244: attempt to index global 'QuestLogObjectivesText' (a nil value)
(tail call): ?:
<in C code>: in function `QuestLog_SetSelection'
Interface\FrameXML\QuestLogFrame.lua:158: in function `QuestLogTitleButton_OnClick':
<string>:"*:OnClick":1: in function <[string "*:OnClick"]:1>
I can't find anything about this error.
Ideas anybody?
change "local questObjectives = QuestLogObjectivesText:GetText()"
to "local questObjectives = QuestLogObjectivesText:SetText(questObjectives)"
D: 1
Error occured in: Global
Count: 1
Message: ..\AddOns\FuBar_QuestsFu\Tracker\Tracker.lua line 441:
attempt to index global 'WatchFrameTitleButton' (a nil value)
Debug:
(tail call): ?
FuBar_QuestsFu\Tracker\Tracker.lua:441: Update()
FuBar_QuestsFu\Tracker\Tracker.lua:209: LoadWatchedQuests()
FuBar_QuestsFu\Tracker\Tracker.lua:143: OnEnable()
FuBar_QuestsFu\Tracker\Tracker.lua:149:
FuBar_QuestsFu\Tracker\Tracker.lua:149
[string "safecall Dispatcher[1]"]:4:
[string "safecall Dispatcher[1]"]:4
[C]: ?
[string "safecall Dispatcher[1]"]:13: ?()
...Ons\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:92: Fire()
...FuBar_QuestsFu\lib\LibQuixote-2.0\LibQuixote-2.0.lua:392: ?()
...FuBar_QuestsFu\lib\LibQuixote-2.0\LibQuixote-2.0.lua:115:
...FuBar_QuestsFu\lib\LibQuixote-2.0\LibQuixote-2.0.lua:114
Not sure if anyone else is having the same issue but perhaps someone that knows more then me can look at this and suggest a possible fix.