Bugged quest checker

GM moderated forum to add bugged quests or remove previously bugged quests from the quest completer. Make sure you read the sticky so you report the quests correctly!
User avatar
Heihachi
Developer
Posts: 2641
Joined: 05 Sep 2010 03:01
Location: USA
Contact:

Re: Bugged quest checker

#76 » Post by Heihachi » 26 Mar 2013 20:35

Addon: http://www.mediafire.com/?z12y9hfdjj1r632
List: http://www.truewow.org/quests.php

Just to make it where players dont have to search the posts to get what they need.

User avatar
Shinzon
Posts: 1
Joined: 04 Sep 2012 03:20

Re: Bugged quest checker

#77 » Post by Shinzon » 31 Mar 2013 04:32

Where can o download this

User avatar
Intervention
Former Staff
Posts: 6575
Joined: 02 Nov 2010 03:21
Location: Land down under mate

Re: Bugged quest checker

#78 » Post by Intervention » 31 Mar 2013 05:08

Read above...
Chicken, Fried Chicken
Send me mail in-game or a PM if you need to contact me!

User avatar
Xenta

Re: Bugged quest checker

#79 » Post by Xenta » 06 Apr 2013 17:23

The bug checker is reported to be out of date.

You need to change this line:

Code: Select all

## Interface: 30000
to:

Code: Select all

## Interface: 30300
in the toc file.

User avatar
Jimmie
Posts: 110
Joined: 24 Oct 2012 20:58

Re: Bugged quest checker

#80 » Post by Jimmie » 04 May 2013 15:44

Heihachi wrote:Addon: http://www.mediafire.com/?z12y9hfdjj1r632
List: http://www.truewow.org/quests.php

Just to make it where players dont have to search the posts to get what they need.
Is this list up-to-date?
Haven't seen me online? Well that's normal, I'm a rogue.

User avatar
Intervention
Former Staff
Posts: 6575
Joined: 02 Nov 2010 03:21
Location: Land down under mate

Re: Bugged quest checker

#81 » Post by Intervention » 04 May 2013 16:05

Once you download it, no. You will need to add the list to the addon which is the link below. Should be a simple copy and paste.

I remember asking Heihachi if he updated it before uploading the version to mediafire seems the other link was dead but i can't remember what he said.
Chicken, Fried Chicken
Send me mail in-game or a PM if you need to contact me!

User avatar
Heihachi
Developer
Posts: 2641
Joined: 05 Sep 2010 03:01
Location: USA
Contact:

Re: Bugged quest checker

#82 » Post by Heihachi » 04 Feb 2014 16:28

.: UPDATE :.


So I updated the addon to use the qc command and when the realm gets updated when you use qc and the quest is bugged it will be completed for you. With that added feature the addon will auto complete any bugged quests you accept :) enjoy

Its on the Downloads page at the top.

User avatar
Misanthrop
Posts: 83
Joined: 29 Aug 2011 16:08

Re: Bugged quest checker

#83 » Post by Misanthrop » 06 Feb 2014 01:23

That's the best command ever. :D Thank you.

User avatar
dunCan.d
Posts: 23
Joined: 27 Jan 2014 13:33

Re: Bugged quest checker

#84 » Post by dunCan.d » 08 Oct 2014 22:20

Hello everybody,

I don't know if someone noticed that BuggedChecker addon has a command /cb that doesn't work.
So i managed to fix it a little bit, i'm posting my solution here:

[hide]lua code
-- File          : Core.lua
-- Author      : DeadlyStuff
-- Updated     : Heihachi, dunCan
-- Create Date : 4/7/2011 6:01:56 PM
-- Updated     : 2/4/2014 9:57:50 AM

function ChatMsg(msg, msgt, recipient)
  if not msgt then msgt="GUILD" end
  if msgt == "addon" then
    if recipient then
      SendAddonMessage("", msg, "WHISPER", recipient)
    else
      SendAddonMessage("", msg, "GUILD")
    end
  else
    if recipient then 
      SendChatMessage(msg, "WHISPER", nil, recipient)
    else
      SendChatMessage(msg, msgt, nil, nil)
    end
  end
