Thread Tools Display Modes
12-04-14, 02:03 PM   #1
siweia
A Flamescale Wyrmkin
 
siweia's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2011
Posts: 126
Unable to click quest button

I found it unable to use the quest button on objectivetrackframe,
And I have no idea about how this happened.
Could be due to the bag addons?
Anyone here would show me a clue?
  Reply With Quote
12-04-14, 03:28 PM   #2
Xrystal
nUI Maintainer
 
Xrystal's Avatar
Premium Member
AddOn Author - Click to view addons
Join Date: Feb 2006
Posts: 5,929
Do you have an addon that does anything to the objective frame even as simple as moving it ?

I've noticed that the moment the main frame is re-parented in an addon the quest button becomes unsecure and kicks off a fuss with an error or just refuse to work. Could be coincidental.
__________________


Characters:
Gwynedda - 70 - Demon Warlock
Galaviel - 65 - Resto Druid
Gamaliel - 61 - Disc Priest
Gwynytha - 60 - Survival Hunter
Lienae - 60 - Resto Shaman
Plus several others below level 60

Info Panel IDs : http://www.wowinterface.com/forums/s...818#post136818
  Reply With Quote
12-04-14, 08:12 PM   #3
Phanx
Cat.
 
Phanx's Avatar
AddOn Author - Click to view addons
Join Date: Mar 2006
Posts: 5,617
There are also tons of other ways you can taint the objective tracker that don't even require touching the objective tracker itself. Personally I just gave up trying to get working quest item buttons on the objective tracker, and am using p3lim's ExtraQuestButton addon to (basically) put quest items on the extra action button; it doesn't let you pick which item to use, but automatically selects the item based on your current location, and so far I've never needed to use a different item. Another option would be to use the quest item ring in OPie, or another addon that creates a separate menu/bar for quest items.
__________________
Retired author of too many addons.
Message me if you're interested in taking over one of my addons.
Don’t message me about addon bugs or programming questions.
  Reply With Quote
12-04-14, 10:03 PM   #4
siweia
A Flamescale Wyrmkin
 
siweia's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2011
Posts: 126
Originally Posted by Phanx View Post
There are also tons of other ways you can taint the objective tracker that don't even require touching the objective tracker itself. Personally I just gave up trying to get working quest item buttons on..
I used the ExtraQuestButton as well, which helps a lot.
  Reply With Quote
12-04-14, 10:00 PM   #5
siweia
A Flamescale Wyrmkin
 
siweia's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2011
Posts: 126
Originally Posted by Xrystal View Post
Do you have an addon that does anything to the objective frame even as simple as moving it ?

I've noticed that the moment the main frame is re-parented in an addon the quest button becomes unsecure and kicks off a fuss with an error or just refuse to work. Could be coincidental.
Code:
local wf = ObjectiveTrackerFrame
wf:SetClampedToScreen(true)
wf:SetMovable(true)
wf:SetUserPlaced(true)
wf:ClearAllPoints()
wf.ClearAllPoints = function() end
wf:SetPoint("TOPRIGHT", UIParent, "TOPRIGHT", -100, -250)
wf.SetPoint = function() end
wf:SetHeight(450)
local function Moveit(f)
	f:EnableMouse(true)
	f:RegisterForDrag("LeftButton")
	f:SetHitRectInsets(-15, -15, -5, -5)
	f:SetScript("OnDragStart", function(s)
		wf:StartMoving()
	end)
	f:SetScript("OnDragStop", function(s)
		wf:StopMovingOrSizing()
	end)
end
Moveit(ObjectiveTrackerBlocksFrame.QuestHeader)
Moveit(ObjectiveTrackerBlocksFrame.ScenarioHeader)
Moveit(ObjectiveTrackerBlocksFrame.AchievementHeader)
These are the codes I use for move the frame.
  Reply With Quote
12-04-14, 11:20 PM   #6
Phanx
Cat.
 
Phanx's Avatar
AddOn Author - Click to view addons
Join Date: Mar 2006
Posts: 5,617
Originally Posted by siweia View Post
Code:
wf.ClearAllPoints = function() end
wf.SetPoint = function() end
Both of those lines will break any secure frame if applied to the frame itself or any of its ancestors.
__________________
Retired author of too many addons.
Message me if you're interested in taking over one of my addons.
Don’t message me about addon bugs or programming questions.
  Reply With Quote
12-06-14, 07:11 PM   #7
siweia
A Flamescale Wyrmkin
 
siweia's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2011
Posts: 126
Originally Posted by Phanx View Post
Both of those lines will break any secure frame if applied to the frame itself or any of its ancestors.
Thanks! I will delete those lines.
  Reply With Quote
12-13-14, 10:34 PM   #8
siweia
A Flamescale Wyrmkin
 
siweia's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2011
Posts: 126
Originally Posted by Phanx View Post
Both of those lines will break any secure frame if applied to the frame itself or any of its ancestors.
Unfortunately, the problem is still there. Would you mind to look at my other codes that relate to objectiveframe? Sorry for bothering.

Code:
-- Autocollapse the watchframe when in Dungeons
local wfclps = CreateFrame("Frame")
wfclps:RegisterEvent("ZONE_CHANGED_NEW_AREA")
wfclps:RegisterEvent("PLAYER_ENTERING_WORLD")
wfclps:SetScript("OnEvent", function()
	if IsInInstance() and not ScenarioBlocksFrame:IsVisible() then
		ObjectiveTrackerFrame.collapsed = true
		ObjectiveTracker_Collapse()
	else
		ObjectiveTrackerFrame.collapsed = nil
		ObjectiveTracker_Expand()
	end
end)