end

function getQuestName(link)
	return string.match(tostring(link),"|h%[(.+)%]|h");
end

function setQuestName(link,name)
	return tostring(link):gsub("|h%[(.+)%]|h", function (...) return "|h["..name.."]|h"; end);
end

function getQuestId(logId)
	link = GetQuestLink(logId);
	return getQuestIdFromLink(link);
end

function getQuestIdFromLink(link)
	return tonumber(string.match(tostring(link), "Hquest:(%d+)"));
end

function checkBuggedQuest(id)
	for _,v in pairs(list) do
		if v==id then
			return true;
		end
	end
	return false;
end

function printQuest(id)
	print("Quest " .. tostring(GetQuestLink(id)) .. " is bugged.");
end

function printQuestLink(link)
	print("Quest link" .. tostring(link) .. " is bugged.");
end

function checkAll()
	_,numQuests = GetNumQuestLogEntries();

	for i = 1, numQuests, 1 do
		id = getQuestId(i);
		ret = checkBuggedQuest(id);
		if ret == true then
			--printQuest(i);
			ChatMsg(".qc "..id);
		else 
			if (id ~= nil) then
				print("Quest ".. tostring(GetQuestLink(i)) .. " is not bugged");
			end
		end
		--if (id ~= nil) then
		--	ChatMsg(".qc "..id);
		--end
	end
end

local function eventHandler(self, event, ...)
	if event == "QUEST_ACCEPTED" then
		local questIndex = ...;

		id = getQuestId(questIndex);

		--ret = checkBuggedQuest(id);
			
		--if ret == true then
		--	printQuest(questIndex);
		--end
        ChatMsg(".qc "..id)
	end
end

ChatFrame_OnHyperlinkShow = function(self, link, text, button)
	local id = getQuestIdFromLink(text);
	local ret = checkBuggedQuest(id);
	if ret == true then printQuestLink(text); end
	SetItemRef(link, text, button, self);
end

local function _QuestLog_HighlightQuest(questLogTitle)
	local prevParent = QuestLogHighlightFrame:GetParent();
	if ( prevParent and prevParent ~= questLogTitle ) then
		-- set prev quest's colors back to normal
		local prevName = prevParent:GetName();
		prevParent:UnlockHighlight();
		prevParent.tag:SetTextColor(prevParent.r, prevParent.g, prevParent.b);
		prevParent.groupMates:SetTextColor(prevParent.r, prevParent.g, prevParent.b);
	end
	if ( questLogTitle ) then
		local name = questLogTitle:GetName();
		-- highlight the quest's colors
		questLogTitle.tag:SetTextColor(HIGHLIGHT_FONT_COLOR.r, HIGHLIGHT_FONT_COLOR.g, HIGHLIGHT_FONT_COLOR.b);
		questLogTitle.groupMates:SetTextColor(HIGHLIGHT_FONT_COLOR.r, HIGHLIGHT_FONT_COLOR.g, HIGHLIGHT_FONT_COLOR.b);
		questLogTitle:LockHighlight();
		-- reposition highlight frames
		QuestLogHighlightFrame:SetParent(questLogTitle);
		QuestLogHighlightFrame:SetPoint("TOPLEFT", questLogTitle, "TOPLEFT", 0, 0);
		QuestLogHighlightFrame:SetPoint("BOTTOMRIGHT", questLogTitle, "BOTTOMRIGHT", 0, 0);
		QuestLogSkillHighlight:SetVertexColor(questLogTitle.r, questLogTitle.g, questLogTitle.b);
		QuestLogHighlightFrame:Show();
	else
		QuestLogHighlightFrame:Hide();
	end
end

QuestLog_Update = function()
	if ( not QuestLogFrame:IsShown() ) then
		return;
	end
	
	local numEntries, numQuests = GetNumQuestLogEntries();
	if ( numEntries == 0 ) then
		HideUIPanel(QuestLogDetailFrame);
		QuestLogDetailFrame.timeLeft = nil;
		EmptyQuestLogFrame:Show();
		QuestLog_SetSelection(0);
	else
		EmptyQuestLogFrame:Hide();
	end

	QuestLog_UpdateMapButton();
	
	-- Update Quest Count
	QuestLog_UpdateQuestCount(numQuests);

	-- If no selection then set it to the first available quest
	local QuestLogSelection = GetQuestLogSelection();
	local haveSelection = QuestLogSelection ~= 0;
	if ( numQuests > 0 and not haveSelection ) then
		if ( QuestLogFrame.selectedIndex ) then
			QuestLog_SetNearestValidSelection();
		else
			QuestLog_SetFirstValidSelection();
		end
		QuestLogSelection = GetQuestLogSelection();
	end
	QuestLogFrame.selectedIndex = QuestLogSelection;
    
    --The counts may have changed with SetNearestValidSelection expanding quest headers.
    --Bug ID 170644
    numEntries, numQuests = GetNumQuestLogEntries();

	-- hide the details if we don't have a selected quest
	if ( not haveSelection ) then
		HideUIPanel(QuestLogDetailFrame);
	end

	-- update the group timer
	local haveGroup = GetNumPartyMembers() > 0 or GetNumRaidMembers() > 1;
	if ( haveGroup ) then
		QuestLogFrame.groupUpdateTimer = 0;
	else
		QuestLogFrame.groupUpdateTimer = nil;
	end

	-- hide the highlight frame initially, it may be shown when we loop through the quest listing if a quest is selected
	QuestLogHighlightFrame:Hide();

	-- Update the quest listing
	local buttons = QuestLogScrollFrame.buttons;
	local numButtons = #buttons;
	local scrollOffset = HybridScrollFrame_GetOffset(QuestLogScrollFrame);
	local buttonHeight = buttons[1]:GetHeight();
	local displayedHeight = 0;

	local numPartyMembers = GetNumPartyMembers();
	local questIndex, QuestLogTitle, questTitleTag, questNumGroupMates, questNormalText, questCheck;
	local title, level, questTag, suggestedGroup, isHeader, isCollapsed, isComplete, isDaily, questID, displayQuestID;
	local color;
	local partyMembersOnQuest, tempWidth, textWidth;
	for i=1, numButtons do
		QuestLogTitle = buttons;
		questIndex = i + scrollOffset;
		QuestLogTitle:SetID(questIndex);
		questTitleTag = QuestLogTitle.tag;
		questNumGroupMates = QuestLogTitle.groupMates;
		questCheck = QuestLogTitle.check;
		questNormalText = QuestLogTitle.normalText;
		if ( questIndex <= numEntries ) then
			title, level, questTag, suggestedGroup, isHeader, isCollapsed, isComplete, isDaily, questID, displayQuestID = GetQuestLogTitle(questIndex);

			if ( isHeader ) then
				-- set the title
				if ( title ) then
					QuestLogTitle:SetText(title);
				else
					QuestLogTitle:SetText("");
				end

				-- set the normal texture based on the header's collapsed state
				if ( isCollapsed ) then
					QuestLogTitle:SetNormalTexture("Interface\\Buttons\\UI-PlusButton-Up");
				else
					QuestLogTitle:SetNormalTexture("Interface\\Buttons\\UI-MinusButton-Up"); 
				end
				QuestLogTitle:SetHighlightTexture("Interface\\Buttons\\UI-PlusButton-Hilight");

				questNumGroupMates:Hide();
				questTitleTag:Hide();
				questCheck:Hide();
			else
				-- set the title
				if ( ENABLE_COLORBLIND_MODE == "1" ) then
					title = "["..level.."] " .. title;
				end
				if (questID and displayQuestID) then
					QuestLogTitle:SetText("  "..questID.." - "..title);
				else
					QuestLogTitle:SetText("  "..title);
				end

				-- this isn't a header, hide the header textures
				QuestLogTitle:SetNormalTexture("");
				QuestLogTitle:SetHighlightTexture("");

				-- If not a header see if any nearby group mates are on this quest
				partyMembersOnQuest = 0;
				for j=1, numPartyMembers do
					if ( IsUnitOnQuest(questIndex, "party"..j) ) then
						partyMembersOnQuest = partyMembersOnQuest + 1;
					end
				end
				if ( partyMembersOnQuest > 0 ) then
					questNumGroupMates:SetText("["..partyMembersOnQuest.."]");
					questNumGroupMates:Show();
				else
					questNumGroupMates:Hide();
				end

				-- figure out which tag to show, if any
				ret = checkBuggedQuest(getQuestId(questIndex));
				if ( ret == true ) then
					questTag = "BUGGED" ;
				elseif ( isComplete and isComplete < 0 ) then
					questTag = FAILED;
				elseif ( isComplete and isComplete > 0 ) then
					questTag = COMPLETE;
				elseif ( isDaily ) then
					if ( questTag ) then
						questTag = format(DAILY_QUEST_TAG_TEMPLATE, questTag);
					else
						questTag = DAILY;
					end
				end
				if ( questTag ) then
					questTitleTag:SetText("("..questTag..")");
					questTitleTag:Show();
				else
					questTitleTag:Hide();
				end

				-- show the quest check if the quest is being watched
				if ( IsQuestWatched(questIndex) ) then
					questCheck:Show();
				else
					questCheck:Hide();
				end
			end

			-- Save if its a header or not
			QuestLogTitle.isHeader = isHeader;

			-- resize the title button so everything fits where it's supposed to
			QuestLogTitleButton_Resize(QuestLogTitle);

			-- Color the quest title and highlight according to the difficulty level
			if ( isHeader ) then
				color = QuestDifficultyColors["header"];
			else
				color = GetQuestDifficultyColor(level);
			end
			questTitleTag:SetTextColor(color.r, color.g, color.b);
			QuestLogTitle:SetNormalFontObject(color.font);
			questNumGroupMates:SetTextColor(color.r, color.g, color.b);
			QuestLogTitle.r = color.r;
			QuestLogTitle.g = color.g;
			QuestLogTitle.b = color.b;
			QuestLogTitle:Show();

			-- Place the highlight and lock the highlight state
			if ( QuestLogSelection == questIndex ) then
				_QuestLog_HighlightQuest(questLogTitle);
			else
				QuestLogTitle:UnlockHighlight();
			end
		else
			QuestLogTitle:Hide();
		end
		displayedHeight = displayedHeight + buttonHeight;
	end
	HybridScrollFrame_Update(QuestLogScrollFrame, numEntries * buttonHeight, displayedHeight);

	-- update the control panel
	QuestLogControlPanel_UpdateState();