-- Questblock click enhant
hooksecurefunc(QUEST_TRACKER_MODULE, "OnBlockHeaderClick", function(self)
	if(IsControlKeyDown()) then
		AbandonQuest()
	elseif(IsAltKeyDown() and GetQuestLogPushable()) then
		QuestLogPushQuest()
	end
end)

-- Show quest color and level
local function Showlevel()
	if ENABLE_COLORBLIND_MODE == "1" then return end
	local numEntries = GetNumQuestLogEntries()
	local titleIndex = 1
	for i = 1, numEntries do
		local title, level, _, isHeader, _, isComplete, frequency, questID = GetQuestLogTitle(i)
		local titleButton = QuestLogQuests_GetTitleButton(titleIndex)
		if title and (not isHeader) and titleButton.questID == questID then
			titleButton.Check:SetPoint("LEFT", titleButton.Text, titleButton.Text:GetWrappedWidth() + 2, 0)
			titleIndex = titleIndex + 1
			local text = "["..level.."] "..title
			if isComplete then
				text = "|cffff78ff"..text
			elseif frequency == 2 then
				text = "|cff3399ff"..text
			end
			titleButton.Text:SetText(text)
		end
	end
end
hooksecurefunc("QuestLogQuests_Update", Showlevel)
  Reply With Quote
12-14-14, 04:26 AM   #9
Phanx
Cat.
 
Phanx's Avatar
AddOn Author - Click to view addons
Join Date: Mar 2006
Posts: 5,617
Any time you replace a key/value on a secure frame, you're liable to break it, so these lines are potentially problems:
Code:
		ObjectiveTrackerFrame.collapsed = true
		ObjectiveTrackerFrame.collapsed = nil
They may seem innocuous, but since reading/writing them may happen in a code path that can't handle taint, they may in fact break the buttons.

There are also other ways to taint the objective frame, apparently involving the world map (probably because the world map shows quest stuff now) but I haven't looked into it in great detail. For example, right now I'm not using any addons which touch the objective frame at all, and the buttons still don't work, with a random "action blocked" error if I try to click on them. I'm still using ExtraQuestButton, which I linked before, and have enabled the quest item ring in OPie for the occasional case where ExtraQuestButton picked the "wrong" item (eg. when the relevant areas for two items overlap).

At some point I plan to write a full replacement for the objectives tracker, since as far as I'm concerned the current objectives tracker is an unsalvagable disaster, but I have no ETA, and it likely won't support item buttons at all.

It's also worth pointing out that Blizzard could solve the problem very easily, by making the UseQuestLogSpecialItem only require a hardware event (eg. a click). I understand they don't want addons automatically using the items for you to complete quests, but I really don't see any serious potential for abuse if it just requires a click/keypress. It's a quest, not raid progression or tournament PvP.
__________________
Retired author of too many addons.
Message me if you're interested in taking over one of my addons.
Don’t message me about addon bugs or programming questions.
  Reply With Quote
12-18-14, 01:57 AM   #10
siweia
A Flamescale Wyrmkin
 
siweia's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2011
Posts: 126
I tried a bit work on this, and it breaks exactly as same as what Resike said.
You can just type "/script ObjectiveTracker_Update()" to have a go.

And I also found a thing that, I use HandyNotes and its plugin "DraenorTreasures" in game, if I untracked a quest from the objectivetracker frame by holding SHIFT key and click, it would taint the button as well.
Even I disable all the addons but these two.
  Reply With Quote
12-20-14, 04:19 PM   #11
Resike
A Pyroguard Emberseer
AddOn Author - Click to view addons
Join Date: Mar 2010
Posts: 1,290
Update: Seems like moving the "MinimapCluster" aka the (Minimap), will also cause this taint.
  Reply With Quote
12-21-14, 02:46 PM   #12
Vrul
A Scalebane Royal Guard
 
Vrul's Avatar
AddOn Author - Click to view addons
Join Date: Nov 2007
Posts: 404
I can get ObjectiveTrackerFrame to do what I want for the most part except for one problem. No matter what I've tried I cannot get UseQuestLogSpecialItem to work if you untrack an objective from the quest log.

Last edited by Vrul : 12-21-14 at 02:50 PM. Reason: Rephrased
  Reply With Quote
12-21-14, 04:12 PM   #13
Resike
A Pyroguard Emberseer
AddOn Author - Click to view addons
Join Date: Mar 2010
Posts: 1,290
Originally Posted by Vrul View Post
I can get ObjectiveTrackerFrame to do what I want for the most part except for one problem. No matter what I've tried I cannot get UseQuestLogSpecialItem to work if you untrack an objective from the quest log.
I have no issues with that, so it's probably caused by another addon, mostly map addons could cause this.
  Reply With Quote
12-22-14, 12:46 AM   #14
Vrul
A Scalebane Royal Guard
 
Vrul's Avatar
AddOn Author - Click to view addons
Join Date: Nov 2007
Posts: 404
Originally Posted by Resike View Post
I have no issues with that, so it's probably caused by another addon, mostly map addons could cause this.
I wasted so much time on finding a work around for that and it was my cheap hack to get quest levels shown in the quest log.
Code:
local oldEnv = getfenv(QuestLogQuests_Update)
setfenv(QuestLogQuests_Update, setmetatable({ ENABLE_COLORBLIND_MODE = '1' }, { __index = oldEnv }))
  Reply With Quote
12-31-14, 05:18 PM   #15
siweia
A Flamescale Wyrmkin
 
siweia's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2011
Posts: 126
Guys try this.

http://www.curse.com/addons/wow/questitembuttonfix

Although it's has some problems, eg. won't update cool down correctly. And sometimes the icon won't hide even the quest item no longer exists.

Last edited by siweia : 12-31-14 at 05:28 PM.
  Reply With Quote

WoWInterface » AddOns, Compilations, Macros » AddOn Help/Support » Unable to click quest button


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off