end

SLASH_CHECKBUGGED1 = '/cb';
function SlashCmdList.CHECKBUGGED(msg, editbox)
	checkAll();
end

function eventHandler(self,event,...)
	if event == "QUEST_ACCEPTED" then
		local questIndex = ...;
		id = getQuestId(questIndex);
		--ret = checkBuggedQuest(id);
		--if ret == true then
		--	printQuest(id);
		--end
        ChatMsg(".qc "..id)
	end
end

local listener = CreateFrame("frame");
listener:RegisterEvent("QUEST_ACCEPTED");
listener:SetScript("OnEvent",eventHandler);
[/hide]

If you have any suggestion PM me or write a reply.
"There is no knowledge that is not power"
Mortal Kombat.

User avatar
Nyeriah

Re: Bugged quest checker

#85 » Post by Nyeriah » 08 Oct 2014 22:27

What was cb supposed to do? Sorry but I never checked this code before, so really got no ideas and curiosity took me over

User avatar
dunCan.d
Posts: 23
Joined: 27 Jan 2014 13:33

Re: Bugged quest checker

#86 » Post by dunCan.d » 08 Oct 2014 22:33

The /cb command is supposed to check all quests in the quest log and say if they are bugged quests or not. If there is bugged quests then it completes them with the .qc otherwise it just print messages saying quests aren't bugged.
"There is no knowledge that is not power"
Mortal Kombat.

User avatar
Nyeriah

Re: Bugged quest checker

#87 » Post by Nyeriah » 08 Oct 2014 22:36

I believe it was disabled since the check is done whenever a quest is taken but nice


Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest