/trunk
## Interface: 40300 |
## Title: QuestGuru Tracker |
## Notes: Quest Tracker replacement |
## Author: MrOBrian/Gregity |
## Version: 1.5.8-40300 |
## SavedVariablesPerCharacter: QGT_WatchList, QGT_WatchHeaders, QGT_WatchQuests, QGT_WatchAchievements, QGT_Settings |
localization.lua |
localization.DE.lua |
localization.FR.lua |
localization.RU.lua |
localization.TW.lua |
QuestGuru_Tracker_Templates.xml |
QuestGuru_Tracker.xml |
QuestGuru_Tracker ChangeLog |
=========================== |
Version 1.5.8-40300 |
------------- |
* Refixed an issue in QGT_Quests.lua where SaveBindings sometimes received an invalid value because GetCurrentBindingSet() would return other than nil, 1, or 2. |
Version 1.5.7-40300 |
------------- |
* Changed TOC version for 4.3 cata |
* MrObrien has asked that somebody pickup and work on the QuestGuru so I will try and do some updates as I can't play without this mod. |
Addon home is www.wowinterface.com and you can PM me there if you like. Gregity is the name. |
I will be making small changes to get used to the codebase before I try anything like a major update. |
* Fixed an issue in QGT_Quests.lua where SaveBindings sometimes received an invalid value because GetCurrentBindingSet() would return nil |
Version 1.5.6 |
------------- |
* Fixed achievements not working quite right (thanks to FineWolf) |
* Added a flashing effect to quests that can be remotely completed |
Version 1.5.5 |
------------- |
* Fixed a bug that was causing the game to crash (oops) |
Version 1.5.4 |
------------- |
* Fixed a bug when trying to track an achievement that no longer exists (usually on login) |
* Removed UIFrame calls that could potentially cause taint |
Version 1.5.3 |
------------- |
* Thanks to Cartman, added ability to finish certain quests directly from the tracker |
Version 1.5.2 |
------------- |
* Removed ability to sort by proximity for now |
* More bug fixes to better support Cataclysm |
Version 1.5.1 |
------------- |
* Bug fixes |
Version 1.5 |
----------- |
* Added ability to sort watched quests by proximity (may not work exactly right...) |
* Shift-L Key Binding is now saved properly |
* Bug fixes |
* Updates to better support Cataclysm |
Version 1.4.4 |
------------- |
* Fixes for Blizzard's new chat frame |
Version 1.4.3 |
------------- |
* Added option to hide tracker(s) during combat |
Version 1.4.2 |
------------- |
* More minor bug fixes |
Version 1.4.1 |
------------- |
* Minor bug fix |
Version 1.4 |
----------- |
* Updated for patch 3.3 |
* Minor bug fixes |
Version 1.3 |
----------- |
* Updated to be compatible with WoW 3.2 |
Version 1.2.3 |
------------- |
* Achievements no longer auto-track, this feature was too buggy and annoying |
* Shift-clicking an achievement in the tracker will now untrack the achievement |
* Fixed tooltip display issues |
* Added Russian localization |
Version 1.2.2 |
------------- |
* Added quest timers in the tracker |
* Achievement tracker should now update properly on achievement progress |
* In the Achievement tracker, shift-clicking an achievement will now add a link to the chat frame |
* Auto-tracking of achievements in chains when one step is completed has been added |
* As always, more bug fixes |
Version 1.2.1 |
------------- |
* Bug fixes |
Version 1.2 |
----------- |
* Added button to toggle Quest and Achievement trackers with option to show both |
* Some more bug fixes |
Version 1.1.1 |
------------- |
* A bunch of bug fixes |
Version 1.1 |
----------- |
* Added Achievement tracking |
* Bug fix with quest item icon size |
Version 1.0.2 |
------------- |
* Added quest item icons |
* Added option to pin tracker |
* Fixed shift-right-click menu for quest titles |
* More bug fixes |
Version 1.0.1 |
------------- |
* Bug fixes |
Version 1.0 |
----------- |
* First release as a separate addon |
QGT_WatchAchievements = {}; |
QGT_WatchAchievementLines = 0; |
QGT_AchievementTimer = {}; |
QGT_AWUpdating = false; |
WATCHFRAME_MAXACHIEVEMENTS = 9999; |
function QGT_SetAchievementWatchBorder(enabled) |
if (enabled) then |
QGT_AchievementWatchFrame:SetBackdrop({ |
bgFile="Interface\\Characterframe\\UI-Party-Background", |
edgeFile="Interface\\Tooltips\\UI-Tooltip-Border", |
tile=1, tileSize=16, edgeSize=16, |
insets={left=4, right=4, top=4, bottom=4} |
}); |
else |
QGT_AchievementWatchFrame:SetBackdrop({ |
bgFile="Interface\\Characterframe\\UI-Party-Background", |
tile=1, tileSize=16, |
insets={left=4, right=4, top=4, bottom=4} |
}); |
end |
QGT_AchievementWatchFrame:SetBackdropColor(0,0,0,QGT_Settings.Alpha); |
end |
do |
local temp, i; |
QGT_AchievementWatchFrame = CreateFrame("FRAME", "QGT_AchievementWatchFrame", UIParent); |
QGT_AchievementWatchFrame:Hide(); |
QGT_AchievementWatchFrame:EnableMouse(1); |
QGT_AchievementWatchFrame:EnableMouseWheel(1); |
QGT_AchievementWatchFrame:SetMovable(1); |
QGT_AchievementWatchFrame:SetResizable(0); |
QGT_AchievementWatchFrame:SetToplevel(1); |
QGT_AchievementWatchFrame:SetFrameStrata("LOW"); |
QGT_AchievementWatchFrame:SetClampedToScreen(true); |
QGT_AchievementWatchFrame:SetWidth(256); |
QGT_AchievementWatchFrame:SetHeight(20); |
QGT_AchievementWatchFrame:SetPoint("TOPRIGHT", MinimapCluster, "BOTTOMRIGHT", 0, 10); |
QGT_AchievementWatchFrame:SetHitRectInsets(-16, 0, 0, 0); |
QGT_SetAchievementWatchBorder(true); |
QGT_AchievementWatchFrame:RegisterForDrag("LeftButton"); |
QGT_AchievementWatchFrame:SetScript("OnDragStart", |
function () |
if (not QGT_Settings.Pin) then |
QGT_AchievementWatchFrame:StartMoving(); |
QGT_AchievementWatchFrame.isMoving = true; |
end |
end); |
QGT_AchievementWatchFrame:SetScript("OnDragStop", |
function () |
QGT_AchievementWatchFrame:StopMovingOrSizing(); |
QGT_AchievementWatchFrame.isMoving = false; |
QGT_Settings.AchievementWatch.Left = QGT_AchievementWatchFrame:GetLeft(); |
QGT_Settings.AchievementWatch.Top = QGT_AchievementWatchFrame:GetTop(); |
QGT_Settings.AchievementWatch.Bottom = QGT_AchievementWatchFrame:GetBottom(); |
QGT_AchievementWatchFrameSlider:ClearAllPoints(); |
if (((QGT_Settings.AchievementWatch.Left + 256) * QGT_Settings.Scale) > (UIParent:GetWidth() - 16)) then |
QGT_AchievementWatchFrameSlider:SetPoint("TOPLEFT", -14, -16); |
else |
QGT_AchievementWatchFrameSlider:SetPoint("TOPRIGHT", 14, -16); |
end |
end); |
QGT_AchievementWatchFrame:SetScript("OnEnter", |
function (self) |
QGT_AchievementWatchFrameSlider:SetScript("OnMouseUp", nil); |
QGT_ShowAchievementTrackerSlider(self, true); |
end); |
QGT_AchievementWatchFrame:SetScript("OnLeave", |
function (self) |
QGT_ShowAchievementTrackerSlider(self, false); |
end); |
QGT_AchievementWatchFrame:SetScript("OnMouseWheel", |
function (self, delta) |
local min, max = QGT_AchievementWatchFrameSlider:GetMinMaxValues(); |
local currVal = QGT_AchievementWatchFrameSlider:GetValue(); |
currVal = currVal - delta; |
if (currVal < min) then currVal = min; end |
if (currVal > max) then currVal = max; end |
QGT_AchievementWatchFrameSlider:SetValue(currVal); |
end); |
QGT_AchievementWatchFrame:SetScript("OnShow", |
function (self) |
QGT_ShowAchievementTrackerSlider(self, false); |
end); |
QGT_AchievementWatchFrame:RegisterEvent("ACHIEVEMENT_EARNED"); |
QGT_AchievementWatchFrame:RegisterEvent("VARIABLES_LOADED"); |
QGT_AchievementWatchFrame:RegisterEvent("TRACKED_ACHIEVEMENT_UPDATE"); |
QGT_AchievementWatchFrame:SetScript("OnEvent", |
function (self, event, achievementID, ...) |
if (event == "ACHIEVEMENT_EARNED") then |
RemoveTrackedAchievement(achievementID); |
elseif (event == "TRACKED_ACHIEVEMENT_UPDATE") then |
local criteriaID, elapsed, duration = ...; |
if ( not elapsed or not duration ) then |
-- Don't do anything |
elseif ( elapsed >= duration ) then |
QGT_AchievementTimer[achievementID] = nil; |
else |
QGT_AchievementTimer[achievementID] = {}; |
QGT_AchievementTimer[achievementID].startTime = GetTime() - elapsed; |
QGT_AchievementTimer[achievementID].duration = duration; |
end |
elseif (event == "VARIABLES_LOADED") then |
QGT_SetAchievements(); |
end |
end); |
QGT_AchievementWatchFrame:SetScript("OnUpdate", |
function (self, elapsed) |
QGT_AchievementWatch_OnUpdate(elapsed); |
end); |
temp = QGT_AchievementWatchFrame:CreateTexture("QGT_AchievementWatchFrameBackground", "ARTWORK"); |
temp:SetHeight(18); |
temp:SetPoint("TOPRIGHT", -4, -4); |
temp:SetPoint("TOPLEFT", 4, -4); |
temp:SetTexture(1, 1, 1); |
temp:SetGradientAlpha("VERTICAL", 0, 0, 0, 0, 0.3, 0.3, 0.3, 1); |
temp = QGT_AchievementWatchFrame:CreateFontString("QGT_AchievementWatchName", "ARTWORK", "GameFontNormal"); |
temp:SetPoint("TOPLEFT", 8, -6); |
temp:SetJustifyH("LEFT"); |
temp:SetWidth(0); |
temp:SetHeight(12); |
temp:SetText("QuestGuru "..QG_TRACKER_ACHIEVE); |
temp = QGT_AchievementWatchFrame:CreateFontString("QGT_AchievementWatchNum", "ARTWORK", "GameFontNormal"); |
temp:SetPoint("LEFT", QGT_AchievementWatchName, "RIGHT", 12, 0); |
temp:SetJustifyH("CENTER"); |
temp:SetWidth(0); |
temp:SetHeight(12); |
temp:SetText(""); |
QGT_AchievementWatchFrameOptions = CreateFrame("BUTTON", "QGT_AchievementWatchFrameOptions", QGT_AchievementWatchFrame, "QGT_QuestWatchMiniButtonTemplate"); |
QGT_AchievementWatchFrameOptions:SetText("O"); |
QGT_AchievementWatchFrameOptions:SetPoint("TOPRIGHT", -5, -4); |
QGT_AchievementWatchFrameOptions:SetScript("OnClick", |
function () |
InterfaceOptionsFrame_OpenToCategory("QG Tracker"); |
end); |
QGT_AchievementWatchFrameOptions:SetScript("OnEnter", |
function (self) |
QGT_AchievementWatchFrameSlider:SetScript("OnMouseUp", nil); |
QGT_ShowAchievementTrackerSlider(self, true); |
GameTooltip:SetOwner(self, "ANCHOR_LEFT"); |
GameTooltip:SetText(QG_TRACKER_OPTIONS, nil,nil, nil, nil, 1); |
end); |
QGT_AchievementWatchFrameOptions:SetScript("OnLeave", |
function (self) |
QGT_ShowAchievementTrackerSlider(self, false); |
GameTooltip:Hide(); |
end); |
QGT_AchievementWatchFrameMinimize = CreateFrame("BUTTON", "QGT_AchievementWatchFrameMinimize", QGT_AchievementWatchFrame, "QGT_QuestWatchMiniButtonTemplate"); |
QGT_AchievementWatchFrameMinimize:SetText("-"); |
QGT_AchievementWatchFrameMinimize:SetPoint("RIGHT", QGT_AchievementWatchFrameOptions, "LEFT", 0, 0); |
QGT_AchievementWatchFrameMinimize:RegisterForClicks("LeftButtonUp", "RightButtonUp"); |
QGT_AchievementWatchFrameMinimize:SetScript("OnClick", |
function (self, button, down) |
if (button == "LeftButton") then |
if (QGT_Settings.AchievementWatch.AutoMinimize) then |
QGT_ShowAchievementTrackerSlider(self, false); |
QGT_Settings.AchievementWatch.Minimized = true; |
else |
QGT_ShowAchievementTrackerSlider(self, QGT_Settings.AchievementWatch.Minimized); |
QGT_Settings.AchievementWatch.Minimized = not QGT_Settings.AchievementWatch.Minimized; |
end |
QGT_Settings.AchievementWatch.AutoMinimize = false; |
WatchFrame_Update(); |
GameTooltip:Hide(); |
elseif (button == "RightButton") then |
QGT_Settings.AchievementWatch.AutoMinimize = not QGT_Settings.AchievementWatch.AutoMinimize; |
WatchFrame_Update(); |
end |
end); |
QGT_AchievementWatchFrameMinimize:SetScript("OnEnter", |
function (self) |
QGT_AchievementWatchFrameSlider:SetScript("OnMouseUp", nil); |
QGT_ShowAchievementTrackerSlider(self, true); |
GameTooltip:SetOwner(self, "ANCHOR_LEFT"); |
if (QGT_Settings.AchievementWatch.Minimized) then |
GameTooltip:SetText(QG_TRACKER_SHOW, nil,nil, nil, nil, 1); |
else |
GameTooltip:SetText(QG_TRACKER_MINIMIZE, nil,nil, nil, nil, 1); |
end |
end); |
QGT_AchievementWatchFrameMinimize:SetScript("OnLeave", |
function () |
QGT_ShowAchievementTrackerSlider(self, false); |
GameTooltip:Hide(); |
end); |
QGT_AchievementWatchFrameToggle = CreateFrame("BUTTON", "QGT_AchievementWatchFrameToggle", QGT_AchievementWatchFrame, "QGT_QuestWatchMiniButtonTemplate"); |
QGT_AchievementWatchFrameToggle:SetText(QG_TRACKER_Q); |
QGT_AchievementWatchFrameToggle:SetPoint("RIGHT", QGT_AchievementWatchFrameMinimize, "LEFT", 0, 0); |
QGT_AchievementWatchFrameToggle:RegisterForClicks("LeftButtonUp", "RightButtonUp"); |
QGT_AchievementWatchFrameToggle:SetScript("OnClick", |
function (self, button, down) |
if (button == "LeftButton") then |
QGT_Settings.LastTracker = "Q"; |
QGT_Settings.BothTrackers = false; |
QGT_Settings.QuestWatch.Top = QGT_Settings.AchievementWatch.Top; |
QGT_Settings.QuestWatch.Bottom = QGT_Settings.AchievementWatch.Bottom; |
QGT_Settings.QuestWatch.Left = QGT_Settings.AchievementWatch.Left; |
QGT_Settings.QuestWatch.Minimized = QGT_Settings.AchievementWatch.Minimized; |
QGT_Settings.QuestWatch.AutoMinimize = QGT_Settings.AchievementWatch.AutoMinimize; |
WatchFrame_Update(); |
GameTooltip:Hide(); |
elseif (button == "RightButton") then |
QGT_Settings.LastTracker = "A"; |
QGT_Settings.BothTrackers = not QGT_Settings.BothTrackers; |
WatchFrame_Update(); |
end |
end); |
QGT_AchievementWatchFrameToggle:SetScript("OnEnter", |
function (self) |
QGT_AchievementWatchFrameSlider:SetScript("OnMouseUp", nil); |
QGT_ShowAchievementTrackerSlider(self, true); |
GameTooltip:SetOwner(self, "ANCHOR_LEFT"); |
GameTooltip:SetText(QG_TRACKER_TOGGLE, nil,nil, nil, nil, 1); |
end); |
QGT_AchievementWatchFrameToggle:SetScript("OnLeave", |
function (self) |
QGT_ShowAchievementTrackerSlider(self, false); |
GameTooltip:Hide(); |
end); |
QGT_AchievementWatchFrameSlider = CreateFrame("Slider", "QGT_AchievementWatchFrameSlider", QGT_AchievementWatchFrame, "OptionsSliderTemplate"); |
QGT_AchievementWatchFrameSlider:SetWidth(16); |
QGT_AchievementWatchFrameSlider:SetHeight(200); |
QGT_AchievementWatchFrameSliderText:SetText(""); |
QGT_AchievementWatchFrameSliderHigh:SetText(""); |
QGT_AchievementWatchFrameSliderLow:SetText(""); |
QGT_AchievementWatchFrameSlider:SetOrientation("VERTICAL"); |
QGT_AchievementWatchFrameSlider:SetPoint("TOPLEFT", QGT_AchievementWatchFrame, "TOPLEFT", -14, -16); |
QGT_AchievementWatchFrameSlider:SetMinMaxValues(0,0); |
QGT_AchievementWatchFrameSlider:SetValueStep(1); |
QGT_AchievementWatchFrameSlider:SetValue(0); |
QGT_AchievementWatchFrameSlider:Hide(); |
QGT_AchievementWatchFrameSlider:SetScript("OnEnter", |
function (self) |
QGT_ShowAchievementTrackerSlider(self, true); |
end); |
QGT_AchievementWatchFrameSlider:SetScript("OnLeave", |
function (self) |
QGT_ShowAchievementTrackerSlider(self, false); |
end); |
QGT_AchievementWatchFrameSlider:SetScript("OnValueChanged", |
function () |
WatchFrame_Update(); |
end); |
for i=1, 40 do |
temp = CreateFrame("Button", "QGT_AchievementWatchLine"..i, QGT_AchievementWatchFrame, "QGT_AchievementWatchButtonTemplate"); |
temp.statusBar = _G["QGT_AchievementWatchLine"..i.. "StatusBar"] |
temp:SetPoint("TOPLEFT", QGT_AchievementWatchFrame, 8, -22); |
temp:SetHeight(13); |
temp:SetWidth(240); |
temp:RegisterForClicks("LeftButtonUp"); |
temp:SetScript("OnEnter", |
function (self) |
_G[self:GetName().."Highlight"]:SetAlpha(0.5); |
_G[self:GetName().."Highlight"]:Show(); |
if (self.achievementID) then |
GameTooltip:SetOwner(self); |
GameTooltip:SetHyperlink(GetAchievementLink(self.achievementID)); |
GameTooltip:Show() |
local tW = GameTooltip:GetWidth(); |
if (QGT_Settings.AchievementWatch.Left < tW) then |
GameTooltip:SetOwner(self, "ANCHOR_RIGHT"); |
GameTooltip:SetHyperlink(GetAchievementLink(self.achievementID)); |
GameTooltip:Show() |
else |
GameTooltip:SetOwner(self, "ANCHOR_LEFT"); |
GameTooltip:SetHyperlink(GetAchievementLink(self.achievementID)); |
GameTooltip:Show() |
end |
end |
QGT_ShowAchievementTrackerSlider(self, true); |
end); |
temp:SetScript("OnLeave", |
function (self) |
_G[self:GetName().."Highlight"]:Hide(); |
GameTooltip:Hide(); |
QGT_ShowAchievementTrackerSlider(self, false); |
end); |
temp:SetScript("OnClick", |
function (self, button, down) |
if (self.achievementID) then |
if (IsShiftKeyDown()) then |
local activeWindow = ChatEdit_GetActiveWindow(); |
if (activeWindow) then |
activeWindow:Insert(GetAchievementLink(self.achievementID)); |
else |
RemoveTrackedAchievement(self.achievementID); |
end |
else |
AchievementFrame_LoadUI(); |
AchievementFrame:Show(); |
AchievementFrame_SelectAchievement(self.achievementID); |
end |
end |
end); |
end |
QGT_AchievementWatchFrameTooltip = CreateFrame("GameTooltip", "QGT_AchievementWatchFrameTooltip", QGT_AchievementWatchFrame, "GameTooltipTemplate"); |
QGT_AchievementWatchFrameTooltip:Hide(); |
QGT_AchievementWatchFrameTooltip:SetFrameStrata("TOOLTIP"); |
end |
function QGT_ShowAchievementTrackerSlider(self, flag) |
if (QGT_Settings and QGT_Settings.AchievementWatch and (QGT_Settings.AchievementWatch.AutoMinimize==true) and not IsMouseButtonDown("LeftButton")) then |
QGT_Settings.AchievementWatch.Minimized = not flag; |
end |
local watchLines = 30; |
if (QGT_Settings and QGT_Settings.Lines) then |
watchLines = QGT_Settings.Lines; |
end |
if ((flag == true) and (QGT_WatchAchievementLines > watchLines) and not QGT_Settings.AchievementWatch.Minimized) then |
QGT_AchievementWatchFrameSlider:Show(); |
else |
if (IsMouseButtonDown("LeftButton")) then |
self:SetScript("OnMouseUp", |
function (self) |
QGT_ShowAchievementTrackerSlider(self, false); |
self:SetScript("OnMouseUp", nil); |
end); |
else |
QGT_AchievementWatchFrameSlider:Hide(); |
end |
end |
end |
function QGT_SetAchievementTrackerMouse(enableFlag) |
QGT_AchievementWatchFrame:EnableMouse(enableFlag); |
for i=1, 40 do |
_G["QGT_AchievementWatchLine"..i]:EnableMouse(enableFlag); |
end |
end |
-- QuestWatch functions |
function QGT_AchievementWatch_Update() |
local achieveCount=0; |
local i, j; |
if (QGT_AWUpdating == true) then return; end |
QGT_AWUpdating = true; |
table.sort(QGT_WatchAchievements, function(a, b) return (a < b); end); |
for i, j in pairs(QGT_WatchAchievements) do |
achieveCount = achieveCount + 1; |
end |
QGT_AchievementWatchNum:SetText(achieveCount); |
if (QGT_Settings.AchievementWatch.AutoMinimize) then |
QGT_AchievementWatchFrameMinimize:SetText("*"); |
else |
QGT_AchievementWatchFrameMinimize:SetText("-"); |
end |
local numEntries, numQuests = GetNumQuestLogEntries(); |
local questCount=0; |
for i=1, numEntries do |
if (IsQuestWatched(i)) then questCount = questCount + 1; end |
end |
if (questCount == 0) then |
QGT_AchievementWatchFrameToggle:Hide(); |
else |
QGT_AchievementWatchFrameToggle:Show(); |
if (QGT_Settings.BothTrackers) then |
QGT_AchievementWatchFrameToggle:SetText("*"); |
else |
QGT_AchievementWatchFrameToggle:SetText(QG_TRACKER_Q); |
end |
end |
if (achieveCount == 0 and questCount == 0) then |
QGT_AchievementWatchFrame:Hide(); |
QGT_AWUpdating = false; |
return; |
elseif (achieveCount == 0 and questCount > 0) then |
if (QGT_Settings.BothTrackers) then |
QGT_AchievementWatchFrame:Hide(); |
else |
QGT_AchievementWatchFrameToggle:Click(); |
end |
QGT_AWUpdating = false; |
return; |
else |
QGT_AchievementWatchFrame:Show(); |
end |
if (QGT_Settings.AchievementWatch.Left == nil) then |
QGT_Settings.AchievementWatch.Left = MinimapCluster:GetLeft(); |
end |
if (QGT_Settings.AchievementWatch.Top == nil) then |
QGT_Settings.AchievementWatch.Top = MinimapCluster:GetBottom()+10; |
end |
if (QGT_Settings.AchievementWatch.Bottom == nil) then |
QGT_Settings.AchievementWatch.Bottom = 60; |
end |
if (QGT_Settings.ClickThrough) then |
QGT_SetAchievementTrackerMouse(0); |
else |
QGT_SetAchievementTrackerMouse(1); |
end |
if (QGT_Settings.Pin) then |
QGT_AchievementWatchFrame:SetMovable(0); |
else |
QGT_AchievementWatchFrame:SetMovable(1); |
end |
local _; |
local self = QGT_AchievementWatchFrame; |
local numTrackedAchievements = achieveCount; |
local maxWidth = 0; |
local heightUsed = 0; |
local heightNeeded = 0; |
local achievementID; |
local achievementName, completed, description, icon; |
local line; |
local currLine = 0; |
local achievementTitle; |
local previousLine; |
local nextXOffset = 0; |
local linkButton; |
local numCriteria, criteriaDisplayed; |
local criteriaString, criteriaType, criteriaCompleted, quantity, totalQuantity, name, flags, assetID, quantityString, criteriaID, achievementCategory; |
local achieveLine = {}; |
achieveLine[currLine] = {}; |
for i = 1, 40 do |
local aLine = _G["QGT_AchievementWatchLine"..i]; |
local aLineIcon = _G["QGT_AchievementWatchLine"..i.."Icon"]; |
aLine.text:SetText(""); |
aLine.text:SetTextColor(1.0, 1.0, 1.0); |
aLine.statusBar:Hide(); |
aLine.achievementID = nil; |
aLineIcon:SetTexture(""); |
end |
if (QGT_Settings.AchievementWatch.Minimized) then |
if (QGT_Settings.AchievementWatch.AutoMinimize) then |
QGT_AchievementWatchFrameMinimize:SetText("*"); |
else |
QGT_AchievementWatchFrameMinimize:SetText("+"); |
end |
QGT_AchievementWatchFrame:SetHeight(26); |
for i = 1, 40 do |
local aLine = _G["QGT_AchievementWatchLine"..i]; |
local aLineIcon = _G["QGT_AchievementWatchLine"..i.."Icon"]; |
aLineIcon:Hide(); |
aLine:Hide(); |
end |
if (QGT_Settings.AchievementWatch.Left == nil) then |
QGT_Settings.AchievementWatch.Left = MinimapCluster:GetLeft(); |
end |
if (QGT_Settings.AchievementWatch.Top == nil) then |
QGT_Settings.AchievementWatch.Top = MinimapCluster:GetBottom()+10; |
end |
if (QGT_Settings.AchievementWatch.Bottom == nil) then |
QGT_Settings.AchievementWatch.Bottom = 60; |
end |
if (not QGT_AchievementWatchFrame.isMoving) then |
QGT_AchievementWatchFrame:ClearAllPoints(); |
if (QGT_Settings.Anchor == "TOP") then |
QGT_AchievementWatchFrame:SetPoint("TOPLEFT", "UIParent", "BOTTOMLEFT", QGT_Settings.AchievementWatch.Left, QGT_Settings.AchievementWatch.Top); |
elseif (QGT_Settings.Anchor == "BOTTOM") then |
QGT_AchievementWatchFrame:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMLEFT", QGT_Settings.AchievementWatch.Left, QGT_Settings.AchievementWatch.Bottom); |
end |
end |
QGT_AWUpdating = false; |
return; |
end |
for k, v in pairs(QGT_WatchAchievements) do |
achievementID = k; |
achievementCategory = GetAchievementCategory(achievementID); |
if ( (not displayOnlyArena) or achievementCategory == WATCHFRAME_ACHIEVEMENT_ARENA_CATEGORY ) then |
_, achievementName, _, completed, _, _, _, description, _, icon = GetAchievementInfo(achievementID); |
if (achievementName == nil) then |
RemoveTrackedAchievement(achievementID); |
else |
currLine = currLine + 1; |
achieveLine[currLine] = {}; |
achieveLine[currLine].Icon = icon; |
achieveLine[currLine].text = achievementName; |
achieveLine[currLine].achievementID = achievementID; |
if ( completed ) then |
achieveLine[currLine].TextColor = { r=NORMAL_FONT_COLOR.r, g=NORMAL_FONT_COLOR.g, b=NORMAL_FONT_COLOR.b }; |
else |
achieveLine[currLine].TextColor = { r=0.75, g=0.61, b=0 }; |
end |
numCriteria = GetAchievementNumCriteria(achievementID); |
if ( numCriteria > 0 ) then |
criteriaDisplayed = 0; |
for j = 1, numCriteria do |
criteriaString, criteriaType, criteriaCompleted, quantity, totalQuantity, name, flags, assetID, quantityString, criteriaID = GetAchievementCriteriaInfo(achievementID, j); |
if ( not criteriaCompleted ) then |
if ( bit.band(flags, ACHIEVEMENT_CRITERIA_PROGRESS_BAR) == ACHIEVEMENT_CRITERIA_PROGRESS_BAR ) then |
currLine = currLine + 1; |
achieveLine[currLine] = {}; |
achieveLine[currLine].totalQuantity = totalQuantity; |
achieveLine[currLine].quantity = quantity; |
achieveLine[currLine].quantityString = quantityString; |
else |
currLine = currLine + 1; |
achieveLine[currLine] = {}; |
achieveLine[currLine].text = " - " .. criteriaString; |
achieveLine[currLine].TextColor = { r=0.8, g=0.8, b=0.8 }; |
end |
end |
end |
else |
currLine = currLine + 1; |
achieveLine[currLine] = {}; |
achieveLine[currLine].text = " - "..description; |
achieveLine[currLine].TextColor = { r=0.8, g=0.8, b=0.8 }; |
end |
end |
end |
end |
local watchLines = 30; |
if (QGT_Settings and QGT_Settings and QGT_Settings.Lines) then |
watchLines = QGT_Settings.Lines; |
end |
if (currLine > watchLines) then |
QGT_AchievementWatchFrameSlider:SetMinMaxValues(0, currLine - watchLines); |
else |
QGT_AchievementWatchFrameSlider:SetMinMaxValues(0, 0); |
end |
QGT_WatchAchievementLines = currLine; |
local sliderVal = QGT_AchievementWatchFrameSlider:GetValue(); |
local iconWidth, yOffset; |
local titles = 0; |
local statusBars = 0; |
local yOffset = 0; |
local xOffset = 0; |
for i= 1, currLine do |
j = i - sliderVal; |
if (j > watchLines) then |
j = j - 1; |
break; |
end |
if (i > sliderVal) then |
local aLine = _G["QGT_AchievementWatchLine"..j]; |
local aLineText = _G["QGT_AchievementWatchLine"..j.."NormalText"]; |
local aLineIcon = _G["QGT_AchievementWatchLine"..j.."Icon"]; |
local aLineTimer = _G["QGT_AchievementWatchLine"..j.."Timer"]; |
if (achieveLine[i].Icon) then |
aLineIcon:SetTexture(achieveLine[i].Icon); |
aLineIcon:Show(); |
iconWidth = 16; |
xOffset = 16; |
if (j > 1) then yOffset = yOffset + 6; end |
else |
iconWidth = 0; |
xOffset = 0; |
end |
aLine.achievementID = achieveLine[i].achievementID; |
if (achieveLine[i].totalQuantity) then --statusBar |
aLine:SetText(""); |
aLine.statusBar:Show(); |
aLine.statusBar:GetStatusBarTexture():SetVertexColor(0,0.6,0,1); |
aLine.statusBar:SetMinMaxValues(0, achieveLine[i].totalQuantity); |
aLine.statusBar:SetValue(achieveLine[i].quantity); |
aLine.statusBar.text:SetText(achieveLine[i].quantityString); |
yOffset = yOffset + 4; |
iconWidth = -16; |
else |
aLine:SetText(achieveLine[i].text); |
aLineText:SetTextColor(achieveLine[i].TextColor.r,achieveLine[i].TextColor.g,achieveLine[i].TextColor.b); |
end |
if (QGT_AchievementTimer[achieveLine[i].achievementID]) then |
aLine:SetScript("OnUpdate", |
function (self) |
if (QGT_AchievementTimer[achieveLine[i].achievementID] == nil) then |
self:SetScript("OnUpdate", nil); |
return; |
end |
local timeLeft = math.floor(QGT_AchievementTimer[self.achievementID].startTime + QGT_AchievementTimer[self.achievementID].duration - GetTime()); |
local aLineTimer = _G[self:GetName().."Timer"]; |
if (timeLeft <= 0) then timeLeft = 0; end |
aLineTimer:SetText(SecondsToTime(timeLeft)); |
local tempWidth = aLineTimer:GetWidth() + 8; |
_G[self:GetName().."NormalText"]:SetWidth(240 - tempWidth - 16); |
end); |
else |
aLineTimer:SetText(""); |
aLine:SetScript("OnUpdate", nil); |
end |
aLine:SetWidth(240 - iconWidth); |
aLineText:SetWidth(240 - iconWidth); |
aLine:SetPoint("TOPLEFT", QGT_AchievementWatchFrame, 8 + xOffset, (-yOffset - 22 - ((j-1) * 13))); |
aLine:Show(); |
end |
end |
for i = j + 1, 40 do |
local aLine = _G["QGT_AchievementWatchLine"..i]; |
local aLineIcon = _G["QGT_AchievementWatchLine"..i.."Icon"]; |
aLineIcon:Hide(); |
aLine:Hide(); |
end |
QGT_AchievementWatchFrame:Show(); |
local tempHeight = 30 + (j * 13) + yOffset; |
QGT_AchievementWatchFrame:SetHeight(tempHeight); |
QGT_AchievementWatchFrameSlider:SetHeight(tempHeight - 16); |
QGT_AchievementWatchFrame:SetWidth(256); |
if (not QGT_AchievementWatchFrame.isMoving) then |
QGT_AchievementWatchFrame:ClearAllPoints(); |
if (QGT_Settings.Anchor == "TOP") then |
QGT_AchievementWatchFrame:SetPoint("TOPLEFT", "UIParent", "BOTTOMLEFT", QGT_Settings.AchievementWatch.Left, QGT_Settings.AchievementWatch.Top); |
QGT_Settings.AchievementWatch.Bottom = QGT_AchievementWatchFrame:GetBottom(); |
elseif (QGT_Settings.Anchor == "BOTTOM") then |
QGT_AchievementWatchFrame:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMLEFT", QGT_Settings.AchievementWatch.Left, QGT_Settings.AchievementWatch.Bottom); |
QGT_Settings.AchievementWatch.Top = QGT_AchievementWatchFrame:GetTop(); |
end |
end |
QGT_AchievementWatchFrameSlider:ClearAllPoints(); |
if (((QGT_Settings.AchievementWatch.Left + 256) * QGT_Settings.Scale) > (UIParent:GetWidth() - 16)) then |
QGT_AchievementWatchFrameSlider:SetPoint("TOPLEFT", -14, -16); |
else |
QGT_AchievementWatchFrameSlider:SetPoint("TOPRIGHT", 14, -16); |
end |
QGT_AWUpdating = false; |
end |
function AchievementButton_ToggleTracking(id) |
if ( IsTrackedAchievement(id) ) then |
RemoveTrackedAchievement(id); |
AchievementFrameAchievements_ForceUpdate(); |
WatchFrame_Update(); |
return; |
end |
local _, _, _, completed = GetAchievementInfo(id) |
if ( completed ) then |
UIErrorsFrame:AddMessage(ERR_ACHIEVEMENT_WATCH_COMPLETED, 1.0, 0.1, 0.1, 1.0); |
return; |
end |
AddTrackedAchievement(id); |
AchievementFrameAchievements_ForceUpdate(); |
WatchFrame_Update(); |
return true; |
end |
function QGT_RemoveTrackedAchievement(id) |
QGT_WatchAchievements[id] = nil; |
table.sort(QGT_WatchAchievements, function(a, b) return (a < b); end); |
WatchFrame_Update(); |
end |
hooksecurefunc("RemoveTrackedAchievement", QGT_RemoveTrackedAchievement); |
function QGT_AddTrackedAchievement(id) |
QGT_WatchAchievements[id] = true; |
table.sort(QGT_WatchAchievements, function(a, b) return (a < b); end); |
WatchFrame_Update(); |
end |
hooksecurefunc("AddTrackedAchievement", QGT_AddTrackedAchievement); |
--function IsTrackedAchievement(id) |
-- if (QGT_WatchAchievements[id] == true) then |
-- return true; |
-- else |
-- return false; |
-- end |
--end |
function QGT_SetAchievements() |
local k, v; |
QGT_WatchAchievements = {}; |
local trackedAchivements = {GetTrackedAchievements()}; |
for k, v in pairs(trackedAchivements) do |
QGT_AddTrackedAchievement(v); |
end |
end |
function QGT_AchievementWatch_OnUpdate(elapsed) |
-- Do nothing for now |
end |
-------------------------------------------- |
-- QuestGuru_Tracker English Localization -- |
-------------------------------------------- |
-- Default filler words used in various places |
QG_UNKNOWN = "Unknown"; |
QG_NONE = "None"; |
-- Right click menu strings for Quest Log and Tracker |
QG_TRACK = "Track"; |
QG_UNTRACK = "Untrack"; |
QG_SHARE_QUEST = "Share Quest"; |
QG_ABANDON_QUEST = "Abandon Quest"; |
QG_DELETE_QUEST = "Delete Quest"; |
-- Party Info Tooltip strings |
QG_ABANDONED = "Abandonded" |
QG_INCOMPLETE = "Not Complete"; |
QG_ACTIVE = "Active"; |
QG_ALT_STATUS_HEAD = "------------- Alts Quest Status -------------"; |
QG_GUILD_STATUS_HEAD = "---------- Guild Members Status ----------"; |
-- User Interface Elements |
QG_EXPAND_HEADERS = "Expand/Collapse all headers"; |
QG_OPTIONS = "Options"; |
QG_SEARCH = "Search: "; |
QG_CLEAR_ABANDON = "Clear Abandon List"; |
-- Tracker |
QG_TRACKER_SHOW = "Show Tracker"; |
QG_TRACKER_MINIMIZE = "Minimize Tracker"; |
QG_TRACKER_OPTIONS = "Tracker Options"; |
QG_TRACKER_TOGGLE = "Click to switch between Quest and Achievement tracking. Right-click to toggle showing both windows"; |
QG_TRACKER_SORT = "Click to open a menu with quest sorting options"; |
QG_TRACKER_QUESTS = "Quests"; |
QG_TRACKER_ACHIEVE = "Achievements"; |
QG_TRACKER_Q = "Q"; --Abbreviation for Quest for toggle button |
QG_TRACKER_A = "A"; --Abbreviation for Achievement for toggle button |
-- Options |
QG_OPT_TRACKER_DESC = "These options change the look of the QuestGuru Tracker.\nChanges to these settings are saved immediately."; |
QG_OPT_TRACKER_BORDER = "Show border"; |
QG_OPT_TRACKER_BORDER_DESC = "Check this option to display a thin border around the tracker"; |
QG_OPT_TRACKER_ITEMICONS = "Show quest item icons"; |
QG_OPT_TRACKER_ITEMICONS_DESC = "Check this option to display icons for special quest items"; |
QG_OPT_TRACKER_CLICKTHROUGH = "Click through tracker"; |
QG_OPT_TRACKER_CLICKTHROUGH_DESC = "Check this option to disable the mouse for the tracker, allowing you to click through it"; |
QG_OPT_TRACKER_HEADERS = "Show headers"; |
QG_OPT_TRACKER_HEADERS_DESC = "Checking this option displays zone headers in the tracker"; |
QG_OPT_TRACKER_LEVELS = "Show quest levels"; |
QG_OPT_TRACKER_LEVELS_DESC = "Checking this option shows quest level information in the tracker"; |
QG_OPT_TRACKER_QUEST_TOOLTIPS = "Show quest tooltips"; |
QG_OPT_TRACKER_QUEST_TOOLTIPS_DESC = "Checking this option displays a tooltip with more information when you mouse over a quest name or objective item in the tracker"; |
QG_OPT_TRACKER_PARTY_TOOLTIPS = "Show party tooltips"; |
QG_OPT_TRACKER_PARTY_TOOLTIPS_DESC = "Checking this option displays the party/alt/guild info tooltip when you mouse over a quest name in the tracker"; |
QG_OPT_TRACKER_PERCENT = "Show quest percent"; |
QG_OPT_TRACKER_PERCENT_DESC = "This option shows your quest progress percentage next to the quest name in the tracker"; |
QG_OPT_TRACKER_ANCHOR_BOTTOM = "Anchor Bottom"; |
QG_OPT_TRACKER_ANCHOR_BOTTOM_DESC = "Anchor the bottom of the tracker to make it expand upwards."; |
QG_OPT_TRACKER_PIN = "Pin Tracker Position"; |
QG_OPT_TRACKER_PIN_DESC = "Check this option to lock the tracker in place so it can't be accidentally moved."; |
QG_OPT_TRACKER_AUTOUNTRACK = "Untrack complete quests"; |
QG_OPT_TRACKER_AUTOUNTRACK_DESC = "Automatically remove quests from the tracker upon completion of all objectives"; |
QG_OPT_TRACKER_COMPLETE_OBJ = "Show completed objectives"; |
QG_OPT_TRACKER_COMPLETE_OBJ_DESC = "Uncheck this option to hide complete objectives in the tracker"; |
QG_OPT_TRACKER_COLOR_OBJ = "Colorize objective progress"; |
QG_OPT_TRACKER_COLOR_OBJ_DESC = "Check this option to color objectives based on progress using the colors below"; |
QG_OPT_TRACKER_OBJ_COLOR_0 = "Color for objectives that are 0% complete"; |
QG_OPT_TRACKER_OBJ_COLOR_99 = "Color for objectives that are 99% complete"; |
QG_OPT_TRACKER_OBJ_COLOR_COMPLETE = "Color for objectives that are complete"; |
QG_OPT_TRACKER_SIZE = "Tracker Size"; |
QG_OPT_TRACKER_MAX_LINES = "Max. Tracker Lines:"; |
QG_OPT_TRACKER_ALPHA = "Background Alpha"; |
QG_OPT_TRACKER_BULLET = "Bullet symbol to use for objectives:"; |
QG_OPT_TRACKER_HIDECOMBAT = "Hide during combat"; |
QG_OPT_TRACKER_HIDECOMBAT_DESC = "Selecting this option will automatically hide the tracker(s) during combat."; |
QG_OPT_TRACKER_HIDEBLIZZTRACK = "Hide Blizzard Tracker"; |
QG_OPT_TRACKER_HIDEBLIZZTRACK_DESC = "Select this option will hide the default Blizzard tracker. Uncheck if special functions of that tracker are needed."; |
QG_OPT_TRACKER_SORTQUESTNONE = "Sort by header/quest level"; |
QG_OPT_TRACKER_SORTQUESTPROX = "Sort by proximity"; |
-- Other strings that may or may not need localizing |
QG_ITEM_REQ_STR = "(.*):%s*([%d]+)%s*/%s*([%d]+)"; -- The format of the line when an item is required for a quest, an invalid format can cause many errors |
QG_ITEM_REQ_STR2 = "(.*):%s*%(([%d]+)%)"; -- The format of the line when an item is required for a quest, an invalid format can cause many errors (alternate format for some quests) |
QG_DATETIME = "%m/%d/%Y %H:%M:%S"; -- The format that date/time values are stored and displayed for start/finish info |
<Bindings> |
<Binding name="QGT_TOGGLE_TRACKER_KB" description="Toggle Tracker" header="QGT_HEADER"> |
QGT_ShowTracker = not QGT_ShowTracker; |
WatchFrame_Update(); |
</Binding> |
</Bindings> |
<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/ |
..\FrameXML\UI.xsd"> |
<Button name="QGT_QuestWatchButtonTemplate" virtual="true"> |
<Size x="240" y="14"/> |
<Attributes> |
<Attribute name="qID" type="text" value="" /> |
</Attributes> |
<Layers> |
<Layer level="ARTWORK"> |
<Texture name="$parentHighlight" file="Interface\QuestFrame\UI-QuestLogTitleHighlight" alphaMode="ADD" hidden="true"/> |
<FontString name="$parentTag" inherits="GameFontNormal" justifyH="RIGHT"> |
<Size x="0" y="16"/> |
<Anchors> |
<Anchor point="RIGHT"> |
<Offset x="-2" y="0"/> |
</Anchor> |
</Anchors> |
</FontString> |
</Layer> |
</Layers> |
<Scripts> |
<OnClick> |
QGT_QuestWatchButton_OnClick(self, button, down); |
</OnClick> |
<OnEnter> |
QGT_QuestWatchButton_OnEnter(self, motion); |
QGT_QuestWatchFrameSlider:SetScript("OnMouseUp", nil); |
QGT_ShowQuestTrackerSlider(self, true); |
</OnEnter> |
<OnLeave> |
QGT_QuestWatchButton_OnLeave(self, motion); |
</OnLeave> |
</Scripts> |
<NormalTexture name="$parentArrow" file="Interface\Buttons\UI-SortArrow"> |
<Size x="8" y="8" /> |
<Anchors> |
<Anchor point="LEFT" /> |
</Anchors> |
<TexCoords left="0" right="0.5" top="0" bottom="1"/> |
</NormalTexture> |
<ButtonText name="$parentNormalText" nonspacewrap="true"> |
<Size x="0" y="10"/> |
<Anchors> |
<Anchor point="LEFT"> |
<Offset x="0" y="0"/> |
</Anchor> |
</Anchors> |
</ButtonText> |
<NormalFont style="GameFontNormalLeft" /> |
<HighlightFont style="GameFontHighlightLeft" /> |
<DisabledFont style="GameFontHighlightLeft" /> |
</Button> |
<StatusBar name="AchievementProgressBarTemplate" virtual="true"> |
<Size> |
<AbsDimension x="212" y="14"/> |
</Size> |
<Anchors> |
<Anchor point="CENTER"/> |
</Anchors> |
<Layers> |
<Layer level="BACKGROUND"> |
<Texture name="$parentBG"> |
<Anchors> |
<Anchor point="TOPLEFT"/> |
<Anchor point="BOTTOMRIGHT"/> |
</Anchors> |
<Color r="0" g="0" b="0" a=".4"/> |
</Texture> |
</Layer> |
<Layer level="OVERLAY"> |
<FontString name="$parentText" inherits="GameFontHighlightSmall" text="700/700" justifyV="TOP"> |
<Size x="0" y="0"/> |
<Anchors> |
<Anchor point="CENTER"> |
<Offset x="0" y="0"/> |
</Anchor> |
</Anchors> |
</FontString> |
</Layer> |
<Layer level="ARTWORK"> |
<Texture name="$parentBorderLeft" file="Interface\AchievementFrame\UI-Achievement-ProgressBar-Border"> |
<Size x="16" y="0"/> |
<Anchors> |
<Anchor point="TOPLEFT"> |
<Offset> |
<AbsDimension x="-6" y="5"/> |
</Offset> |
</Anchor> |
<Anchor point="BOTTOMLEFT"> |
<Offset> |
<AbsDimension x="-6" y="-5"/> |
</Offset> |
</Anchor> |
</Anchors> |
<TexCoords left="0" right="0.0625" top="0" bottom="0.75"/> |
</Texture> |
<Texture name="$parentBorderRight" file="Interface\AchievementFrame\UI-Achievement-ProgressBar-Border"> |
<Size x="16" y="0"/> |
<Anchors> |
<Anchor point="TOPRIGHT"> |
<Offset> |
<AbsDimension x="6" y="5"/> |
</Offset> |
</Anchor> |
<Anchor point="BOTTOMRIGHT"> |
<Offset> |
<AbsDimension x="6" y="-5"/> |
</Offset> |
</Anchor> |
</Anchors> |
<TexCoords left="0.812" right="0.8745" top="0" bottom="0.75"/> |
</Texture> |
<Texture name="$parentBorderCenter" file="Interface\AchievementFrame\UI-Achievement-ProgressBar-Border"> |
<Size x="16"/> |
<Anchors> |
<Anchor point="TOPLEFT" relativeTo="$parentBorderLeft" relativePoint="TOPRIGHT"/> |
<Anchor point="BOTTOMRIGHT" relativeTo="$parentBorderRight" relativePoint="BOTTOMLEFT"/> |
</Anchors> |
<TexCoords left="0.0625" right="0.812" top="0" bottom="0.75"/> |
</Texture> |
</Layer> |
</Layers> |
<Scripts> |
<OnLoad> |
self:SetStatusBarColor(0, .6, 0, 1); |
self:SetMinMaxValues(0, 100); |
self:SetValue(0); |
self.text = _G[self:GetName() .. "Text"]; |
self:GetStatusBarTexture():SetDrawLayer("BORDER"); |
</OnLoad> |
</Scripts> |
<BarTexture file="Interface\TargetingFrame\UI-StatusBar"/> |
</StatusBar> |
<Button name="QGT_AchievementWatchButtonTemplate" virtual="true" inherits="WatchFrameLineTemplate"> |
<Layers> |
<Layer level="ARTWORK"> |
<Texture name="$parentHighlight" file="Interface\QuestFrame\UI-QuestLogTitleHighlight" alphaMode="ADD" hidden="true"/> |
<FontString name="$parentTimer" inherits="GameFontNormal" justifyH="RIGHT"> |
<Size x="0" y="16"/> |
<Anchors> |
<Anchor point="RIGHT"> |
<Offset x="-2" y="0"/> |
</Anchor> |
</Anchors> |
</FontString> |
</Layer> |
</Layers> |
<Frames> |
<StatusBar name="$parentStatusBar" inherits="AchievementProgressBarTemplate" hidden="true"> |
<Anchors> |
<Anchor point="TOPLEFT"> |
<Offset x="10" y="0"/> |
</Anchor> |
<Anchor point="BOTTOMRIGHT"> |
<Offset x="-16" y="0"/> |
</Anchor> |
</Anchors> |
</StatusBar> |
</Frames> |
<ButtonText name="$parentNormalText" nonspacewrap="true"> |
<Size x="0" y="10"/> |
<Anchors> |
<Anchor point="LEFT"> |
<Offset x="0" y="0"/> |
</Anchor> |
</Anchors> |
</ButtonText> |
<NormalFont style="GameFontNormalLeft" /> |
<HighlightFont style="GameFontHighlightLeft" /> |
<DisabledFont style="GameFontHighlightLeft" /> |
</Button> |
<Button name="QGT_QuestWatchMiniButtonTemplate" virtual="true"> |
<Size x="16" y="16" /> |
<ButtonText name="$parentText" nonspacewrap="true"> |
<Anchors> |
<Anchor point="CENTER"> |
<Offset x="0" y="0"/> |
</Anchor> |
</Anchors> |
</ButtonText> |
<NormalTexture name="$parentNormalTexture" file="Interface\Buttons\UI-Quickslot2"> |
<Size x="25" y="25"/> |
<Anchors> |
<Anchor point="CENTER"> |
<Offset x="0" y="-1"/> |
</Anchor> |
</Anchors> |
</NormalTexture> |
<PushedTexture file="Interface\Buttons\UI-Quickslot-Depress"/> |
<HighlightTexture alphaMode="ADD" file="Interface\Buttons\ButtonHilight-Square"/> |
<NormalFont style="GameFontNormalLeft" /> |
<HighlightFont style="GameFontHighlightLeft" /> |
<DisabledFont style="GameFontHighlightLeft" /> |
</Button> |
<CheckButton name="QGT_InterfaceOptionsBaseCheckButtonTemplate" virtual="true"> |
<Size x="26" y="26"/> |
<HitRectInsets> |
<AbsInset left="0" right="-100" top="0" bottom="0"/> |
</HitRectInsets> |
<Scripts> |
<OnShow> |
self:SetHitRectInsets(0, -getglobal(self:GetName().."Text"):GetWidth(), 0, 0); |
</OnShow> |
<OnMouseUp> |
if ( self:GetChecked() ) then |
PlaySound("igMainMenuOptionCheckBoxOn"); |
else |
PlaySound("igMainMenuOptionCheckBoxOff"); |
end |
</OnMouseUp> |
<OnEnter> |
if ( self.tooltipText ) then |
GameTooltip:SetOwner(self, "ANCHOR_RIGHT"); |
GameTooltip:SetText(self.tooltipText, nil, nil, nil, nil, 1); |
end |
if ( self.tooltipRequirement ) then |
GameTooltip:AddLine(self.tooltipRequirement, "", 1.0, 1.0, 1.0); |
GameTooltip:Show(); |
end |
</OnEnter> |
<OnLeave> |
GameTooltip:Hide(); |
</OnLeave> |
</Scripts> |
<NormalTexture file="Interface\Buttons\UI-CheckBox-Up"/> |
<PushedTexture file="Interface\Buttons\UI-CheckBox-Down"/> |
<HighlightTexture file="Interface\Buttons\UI-CheckBox-Highlight" alphaMode="ADD"/> |
<CheckedTexture file="Interface\Buttons\UI-CheckBox-Check"/> |
<DisabledCheckedTexture file="Interface\Buttons\UI-CheckBox-Check-Disabled"/> |
</CheckButton> |
<CheckButton name="QGT_InterfaceOptionsCheckButtonTemplate" virtual="true" inherits="QGT_InterfaceOptionsBaseCheckButtonTemplate"> |
<Layers> |
<Layer level="ARTWORK"> |
<FontString name="$parentText" inherits="GameFontHighlight"> |
<Anchors> |
<Anchor point="LEFT" relativePoint="RIGHT"> |
<Offset> |
<AbsDimension x="0" y="1"/> |
</Offset> |
</Anchor> |
</Anchors> |
</FontString> |
</Layer> |
</Layers> |
</CheckButton> |
<Button name="QGT_ColorPickerButtonTemplate" virtual="true"> |
<Size x="16" y="16"/> |
<Layers> |
<Layer level="ARTWORK"> |
<Texture name="$parentSwatch"> |
<Size x="12" y="12"/> |
<Anchors> |
<Anchor point="CENTER"> |
<Offset x="0" y="0"/> |
</Anchor> |
</Anchors> |
<Color r="1.0" g="1.0" b="1.0" a="1.0"/> |
</Texture> |
</Layer> |
</Layers> |
<Scripts> |
<OnEnter> |
if ( self.tooltipText ) then |
GameTooltip:SetOwner(self, "ANCHOR_RIGHT"); |
GameTooltip:SetText(self.tooltipText, nil, nil, nil, nil, 1); |
end |
if ( self.tooltipRequirement ) then |
GameTooltip:AddLine(self.tooltipRequirement, "", 1.0, 1.0, 1.0); |
GameTooltip:Show(); |
end |
</OnEnter> |
<OnLeave> |
GameTooltip:Hide(); |
</OnLeave> |
</Scripts> |
</Button> |
</Ui> |
------------------------------------ |
-- QuestGuru Russian Localization by StingerSoft-- |
------------------------------------ |
if (GetLocale() == "ruRU") then |
-- Default filler words used in various places |
QG_UNKNOWN = "ÐеизвеÑÑнÑй"; |
QG_NONE = "ÐÑÑÑÑÑÑвÑеÑ"; |
-- Right click menu strings for Quest Log and Tracker |
QG_TRACK = "СледиÑÑ"; |
QG_UNTRACK = "Ðе ÑледиÑÑ"; |
QG_SHARE_QUEST = "ÐоделиÑÑÑÑ"; |
QG_ABANDON_QUEST = "ÐÑмениÑÑ Ð·Ð°Ð´Ð°Ð½Ð¸Ðµ"; |
QG_DELETE_QUEST = "УдалиÑÑ Ð·Ð°Ð´Ð°Ð½Ð¸Ðµ"; |
-- Party Info Tooltip strings |
QG_ABANDONED = "ÐÑменÑннÑй" |
QG_INCOMPLETE = "Ðе вÑполненнÑй"; |
QG_ACTIVE = "ÐкÑивнÑй"; |
QG_ALT_STATUS_HEAD = "------------- СÑаÑÑÑ Ð·Ð°Ð´Ð°Ð½Ð¸Ñ Ð°Ð»ÑÑа -------------"; |
QG_GUILD_STATUS_HEAD = "---------- СÑаÑÑÑ ÑÑаÑÑников гилÑдии ----------"; |
-- User Interface Elements |
QG_EXPAND_HEADERS = "РазвеÑнÑÑÑ/СвеÑнÑÑÑ Ð²Ñе загаловки"; |
QG_OPTIONS = "ÐаÑÑÑойки"; |
QG_SEARCH = "ÐоиÑк: "; |
QG_CLEAR_ABANDON = "ÐÑиÑÑиÑÑ ÑпиÑок оÑменений"; |
-- Tracker |
QG_TRACKER_SHOW = "ÐоказаÑÑ ÑÑекеÑ"; |
QG_TRACKER_MINIMIZE = "СвеÑнÑÑÑ ÑÑекеÑ"; |
QG_TRACKER_OPTIONS = "ÐаÑÑÑойки ÑÑекеÑа"; |
QG_TRACKER_TOGGLE = "ÐликниÑе ÑÑÐ¾Ð±Ñ Ð¿ÐµÑеклÑÑиÑÑÑÑ Ð¼ÐµÐ¶Ð´Ñ Ð·Ð°Ð´Ð°Ð½Ð¸Ñми и доÑÑижениÑми. ÐÑавÑй-клик пеÑеклÑÑÐ°ÐµÑ Ð¿Ð¾ÐºÐ°Ð· Ð¾Ð±Ð¾Ð¸Ñ Ð¾ÐºÐ¾Ð½"; |
QG_TRACKER_QUESTS = "ÐаданиÑ"; |
QG_TRACKER_ACHIEVE = "ÐоÑÑижениÑ"; |
QG_TRACKER_Q = "Ð"; --Abbreviation for Quest for toggle button |
QG_TRACKER_A = "Ð"; --Abbreviation for Achievement for toggle button |
-- Options |
QG_OPT_TRACKER_DESC = "ÐаннÑй Ñаздел Ð¿Ð¾Ð¼Ð¾Ð¶ÐµÑ Ð²Ð°Ð¼ наÑÑÑоиÑÑ Ð²Ð½ÐµÑний вид ÑÑекеÑа QG."; |
QG_OPT_TRACKER_BORDER = "Ðоказ кÑаÑ"; |
QG_OPT_TRACKER_BORDER_DESC = "ÐÑмеÑÑÑе даннÑÑ Ð¾Ð¿ÑÐ¸Ñ Ð´Ð»Ñ Ð¾ÑобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ñонкого кÑÐ°Ñ Ð²Ð¾ÐºÑÑг ÑÑекеÑа"; |
QG_OPT_TRACKER_ITEMICONS = "Ðоказ Ð¸ÐºÐ¾Ð½ÐºÑ Ð¿ÑедмеÑа"; |
QG_OPT_TRACKER_ITEMICONS_DESC = "ÐÑмеÑÑÑе даннÑÑ Ð¾Ð¿ÑÐ¸Ñ Ð´Ð»Ñ Ð¾ÑобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð¸ÐºÐ¾Ð½ÐºÐ¸, Ð´Ð»Ñ Ð¿ÑедмеÑов в задании"; |
QG_OPT_TRACKER_CLICKTHROUGH = "Ðлики по ÑÑекеÑÑ"; |
QG_OPT_TRACKER_CLICKTHROUGH_DESC = "ÐÑмеÑÑÑе даннÑÑ Ð¾Ð¿ÑÐ¸Ñ Ð´Ð»Ñ Ð¾ÑклÑÑÐµÐ½Ð¸Ñ Ð¼ÑÑи в окне ÑÑекеÑа, Ñо еÑÑÑ, окно не бÑÐ´ÐµÑ ÑеагиÑоваÑÑ Ð½Ð° ваÑи клики мÑÑÑÑ Ð¿Ð¾ немÑ."; |
QG_OPT_TRACKER_HEADERS = "Ðоказ заголовки"; |
QG_OPT_TRACKER_HEADERS_DESC = "ÐÑмеÑÑÑе даннÑÑ Ð¾Ð¿ÑÐ¸Ñ Ð´Ð»Ñ Ð¾ÑобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð·Ð¾Ð½Ñ Ð² Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ°Ñ , в ÑÑекеÑе"; |
QG_OPT_TRACKER_LEVELS = "Ðоказ ÑÑовни заданий"; |
QG_OPT_TRACKER_LEVELS_DESC = "ÐÑмеÑÑÑе даннÑÑ Ð¾Ð¿ÑÐ¸Ñ Ð´Ð»Ñ Ð¾ÑобÑÐ°Ð¶ÐµÐ½Ð¸Ñ ÑÑÐ¾Ð²Ð½Ñ Ð·Ð°Ð´Ð°Ð½Ð¸Ñ Ð² ÑÑекеÑе"; |
QG_OPT_TRACKER_QUEST_TOOLTIPS = "Ðоказ подÑказки заданий"; |
QG_OPT_TRACKER_QUEST_TOOLTIPS_DESC = "ÐÑмеÑÑÑе даннÑÑ Ð¾Ð¿ÑÐ¸Ñ Ð´Ð»Ñ Ð¾ÑобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´Ñказки Ñ Ð¸Ð½ÑоÑмаÑией о задании, пÑи наводе мÑÑи на название или на пÑÐµÐ´Ð¼ÐµÑ ÑÑÐµÐ±Ð¾Ð²Ð°Ð½Ð¸Ñ Ð·Ð°Ð´Ð°Ð½Ð¸Ñ Ð² ÑÑекеÑе"; |
QG_OPT_TRACKER_PARTY_TOOLTIPS = "Ðоказ подÑказки гÑÑппÑ"; |
QG_OPT_TRACKER_PARTY_TOOLTIPS_DESC = "ÐÑмеÑÑÑе даннÑÑ Ð¾Ð¿ÑÐ¸Ñ Ð´Ð»Ñ Ð¾ÑобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´Ñказки Ñ Ð¸Ð½ÑоÑмаÑией гÑÑппÑ/алÑÑа/гилÑдии, пÑи наводе мÑÑи на название Ð·Ð°Ð´Ð°Ð½Ð¸Ñ Ð² ÑÑекеÑе"; |
QG_OPT_TRACKER_PERCENT = "Ðоказ пÑоÑÐµÐ½Ñ Ð²ÑполнениÑ"; |
QG_OPT_TRACKER_PERCENT_DESC = "ÐаннÑй опÑÐ¸Ñ Ð¾ÑвеÑÐ°ÐµÑ Ð·Ð° оÑобÑажение в ÑÑекеÑе знаÑениÑ, ÑÑепени вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð²Ð°Ñего Ð·Ð°Ð´Ð°Ð½Ð¸Ñ Ð² пÑоÑенÑÐ°Ñ "; |
QG_OPT_TRACKER_ANCHOR_BOTTOM = "Ðижний ÑкоÑÑ"; |
QG_OPT_TRACKER_ANCHOR_BOTTOM_DESC = "Ðижний ÑкоÑÑ ÑÑекеÑа даÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ ÑаÑкÑÑваÑÑÑÑ Ð²Ð²ÐµÑÑ ."; |
QG_OPT_TRACKER_PIN = "ÐакÑепиÑÑ ÑÑекееÑ"; |
QG_OPT_TRACKER_PIN_DESC = "ÐÑмеÑÑÑе даннÑÑ Ð¾Ð¿ÑÐ¸Ñ Ð´Ð»Ñ ÑикÑаÑии ÑÑекеÑа, ÑÑо обезопаÑÐ¸Ñ Ð¾Ñ ÑлÑÑайного пеÑемеÑениÑ."; |
QG_OPT_TRACKER_AUTOUNTRACK = "УбиÑаÑÑ Ð²ÑполненнÑе"; |
QG_OPT_TRACKER_AUTOUNTRACK_DESC = "ÐвÑомаÑиÑеÑки ÑбиÑÐ°ÐµÑ Ð·Ð°Ð´Ð°Ð½Ð¸Ðµ из ÑÑекеÑа поÑле вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð²ÑÐµÑ ÑÑебований"; |
QG_OPT_TRACKER_COMPLETE_OBJ = "ÐÑполненнÑе ÑÑебованиÑ"; |
QG_OPT_TRACKER_COMPLETE_OBJ_DESC = "СнÑв Ð³Ð°Ð»ÐºÑ Ñ Ð¾Ð¿Ñии, Ñем ÑамÑм Ð²Ñ ÑбеÑÑÑе из ÑÑекеÑа вÑполненнÑе ÑÑÐµÐ±Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ Ð·Ð°Ð´Ð°Ð½Ð¸Ð¹"; |
QG_OPT_TRACKER_COLOR_OBJ = "ÐкÑаÑка ÑÑебований, оÑнованнÑÑ Ð½Ð° пÑогÑеÑÑе"; |
QG_OPT_TRACKER_COLOR_OBJ_DESC = "ÐÑмеÑÑÑе даннÑÑ Ð¾Ð¿ÑÐ¸Ñ Ð´Ð»Ñ Ð¾ÐºÑаÑки ÑÑебований, оÑнованнÑÑ Ð½Ð° пÑогÑеÑÑе, иÑполÑзÑÑ ÑвеÑа пÑиведÑннÑе ниже"; |
QG_OPT_TRACKER_OBJ_COLOR_0 = "ÐкÑаÑки ÑÑебований, коÑоÑÑе Ð½Ð°Ñ Ð¾Ð´ÑÑÑÑ Ð² 0% ÑÑадии вÑполнениÑ"; |
QG_OPT_TRACKER_OBJ_COLOR_99 = "ÐкÑаÑки ÑÑебований, коÑоÑÑе Ð½Ð°Ñ Ð¾Ð´ÑÑÑÑ Ð² 99% ÑÑадии вÑполнениÑ"; |
QG_OPT_TRACKER_OBJ_COLOR_COMPLETE = "ÐкÑаÑки ÑÑебований, коÑоÑÑе Ñже вÑполненÑ"; |
QG_OPT_TRACKER_SIZE = "Ð Ð°Ð·Ð¼ÐµÑ ÑÑекеÑа"; |
QG_OPT_TRACKER_MAX_LINES = "ÐакÑ. ÑÑÑок в ÑÑекеÑе:"; |
QG_OPT_TRACKER_ALPHA = "ÐÑозÑаÑноÑÑÑ Ñона"; |
QG_OPT_TRACKER_BULLET = "Ð¡Ð¸Ð¼Ð²Ð¾Ð»Ñ Ð´Ð»Ñ Ð¿Ð¾Ð´Ð¼ÐµÑÐ¸Ð²Ð°Ð½Ð¸Ñ Ñелей заданиÑ:"; |
-- Other strings that may or may not need localizing |
QG_ITEM_REQ_STR = "(.*):%s*([%d]+)%s*/%s*([%d]+)"; -- The format of the line when an item is required for a quest, an invalid format can cause many errors |
QG_DATETIME = "%m/%d/%Y %H:%M:%S"; -- The format that date/time values are stored and displayed for start/finish info |
end |
<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/ |
..\FrameXML\UI.xsd"> |
<Script file="QuestGuru_Tracker.lua" /> |
<Script file="QGT_Quests.lua" /> |
<Script file="QGT_Achievements.lua" /> |
<Frame name="QGT_QuestWatchTitleMenu" inherits="UIDropDownMenuTemplate" id="1"> |
<Scripts> |
<OnLoad> |
UIDropDownMenu_Initialize(self, QGT_QuestWatchTitleMenu_OnLoad, "MENU"); |
</OnLoad> |
</Scripts> |
</Frame> |
<Frame name="QGT_QuestsTitleMenu" inherits="UIDropDownMenuTemplate" id="1"> |
<Scripts> |
<OnLoad> |
UIDropDownMenu_Initialize(self, QGT_QuestsTitleMenu_OnLoad, "MENU"); |
</OnLoad> |
</Scripts> |
</Frame> |
</Ui> |
------------------------------------ |
-- QuestGuru French Localization -- |
------------------------------------ |
-- Ã \195\128 |
-- Ã \195\129 |
-- Ã \195\130 |
-- Ã \195\132 |
-- Ã \195\136 |
-- Ã \195\137 |
-- Ã \195\138 |
-- Ã \195\139 |
-- Ã \195\142 |
-- Ã \195\143 |
-- Ã \195\148 |
-- Ã \195\150 |
-- Ã \195\155 |
-- Ã \195\156 |
-- Ã \195\160 |
-- á \195\161 |
-- â \195\162 |
-- ä \195\164 |
-- è \195\168 |
-- é \195\169 |
-- ê \195\170 |
-- ë \195\171 |
-- î \195\174 |
-- ï \195\175 |
-- ô \195\180 |
-- ö \195\182 |
-- û \195\187 |
-- ü \195\188 |
-- 'Å \39\197\146 |
-- |
if (GetLocale() == "frFR") then |
QG_REP_GAIN = "R\195\169putation aupr\195\168s de (.*) augment\195\169e de ([%d]+)."; |
QG_REP_DEC = "R\195\169putation aupr\195\168s de (.*) diminu\195\169e de ([%d]+)."; |
QG_XP_GAIN = "Vous gagnez ([%d]+) points d'exp\195\169rience."; |
QG_QUEST_COMPLETE = "Qu\195\170te termin\195\169e !"; |
-- Default filler words used in various places |
QG_UNKNOWN = "Inconnu"; |
QG_NONE = "Aucun"; |
-- Right click menu strings for Quest Log and Tracker |
QG_TRACK = "Suivre"; |
QG_UNTRACK = "Ne pas suivre"; |
QG_SHARE_QUEST = "Partager la qu\195\170te"; |
QG_ABANDON_QUEST = "Abandonner la qu\195\170te"; |
QG_DELETE_QUEST = "Supprimer la qu\195\170te"; |
-- Quest Start and Finish information |
QG_QSTART_HEAD = "D\195\169tails du d\195\169but de qu\195\170te"; |
QG_QSTART_NPC = "Lanc\195\169e par :"; |
QG_QSTART_TIME = "Le :"; |
QG_QSTART_LEVEL = "Au niveau :"; |
QG_QFINISH_HEAD = "D\195\169tails de fin de qu\195\170te"; |
QG_QFINISH_NPC = "Finie par :"; |
QG_QFINISH_TIME = "A :"; |
QG_QFINISH_LEVEL = "Au niveau :"; |
QG_QABANDON = "Abandonn\195\169e:"; |
-- Tab Text |
QG_TAB_CURRENT = "En cours"; |
QG_TAB_HISTORY = "Historique"; |
QG_TAB_ABANDON = "Abandon\195\169es"; |
QG_TAB_GUILD = "Guilde"; |
QG_TAB_PARTY = "Groupe"; |
-- Party Info Tooltip strings |
QG_ABANDONED = "Abandonn\195\169e"; |
QG_INCOMPLETE = "Incompl\195\168te"; |
QG_ACTIVE = "Active"; |
QG_ALT_STATUS_HEAD = "------------- Vos autres personnages ----------"; |
QG_GUILD_STATUS_HEAD = "-------- Les membres de votre Guilde ---------"; |
-- User Interface Elements |
QG_EXPAND_HEADERS = "Ouvrir/fermer tout"; |
QG_OPTIONS = "Options"; |
QG_SEARCH = "Rech. : "; |
QG_CLEAR_ABANDON = "Effacer la liste"; |
-- Abandon Tab Strings |
QG_ABANDON_CLEAR = "Voulez-vous effacer la liste ?"; |
QG_ABANDON_DELETE = "Effacer \"%s\" du journal d'abandon ?"; -- %s est le nom de la quete |
-- History Tab strings |
QG_HISTORY_DELETE = "Effacer \"%s\" de l'historique ?"; -- %s est le nom de la quete |
QG_HISTORY_NONE = "Pas de qu\195\170te dans l'historique"; |
QG_HISTORY_EXPGAIN = "Exp\195\169rience gagn\195\169e :"; |
QG_HISTORY_REPGAIN = "R\195\169putation :"; |
-- Announcer |
QG_OPT_ANNOUNCE_HEAD = "Options d'annonce"; |
QG_OPT_ANNOUNCE_DESC = "Evitez les annonces publiques si vous ne voulez pas vous faire ignorer !\nLes modifications sont enregistr\195\169es lors du clic sur OK."; |
QG_OPT_ANNOUNCE_PROGRESS = "Annoncer la progression"; |
QG_OPT_ANNOUNCE_CHANNEL_HEAD = "Canaux :"; |
QG_OPT_ANNOUNCE_CHANNEL_SAY = "/s"; |
QG_OPT_ANNOUNCE_CHANNEL_SAY_DESC = "Annoncer \195\160 ceux qui vous entourent"; |
QG_OPT_ANNOUNCE_CHANNEL_PARTY = "/p"; |
QG_OPT_ANNOUNCE_CHANNEL_PARTY_DESC = "Annoncer au groupe"; |
QG_OPT_ANNOUNCE_CHANNEL_GUILD = "/g"; |
QG_OPT_ANNOUNCE_CHANNEL_GUILD_DESC = "Annoncer \195\160 votre guilde"; |
QG_OPT_ANNOUNCE_CHANNEL_WHISPER = "/w"; |
QG_OPT_ANNOUNCE_CHANNEL_WHISPER_DESC = "Annoncer \195\160 un ami"; |
QG_OPT_ANNOUNCE_CHANNEL_WHISPER_TO = "A :"; |
QG_OPT_ANNOUNCE_ECHO = "Discussion"; |
QG_OPT_ANNOUNCE_ECHO_DESC = "Afficher votre progression sur la fen\195\169tre de discussion (conseill\195\169)."; |
QG_OPT_ANNOUNCE_MESSAGES = "Messages :"; |
QG_OPT_ANNOUNCE_HELP_DONE = "Nombre d'objets collect\195\169s ou de mobs tu\195\169s"; |
QG_OPT_ANNOUNCE_HELP_NEEDED = "Nombre total d'objets ou de mobs n\195\169c\195\169ssaires"; |
QG_OPT_ANNOUNCE_HELP_NUMLEFT = "Nombre d'objets restants"; |
QG_OPT_ANNOUNCE_HELP_NAME = "Texte d'objectif (sans #/#)"; |
QG_OPT_ANNOUNCE_HELP_TITLE = "Nom de la qu\195\170te pour cet objectif"; |
QG_OPT_ANNOUNCE_HELP_UITEXT = "Le texte affich\195\169 sur l'\195\169cran"; |
QG_OPT_ANNOUNCE_HELP_COMPLETE = "Message \""..COMPLETE.."\""; |
QG_OPT_ANNOUNCE_HELP_QLINK = "Lien de la qu\195\170te concern\195\169e"; |
QG_OPT_ANNOUNCE_ITEM_MSG = "Message pour la progression d'objectifs (objets) :"; |
QG_OPT_ANNOUNCE_MOB_MSG = "Message pour la progression d'objectifs (mobs) :"; |
QG_OPT_ANNOUNCE_EVENT_MSG = "Message pour la progression d'objectifs (event) :"; |
QG_OPT_ANNOUNCE_COMPLETE_MSG = "Message pour la fin de qu\195\170te :"; |
QG_ANNOUNCE_ITEM_DEFAULT = "$done $name sur $needed collect\195\169(s) pour la qu\195\170te $questTitle"; |
QG_ANNOUNCE_MOB_DEFAULT = "$done $name sur $needed n\195\169c\195\169ssaires pour la qu\195\170te $questTitle"; |
QG_ANNOUNCE_RESET = "Restaurer les param\195\169tres par d\195\169faut."; |
-- Tracker |
QG_TRACKER_SHOW = "Afficher le suivi"; |
QG_TRACKER_MINIMIZE = "R\195\169duire"; |
QG_TRACKER_OPTIONS = "Options"; |
-- Options |
QG_OPT_OPTIONS_DESC = "Param\195\169tres g\195\169n\195\169raux de QuestGuru. Les modifications sont prises en compte imm\195\169diatement."; |
QG_OPT_COLORIZE_HEAD = "Couleurs"; |
QG_OPT_COLORIZE_PLAYER = "Joueurs"; |
QG_OPT_COLORIZE_AREA = "Zones"; |
QG_OPT_COLORIZE_NPC = "PNJ"; |
QG_OPT_LEVELS_HEAD = "Afficher les niveaux"; |
QG_OPT_LEVELS_QUESTLOG = "Dans le journal de qu\195\170te"; |
QG_OPT_LEVELS_HISTORY = "Dans l'historique"; |
QG_OPT_LEVELS_ABANDON = "Dans le journal d'abandon"; |
QG_OPT_TOOLTIP_TEXT = "Afficher le texte dans les infobulles des objets/mobs"; |
QG_OPT_AUTOCOMPLETE = "Terminer automatiquement les qu\195\170tes"; |
QG_OPT_ALT_STATUS = "Afficher vos autres personnages dans l'infobulle"; |
QG_OPT_GUILD_STATUS = "Afficher les membres de votre guilde dans l'infobulle"; |
QG_OPT_GUILD_SIMPLE = "Affichage simple des membres de guilde"; |
QG_OPT_OBJ_ICON = "Afficher les ic\195\180nes des objets dans le journal"; |
QG_OPT_WORLDMAP_ICON = "Afficher les donneurs de qu\195\170tes sur la carte du monde"; |
QG_OPT_HEADER_QUEST_NUM = "Montrer le nombre de qu\195\170tes dans les ent\195\170tes"; |
QG_OPT_DISABLE_COMM = "Emp\195\170cher QG de communiquer avec les autres joueurs"; |
QG_OPT_TRACKER_DESC = "Faites-vous un superbe Tracker avec plein de couleurs !\nLes modifications sont appliqu\195\169es imm\195\169diatement."; |
QG_OPT_TRACKER_USE = "Suivre les qu\195\170tes avec QG"; |
QG_OPT_TRACKER_USE_DESC = "D\195\169cocher cette option pour utiliser le Tracker original du jeu."; |
QG_OPT_TRACKER_BORDER = "Afficher la bordure"; |
QG_OPT_TRACKER_BORDER_DESC = "Afficher ou non une bordure autour de la fen\195\170tre de suivi."; |
QG_OPT_TRACKER_CLICKTHROUGH = "Fixer la fen\195\170tre"; |
QG_OPT_TRACKER_CLICKTHROUGH_DESC = "Cette option activ\195\169e, vous ne pouvez plus d\195\169placer la fen\195\170tre."; |
QG_OPT_TRACKER_HEADERS = "Afficher les ent\195\170tes"; |
QG_OPT_TRACKER_HEADERS_DESC = "Affiche les ent\195\170tes des zones/cat\195\169gories des qu\195\170tes"; |
QG_OPT_TRACKER_LEVELS = "Afficher les niveaux"; |
QG_OPT_TRACKER_LEVELS_DESC = "Affiche les informations sur le niveau n\195\169c\195\169ssaire pour faire les qu\195\170tes."; |
QG_OPT_TRACKER_QUEST_TOOLTIPS = "Afficher les infobulles"; |
QG_OPT_TRACKER_QUEST_TOOLTIPS_DESC = "Ouvre une infobulle avec plein d'infos sur la qu\195\170te survol\195\169e. Ne fonctionne pas si le Tracker est fix\195\169 !"; |
QG_OPT_TRACKER_PARTY_TOOLTIPS = "Infobulles de groupe"; |
QG_OPT_TRACKER_PARTY_TOOLTIPS_DESC = "Ouvre une infobulle avec plein d'infos concernant le groupe/la guilde sur la qu\195\170te survol\195\169e.\nNe fonctionne pas si le tracker est fix\195\169 !"; |
QG_OPT_TRACKER_PERCENT = "Afficher les pourcentages"; |
QG_OPT_TRACKER_PERCENT_DESC = "Affiche le pourcentage de r\195\169alisation des qu\195\170tes."; |
QG_OPT_TRACKER_ANCHOR_BOTTOM = "Etirer vers le haut"; |
QG_OPT_TRACKER_ANCHOR_BOTTOM_DESC = "La fen\195\170tre de suivi grandit vers le haut (pratique pour la fixer en bas de l'\195\169cran)"; |
QG_OPT_TRACKER_AUTOTRACK = "Suivi auto. des qu\195\170tes"; |
QG_OPT_TRACKER_AUTOTRACK_DESC = "Ajoute automatiquement les nouvelles qu\195\170tes \195\160 la fen\195\170tre de suivi."; |
QG_OPT_TRACKER_AUTOUNTRACK = "Masquer les qu\195\170tes termin\195\169es"; |
QG_OPT_TRACKER_AUTOUNTRACK_DESC = "D\195\169sactive automatiquement le suivi des qu\195\170tes termin\195\169es."; |
QG_OPT_TRACKER_COMPLETE_OBJ = "Objectifs termin\195\169s"; |
QG_OPT_TRACKER_COMPLETE_OBJ_DESC = "D\195\169cocher la case pour masquer les objectifs termin\195\169s."; |
QG_OPT_TRACKER_COLOR_OBJ = "Couleurs"; |
QG_OPT_TRACKER_COLOR_OBJ_DESC = "Utiliser les couleurs ci-dessous pour identifier l'\195\169tat des qu\195\170tes :"; |
QG_OPT_TRACKER_OBJ_COLOR_0 = "Couleur quand l'objectif est atteint \195\160 0%"; |
QG_OPT_TRACKER_OBJ_COLOR_99 = "Couleur quand l'objectif est atteint \195\160 99%"; |
QG_OPT_TRACKER_OBJ_COLOR_COMPLETE = "Couleur quand l'objectif est termin\195\169"; |
QG_OPT_TRACKER_SIZE = "Taille de la fen\195\170tre"; |
QG_OPT_TRACKER_MAX_LINES = "Lignes maximum :"; |
QG_OPT_TRACKER_ALPHA = "Transparence"; |
QG_OPT_TRACKER_BULLET = "Symbole affich\195\169 devant les objectifs :"; |
QG_OPT_SOUND_HEAD = "Sons"; |
QG_OPT_SOUND_DESC = "Vous pouvez modifier les sons jou\195\169s lors de la progression des qu\195\170tes.\nLes modifications sont prises en compte imm\195\169diatement."; |
QG_OPT_SOUND_ENABLE = "Activer les sons"; |
QG_OPT_SOUND_OBJ = "Pour la progression d'un objectif :"; |
QG_OPT_SOUND_OBJ_DONE = "Pour la fin d'un objectif :"; |
QG_SOUND_QUEST_DONE = "Pour la fin d'une qu\195\170te :"; |
-- Other strings that may or may not need localizing |
QG_ITEM_REQ_STR = "(.*):%s*([%d]+)%s*/%s*([%d]+)"; -- The format of the line when an item is required for a quest, an invalid format can cause many errors |
QG_DATETIME = "%d/%m/%Y %H:%M:%S"; -- Format des dates utilise dans les infos des quetes |
end |
QGT_WatchHeaders = {}; |
QGT_WatchQuests = {}; -- Stores if objectives for individual quests are shown |
QGT_WatchFlash = {}; |
QGT_WatchList = {}; -- List of quests that are tracked |
QGT_WatchLine = {}; |
QGT_WatchLines = 0; |
QGT_WatchUpdateTime = 0; |
QGT_WATCHFRAME_NUM_ITEMS = 0; |
QGT_LastAbandonQuestTitle = ""; |
QGT_QuestTimer = {}; |
QGT_Timer = {}; |
-- .interval = number of seconds to wait |
-- .currTime = number of seconds remaining |
-- .func = function to call after interval |
-- .count = number of times to repeat (-1 for infinite) |
-- .args = options arguments to pass |
QGT_CurrTime = 0; |
function QGT_SetQuestWatchBorder(enabled) |
if (enabled) then |
QGT_QuestWatchFrame:SetBackdrop({ |
bgFile="Interface\\Characterframe\\UI-Party-Background", |
edgeFile="Interface\\Tooltips\\UI-Tooltip-Border", |
tile=1, tileSize=16, edgeSize=16, |
insets={left=4, right=4, top=4, bottom=4} |
}); |
else |
QGT_QuestWatchFrame:SetBackdrop({ |
bgFile="Interface\\Characterframe\\UI-Party-Background", |
tile=1, tileSize=16, |
insets={left=4, right=4, top=4, bottom=4} |
}); |
end |
QGT_QuestWatchFrame:SetBackdropColor(0,0,0,QGT_Settings.Alpha); |
end |
do |
local temp, i; |
QGT_QuestWatchFrame = CreateFrame("FRAME", "QGT_QuestWatchFrame", UIParent); |
QGT_QuestWatchFrame:Hide(); |
QGT_QuestWatchFrame:EnableMouse(1); |
QGT_QuestWatchFrame:EnableMouseWheel(1); |
QGT_QuestWatchFrame:SetMovable(1); |
QGT_QuestWatchFrame:SetResizable(0); |
QGT_QuestWatchFrame:SetToplevel(1); |
QGT_QuestWatchFrame:SetFrameStrata("LOW"); |
QGT_QuestWatchFrame:SetClampedToScreen(true); |
QGT_QuestWatchFrame:SetWidth(256); |
QGT_QuestWatchFrame:SetHeight(20); |
QGT_QuestWatchFrame:SetPoint("TOPRIGHT", MinimapCluster, "BOTTOMRIGHT", 0, 10); |
QGT_QuestWatchFrame:SetHitRectInsets(-16, 0, 0, 0); |
QGT_SetQuestWatchBorder(true); |
QGT_QuestWatchFrame:RegisterForDrag("LeftButton"); |
QGT_QuestWatchFrame:SetScript("OnDragStart", |
function () |
QGT_DragStart(); |
end); |
QGT_QuestWatchFrame:SetScript("OnDragStop", |
function () |
QGT_DragStop(); |
end); |
QGT_QuestWatchFrame:SetScript("OnEnter", |
function (self) |
QGT_QuestWatchFrameSlider:SetScript("OnMouseUp", nil); |
QGT_ShowQuestTrackerSlider(self, true); |
end); |
QGT_QuestWatchFrame:SetScript("OnLeave", |
function (self) |
QGT_ShowQuestTrackerSlider(self, false); |
end); |
QGT_QuestWatchFrame:SetScript("OnMouseWheel", |
function (self, delta) |
local min, max = QGT_QuestWatchFrameSlider:GetMinMaxValues(); |
local currVal = QGT_QuestWatchFrameSlider:GetValue(); |
currVal = currVal - delta; |
if (currVal < min) then currVal = min; end |
if (currVal > max) then currVal = max; end |
QGT_QuestWatchFrameSlider:SetValue(currVal); |
end); |
QGT_QuestWatchFrame:SetScript("OnShow", |
function (self) |
QGT_ShowQuestTrackerSlider(self, false); |
end); |
QGT_QuestWatchFrame:RegisterEvent("QUEST_WATCH_UPDATE"); |
QGT_QuestWatchFrame:RegisterEvent("VARIABLES_LOADED"); |
QGT_QuestWatchFrame:RegisterEvent("UI_INFO_MESSAGE"); |
QGT_QuestWatchFrame:RegisterEvent("PLAYER_ENTERING_WORLD"); |
QGT_QuestWatchFrame:RegisterEvent("PLAYER_REGEN_DISABLED"); |
QGT_QuestWatchFrame:RegisterEvent("PLAYER_REGEN_ENABLED"); |
QGT_QuestWatchFrame:SetScript("OnEvent", |
function (self, event, arg1, arg2, arg3, arg4) |
if (event == "QUEST_WATCH_UPDATE") then |
QGT_AddTimer(2, 1, CheckRemoveQuestWatch, arg1); |
elseif (event == "VARIABLES_LOADED") then |
QGT_VariablesLoaded = true; |
QGT_QuestWatchLoadSettings(); |
elseif (event == "UI_INFO_MESSAGE") then |
QGT_UIInfoMessage(arg1); |
elseif (event == "PLAYER_ENTERING_WORLD") then |
QGT_PlayerAlive = true; |
if (GetBindingKey("QGT_TOGGLE_TRACKER_KB") == nil) then |
SetBinding("SHIFT-L", "QGT_TOGGLE_TRACKER_KB"); |
if (GetCurrentBindingSet() == 2) then |
SaveBindings(2); |
else |
SaveBindings(1); |
end |
end |
QGT_QuestWatchFrame:UnregisterEvent("PLAYER_ENTERING_WORLD"); |
elseif (event == "PLAYER_REGEN_ENABLED") then |
QGT_PlayerInCombat = false; |
WatchFrame_Update(); |
elseif (event == "PLAYER_REGEN_DISABLED") then |
QGT_PlayerInCombat = true; |
WatchFrame_Update(); |
end |
end); |
QGT_QuestWatchFrame:SetScript("OnUpdate", |
function (self, elapsed) |
QGT_OnUpdate(elapsed); |
end); |
temp = QGT_QuestWatchFrame:CreateTexture("QGT_QuestWatchFrameBackground", "ARTWORK"); |
temp:SetHeight(18); |
temp:SetPoint("TOPRIGHT", -4, -4); |
temp:SetPoint("TOPLEFT", 4, -4); |
temp:SetTexture(1, 1, 1); |
temp:SetGradientAlpha("VERTICAL", 0, 0, 0, 0, 0.3, 0.3, 0.3, 1); |
temp = QGT_QuestWatchFrame:CreateFontString("QGT_QuestWatchQuestName", "ARTWORK", "GameFontNormal"); |
temp:SetPoint("TOPLEFT", 8, -6); |
temp:SetJustifyH("LEFT"); |
temp:SetWidth(0); |
temp:SetHeight(12); |
temp:SetText("QuestGuru "..QG_TRACKER_QUESTS); |
temp = QGT_QuestWatchFrame:CreateFontString("QGT_QuestWatchNumQuests", "ARTWORK", "GameFontNormal"); |
temp:SetPoint("LEFT", QGT_QuestWatchQuestName, "RIGHT", 12, 0); |
temp:SetJustifyH("CENTER"); |
temp:SetWidth(0); |
temp:SetHeight(12); |
temp:SetText("0/"..MAX_QUESTS); |
QGT_QuestWatchFrameOptions = CreateFrame("BUTTON", "QGT_QuestWatchFrameOptions", QGT_QuestWatchFrame, "QGT_QuestWatchMiniButtonTemplate"); |
QGT_QuestWatchFrameOptions:SetText("O"); |
QGT_QuestWatchFrameOptions:SetPoint("TOPRIGHT", -5, -4); |
QGT_QuestWatchFrameOptions:SetScript("OnClick", |
function () |
InterfaceOptionsFrame_OpenToCategory("QG Tracker"); |
end); |
QGT_QuestWatchFrameOptions:SetScript("OnEnter", |
function (self) |
QGT_QuestWatchFrameSlider:SetScript("OnMouseUp", nil); |
QGT_ShowQuestTrackerSlider(self, true); |
GameTooltip:SetOwner(self, "ANCHOR_LEFT"); |
GameTooltip:SetText(QG_TRACKER_OPTIONS, nil,nil, nil, nil, 1); |
end); |
QGT_QuestWatchFrameOptions:SetScript("OnLeave", |
function (self) |
QGT_ShowQuestTrackerSlider(self, false); |
GameTooltip:Hide(); |
end); |
QGT_QuestWatchFrameMinimize = CreateFrame("BUTTON", "QGT_QuestWatchFrameMinimize", QGT_QuestWatchFrame, "QGT_QuestWatchMiniButtonTemplate"); |
QGT_QuestWatchFrameMinimize:SetText("-"); |
QGT_QuestWatchFrameMinimize:SetPoint("RIGHT", QGT_QuestWatchFrameOptions, "LEFT", 0, 0); |
QGT_QuestWatchFrameMinimize:RegisterForClicks("LeftButtonUp", "RightButtonUp"); |
QGT_QuestWatchFrameMinimize:SetScript("OnClick", |
function (self, button, down) |
if (button == "LeftButton") then |
if (QGT_Settings.QuestWatch.AutoMinimize) then |
QGT_ShowQuestTrackerSlider(self, false); |
QGT_Settings.QuestWatch.Minimized = true; |
else |
QGT_ShowQuestTrackerSlider(self, QGT_Settings.QuestWatch.Minimized); |
QGT_Settings.QuestWatch.Minimized = not QGT_Settings.QuestWatch.Minimized; |
end |
QGT_Settings.QuestWatch.AutoMinimize = false; |
WatchFrame_Update(); |
GameTooltip:Hide(); |
elseif (button == "RightButton") then |
QGT_Settings.QuestWatch.AutoMinimize = not QGT_Settings.QuestWatch.AutoMinimize; |
WatchFrame_Update(); |
end |
end); |
QGT_QuestWatchFrameMinimize:SetScript("OnEnter", |
function (self) |
QGT_QuestWatchFrameSlider:SetScript("OnMouseUp", nil); |
QGT_ShowQuestTrackerSlider(self, true); |
GameTooltip:SetOwner(self, "ANCHOR_LEFT"); |
if (QGT_Settings.QuestWatch.Minimized) then |
GameTooltip:SetText(QG_TRACKER_SHOW, nil,nil, nil, nil, 1); |
else |
GameTooltip:SetText(QG_TRACKER_MINIMIZE, nil,nil, nil, nil, 1); |
end |
end); |
QGT_QuestWatchFrameMinimize:SetScript("OnLeave", |
function (self) |
QGT_ShowQuestTrackerSlider(self, false); |
GameTooltip:Hide(); |
end); |
QGT_QuestWatchFrameToggle = CreateFrame("BUTTON", "QGT_QuestWatchFrameToggle", QGT_QuestWatchFrame, "QGT_QuestWatchMiniButtonTemplate"); |
QGT_QuestWatchFrameToggle:SetText(QG_TRACKER_A); |
QGT_QuestWatchFrameToggle:SetPoint("RIGHT", QGT_QuestWatchFrameMinimize, "LEFT", 0, 0); |
QGT_QuestWatchFrameToggle:RegisterForClicks("LeftButtonUp", "RightButtonUp"); |
QGT_QuestWatchFrameToggle:SetScript("OnClick", |
function (self, button, down) |
if (button == "LeftButton") then |
QGT_Settings.LastTracker = "A"; |
QGT_Settings.BothTrackers = false; |
QGT_Settings.AchievementWatch.Top = QGT_Settings.QuestWatch.Top; |
QGT_Settings.AchievementWatch.Bottom = QGT_Settings.QuestWatch.Bottom; |
QGT_Settings.AchievementWatch.Left = QGT_Settings.QuestWatch.Left; |
QGT_Settings.AchievementWatch.Minimized = QGT_Settings.QuestWatch.Minimized; |
QGT_Settings.AchievementWatch.AutoMinimize = QGT_Settings.QuestWatch.AutoMinimize; |
WatchFrame_Update(); |
GameTooltip:Hide(); |
elseif (button == "RightButton") then |
QGT_Settings.LastTracker = "Q"; |
QGT_Settings.BothTrackers = not QGT_Settings.BothTrackers; |
WatchFrame_Update(); |
end |
end); |
QGT_QuestWatchFrameToggle:SetScript("OnEnter", |
function (self) |
QGT_QuestWatchFrameSlider:SetScript("OnMouseUp", nil); |
QGT_ShowQuestTrackerSlider(self, true); |
GameTooltip:SetOwner(self, "ANCHOR_LEFT"); |
GameTooltip:SetText(QG_TRACKER_TOGGLE, nil,nil, nil, nil, 1); |
end); |
QGT_QuestWatchFrameToggle:SetScript("OnLeave", |
function (self) |
QGT_ShowQuestTrackerSlider(self, false); |
GameTooltip:Hide(); |
end); |
QGT_QuestWatchFrameSort = CreateFrame("BUTTON", "QGT_QuestWatchFrameSort", QGT_QuestWatchFrame, "QGT_QuestWatchMiniButtonTemplate"); |
QGT_QuestWatchFrameSort:SetText("~"); |
QGT_QuestWatchFrameSort:SetPoint("RIGHT", QGT_QuestWatchFrameToggle, "LEFT", 0, 0); |
QGT_QuestWatchFrameSort:RegisterForClicks("LeftButtonUp"); |
QGT_QuestWatchFrameSort:SetScript("OnClick", |
function (self, button, down) |
ToggleDropDownMenu(1, nil, QGT_QuestsTitleMenu, self:GetName(), 0, 0); |
end); |
QGT_QuestWatchFrameSort:SetScript("OnEnter", |
function (self) |
QGT_QuestWatchFrameSlider:SetScript("OnMouseUp", nil); |
QGT_ShowQuestTrackerSlider(self, true); |
GameTooltip:SetOwner(self, "ANCHOR_LEFT"); |
GameTooltip:SetText(QG_TRACKER_SORT, nil,nil, nil, nil, 1); |
end); |
QGT_QuestWatchFrameSort:SetScript("OnLeave", |
function (self) |
QGT_ShowQuestTrackerSlider(self, false); |
GameTooltip:Hide(); |
end); |
QGT_QuestWatchFrameSort:Hide(); |
QGT_QuestWatchFrameSlider = CreateFrame("Slider", "QGT_QuestWatchFrameSlider", QGT_QuestWatchFrame, "OptionsSliderTemplate"); |
QGT_QuestWatchFrameSlider:SetWidth(16); |
QGT_QuestWatchFrameSlider:SetHeight(200); |
QGT_QuestWatchFrameSliderText:SetText(""); |
QGT_QuestWatchFrameSliderHigh:SetText(""); |
QGT_QuestWatchFrameSliderLow:SetText(""); |
QGT_QuestWatchFrameSlider:SetOrientation("VERTICAL"); |
QGT_QuestWatchFrameSlider:SetPoint("TOPLEFT", QGT_QuestWatchFrame, "TOPLEFT", -14, -2); |
QGT_QuestWatchFrameSlider:SetMinMaxValues(0,0); |
QGT_QuestWatchFrameSlider:SetValueStep(1); |
QGT_QuestWatchFrameSlider:SetValue(0); |
QGT_QuestWatchFrameSlider:Hide(); |
QGT_QuestWatchFrameSlider:SetScript("OnEnter", |
function (self) |
QGT_ShowQuestTrackerSlider(self, true); |
end); |
QGT_QuestWatchFrameSlider:SetScript("OnLeave", |
function (self) |
QGT_ShowQuestTrackerSlider(self, false); |
end); |
QGT_QuestWatchFrameSlider:SetScript("OnValueChanged", |
function () |
WatchFrame_Update(); |
end); |
for i=1, 40 do |
temp = CreateFrame("Button", "QGT_QuestWatchLine"..i, QGT_QuestWatchFrame, "QGT_QuestWatchButtonTemplate"); |
temp:SetPoint("TOPLEFT", QGT_QuestWatchFrame, 8, -20); |
temp:SetHeight(13); |
temp:RegisterForClicks("LeftButtonUp", "RightButtonUp"); |
end |
QGT_QuestWatchFrameTooltip = CreateFrame("GameTooltip", "QGT_QuestWatchFrameTooltip", QGT_QuestWatchFrame, "GameTooltipTemplate"); |
QGT_QuestWatchFrameTooltip:Hide(); |
QGT_QuestWatchFrameTooltip:SetFrameStrata("TOOLTIP"); |
end |
function CheckRemoveQuestWatch(arg1) |
if (QGT_IsQuestComplete(arg1) and QGT_Settings.AutoUnTrack) then |
RemoveQuestWatch(arg1); |
end |
end |
function QGT_DragStart() |
if (not QGT_Settings.Pin) then |
QGT_QuestWatchFrame:StartMoving(); |
QGT_QuestWatchFrame.isMoving = true; |
end |
end |
function QGT_DragStop() |
QGT_QuestWatchFrame:StopMovingOrSizing(); |
QGT_QuestWatchFrame.isMoving = false; |
QGT_Settings.QuestWatch.Left = QGT_QuestWatchFrame:GetLeft(); |
QGT_Settings.QuestWatch.Top = QGT_QuestWatchFrame:GetTop(); |
QGT_Settings.QuestWatch.Bottom = QGT_QuestWatchFrame:GetBottom(); |
QGT_QuestWatchFrameSlider:ClearAllPoints(); |
if (((QGT_Settings.QuestWatch.Left + 256) * QGT_Settings.Scale) > (UIParent:GetWidth() - 16)) then |
QGT_QuestWatchFrameSlider:SetPoint("TOPLEFT", -14, -16); |
else |
QGT_QuestWatchFrameSlider:SetPoint("TOPRIGHT", 14, -16); |
end |
end |
function QGT_IsQuestComplete(index) |
local questLogTitleText, level, questTag, suggestedGroup, isHeader, isCollapsed, isComplete, isDaily = GetQuestLogTitle(index); |
local numObjectives = GetNumQuestLeaderBoards(index); |
return (isComplete or (numObjectives == 0)); |
end |
function QGT_QuestWatchTitleMenu_OnLoad(self) |
local info = UIDropDownMenu_CreateInfo(); |
info.func = QGT_QuestWatchTitleMenu_OnClick; |
info.arg1 = self:GetID(); |
if (self.qID) then info.arg1 = self.qID; end |
info.checked = nil; |
info.icon = nil; |
local questLogTitleText, level, questTag, suggestedGroup, isHeader, isCollapsed, isComplete, isDaily = GetQuestLogTitle(info.arg1); |
if (questLogTitleText == nil) then return; end |
if (IsQuestWatched(info.arg1)) then |
info.text = QG_UNTRACK.." "..questLogTitleText; |
info.value = "untrack"; |
UIDropDownMenu_AddButton(info, 1); |
else |
info.text = QG_TRACK.." "..questLogTitleText; |
info.value = "track"; |
UIDropDownMenu_AddButton(info, 1); |
end |
if (not self.isHeader) then |
if (GetQuestLogPushable() and ( GetRealNumPartyMembers() > 0 or GetRealNumRaidMembers() > 0) ) then |
info.disabled = nil; |
else |
info.disabled = 1; |
end |
info.text = QG_SHARE_QUEST; |
info.value = "share"; |
UIDropDownMenu_AddButton(info, 1); |
info.disabled = nil; |
info.text = QG_ABANDON_QUEST; |
info.value = "abandon"; |
UIDropDownMenu_AddButton(info, 1); |
end |
info.text = "--------------------"; |
info.value = "-"; |
info.isTitle = 1; |
UIDropDownMenu_AddButton(info, 1); |
info = UIDropDownMenu_CreateInfo(); |
info.func = QGT_QuestWatchTitleMenu_OnClick; |
info.checked = nil; |
info.icon = nil; |
info.text = CANCEL; |
info.value = "cancel"; |
UIDropDownMenu_AddButton(info, 1); |
end |
function QGT_QuestWatchTitleMenu_OnClick(self, button, down) |
if (self.value == "abandon") then |
QGT_Abandon(); |
elseif (self.value == "share") then |
QuestLogPushQuest(); |
elseif (self.value == "track") then |
AddQuestWatch(self.arg1); |
QuestLog_Update(); |
elseif (self.value == "untrack") then |
RemoveQuestWatch(self.arg1); |
QuestLog_Update(); |
end |
end |
function QGT_QuestsTitleMenu_OnLoad() |
if (QGT_Settings.QuestWatchSort == nil) then QGT_Settings.QuestWatchSort = 0; end |
local info = UIDropDownMenu_CreateInfo(); |
info.func = QGT_QuestsTitleMenu_OnClick; |
info.checked = (QGT_Settings.QuestWatchSort == 0); |
info.icon = nil; |
info.text = QG_OPT_TRACKER_SORTQUESTNONE; |
info.value = "questsortnone"; |
UIDropDownMenu_AddButton(info, 1); |
info.checked = (QGT_Settings.QuestWatchSort == 1); |
info.text = QG_OPT_TRACKER_SORTQUESTPROX; |
info.value = "questsortprox"; |
UIDropDownMenu_AddButton(info, 1); |
info.checked = nil; |
info.text = "--------------------"; |
info.value = "-"; |
info.isTitle = 1; |
UIDropDownMenu_AddButton(info, 1); |
info = UIDropDownMenu_CreateInfo(); |
info.func = QGT_QuestsTitleMenu_OnClick; |
info.checked = nil; |
info.icon = nil; |
info.text = CANCEL; |
info.value = "cancel"; |
UIDropDownMenu_AddButton(info, 1); |
end |
function QGT_QuestsTitleMenu_OnClick(self, button, down) |
if (self.value == "questsortnone") then |
QGT_Settings.QuestWatchSort = 0; |
elseif (self.value == "questsortprox") then |
QGT_Settings.QuestWatchSort = 1; |
SortQuestWatches(); |
end |
WatchFrame_Update(); |
end |
function QGT_ShowQuestTrackerSlider(self, flag) |
if (QGT_Settings and QGT_Settings.QuestWatch and (QGT_Settings.QuestWatch.AutoMinimize==true) and not IsMouseButtonDown("LeftButton")) then |
QGT_Settings.QuestWatch.Minimized = not flag; |
end |
local watchLines = 30; |
if (QGT_Settings and QGT_Settings.Lines) then |
watchLines = QGT_Settings.Lines; |
end |
if ((flag == true) and (QGT_WatchLines > watchLines) and not QGT_Settings.QuestWatch.Minimized) then |
QGT_QuestWatchFrameSlider:Show(); |
else |
if (IsMouseButtonDown("LeftButton")) then |
self:SetScript("OnMouseUp", |
function (self) |
QGT_ShowQuestTrackerSlider(self, false); |
self:SetScript("OnMouseUp", nil); |
end); |
else |
QGT_QuestWatchFrameSlider:Hide(); |
end |
end |
end |
function QGT_SetQuestTrackerMouse(enableFlag) |
QGT_QuestWatchFrame:EnableMouse(enableFlag); |
for i=1, 40 do |
_G["QGT_QuestWatchLine"..i]:EnableMouse(enableFlag); |
end |
end |
function QGT_QuestWatchButton_OnEnter(self, motion) |
local qID = self.qID; |
local minWidth = 224; |
self.fading = 0; |
self.flashing = 0; |
self:SetScript("OnUpdate", nil); |
_G[self:GetName().."Highlight"]:SetAlpha(0.5); |
_G[self:GetName().."Highlight"]:Show(); |
if (qID == nil) then -- header |
return; |
elseif (tonumber(qID) == nil) then -- objective line |
local objName = string.sub(self:GetText(),3+strlen(QGT_Settings.Bullet)); |
local objText = ""; |
if (qID == "item") then |
local itemName, itemLink, itemRarity, itemLevel, itemMinLevel, itemType, itemSubType, itemStackCount, itemEquipLoc, itemTexture = GetItemInfo(objName); |
if ((not itemLink) and IsAddOnLoaded("QuestGuru") and QuestGuru_Items and QuestGuru_Items[QuestGuru_RealmName] and QuestGuru_Items[QuestGuru_RealmName][objName]) then |
itemName, itemLink, itemRarity, itemLevel, itemMinLevel, itemType, itemSubType, itemStackCount, itemEquipLoc, itemTexture = GetItemInfo(QuestGuru_Items[QuestGuru_RealmName][objName]); |
end |
if (itemLink and QGT_Settings.ShowQuestTooltips) then |
GameTooltip:SetOwner(self); |
GameTooltip:SetHyperlink(itemLink); |
GameTooltip:Show(); |
local tW = GameTooltip:GetWidth(); |
if (QGT_Settings.QuestWatch.Left < tW) then |
GameTooltip:SetOwner(self, "ANCHOR_RIGHT"); |
GameTooltip:SetHyperlink(itemLink); |
GameTooltip:Show(); |
else |
GameTooltip:SetOwner(self, "ANCHOR_LEFT"); |
GameTooltip:SetHyperlink(itemLink); |
GameTooltip:Show(); |
end |
end |
end |
else -- quest line |
if (QGT_Settings.ShowQuestTooltips) then |
QGT_QuestWatchFrameTooltip:SetOwner(self); |
local qLink = GetQuestLink(qID); |
if (qLink) then QGT_QuestWatchFrameTooltip:SetHyperlink(qLink); end |
QGT_QuestWatchFrameTooltip:Show(); |
local tW = QGT_QuestWatchFrameTooltip:GetWidth(); |
if (QGT_Settings.QuestWatch.Left < tW) then |
QGT_QuestWatchFrameTooltip:SetOwner(self, "ANCHOR_RIGHT"); |
if (qLink) then QGT_QuestWatchFrameTooltip:SetHyperlink(qLink); end |
QGT_QuestWatchFrameTooltip:Show(); |
else |
QGT_QuestWatchFrameTooltip:SetOwner(self, "ANCHOR_LEFT"); |
if (qLink) then QGT_QuestWatchFrameTooltip:SetHyperlink(qLink); end |
QGT_QuestWatchFrameTooltip:Show(); |
end |
end |
if (QGT_Settings.ShowPartyTooltips) then QGT_UpdatePartyInfoTooltip(self); end |
end |
end |
function QGT_UpdatePartyInfoTooltip(self) |
local numPartyMembers = GetNumPartyMembers(); |
if ( numPartyMembers == 0 or self.isHeader ) then |
return; |
end |
GameTooltip_SetDefaultAnchor(GameTooltip, self); |
local questLogTitleText = GetQuestLogTitle(self.qID); |
GameTooltip:SetText(questLogTitleText); |
local partyMemberOnQuest; |
for i=1, numPartyMembers do |
if ( IsUnitOnQuest(self.qID, "party"..i) ) then |
if ( not partyMemberOnQuest ) then |
GameTooltip:AddLine(HIGHLIGHT_FONT_COLOR_CODE..PARTY_QUEST_STATUS_ON..FONT_COLOR_CODE_CLOSE); |
partyMemberOnQuest = 1; |
end |
GameTooltip:AddLine(LIGHTYELLOW_FONT_COLOR_CODE..UnitName("party"..i)..FONT_COLOR_CODE_CLOSE); |
end |
end |
if ( not partyMemberOnQuest ) then |
GameTooltip:AddLine(HIGHLIGHT_FONT_COLOR_CODE..PARTY_QUEST_STATUS_NONE..FONT_COLOR_CODE_CLOSE); |
end |
GameTooltip:Show(); |
end |
function QGT_QuestWatchButton_OnLeave(self, motion) |
_G[self:GetName().."Highlight"]:Hide(); |
QGT_ShowQuestTrackerSlider(self, false); |
QGT_QuestWatchFrameTooltip:Hide(); |
GameTooltip:Hide(); |
end |
function QGT_QuestWatchButton_OnUpdate(self, elapsed) |
local hilight = _G[self:GetName().."Highlight"]; |
if (self.fading == 1) then |
local a = hilight:GetAlpha(); |
a = a - elapsed; |
if (a <= 0) then |
a = 0; |
self.fading = 0; |
self:SetScript("OnUpdate", nil); |
end |
hilight:SetAlpha(a); |
end |
if (self.flashing and self.flashing ~= 0) then |
local a = hilight:GetAlpha(); |
a = a + (elapsed * self.flashing); |
if (self.flashing == -1 and a < 0) then |
a = 0; |
self.flashing = 1; |
elseif (self.flashing == 1 and a > 1) then |
a = 1; |
self.flashing = -1; |
end |
hilight:SetAlpha(a); |
end |
end |
function QGT_QuestWatchButton_OnClick(self, button, down) |
local qID = self.qID; |
if (button == "LeftButton") then |
if ( IsShiftKeyDown() ) then |
local activeWindow = ChatEdit_GetActiveWindow(); |
if (qID == nil) then -- header line |
if (activeWindow) then |
activeWindow:Insert(self:GetText()); |
end |
elseif (tonumber(qID) == nil) then -- objective line |
local objName = string.sub(self:GetText(), 3 + strlen(QGT_Settings.Bullet)); |
local objText = ""; |
if (qID == "item") then |
local itemName, itemLink, itemRarity, itemLevel, itemMinLevel, itemType, itemSubType, itemStackCount, itemEquipLoc, itemTexture = GetItemInfo(objName); |
if (itemLink == nil) then |
objText = objName; |
else |
objText = itemLink; |
end |
else |
objText = objName; |
end |
if (activeWindow) then |
activeWindow:Insert(objText); |
end |
else -- quest number |
if (activeWindow) then |
activeWindow:Insert(GetQuestLink(qID)); |
end |
end |
else |
if (qID == nil) then -- header line |
local headName = self:GetText(); |
if (QGT_WatchHeaders[headName] ~= false) then |
QGT_WatchHeaders[headName] = false; |
else |
QGT_WatchHeaders[headName] = true; |
end |
WatchFrame_Update(); |
elseif (tonumber(qID) == nil) then -- objective line |
local objName = string.sub(self:GetText(), 3 + strlen(QGT_Settings.Bullet)); |
if (qID == "item") then |
local itemName, itemLink, itemRarity, itemLevel, itemMinLevel, itemType, itemSubType, itemStackCount, itemEquipLoc, itemTexture = GetItemInfo(objName); |
if (itemLink ~= nil) then |
SetItemRef(itemLink, nil, button); |
end |
end |
else -- title line |
-- Autocomplete |
local title, level, questTag, suggestedGroup, isHeader, isCollapsed, isComplete, isDaily = GetQuestLogTitle(qID); |
if (isComplete and GetQuestLogIsAutoComplete(qID)) then |
QuestIsAutoComplete = true; |
else |
QuestIsAutoComplete = false; |
end |
if (QuestIsAutoComplete) then |
ShowQuestComplete(qID); |
else |
QuestLog_OpenToQuest(qID); |
QuestLogFrame:Show(); |
end |
end |
end |
elseif (button == "RightButton") then |
if (IsShiftKeyDown()) then |
if (qID and (tonumber(qID) ~= nil)) then |
QuestLog_SetSelection(qID, button); |
QuestLog_Update(); |
ToggleDropDownMenu(1, nil, QGT_QuestWatchTitleMenu, self:GetName(), 0, 0); |
end |
else |
if (qID == nil) then -- header line |
local headName = self:GetText(); |
if (QGT_WatchHeaders[headName] ~= false) then |
QGT_WatchHeaders[headName] = false; |
else |
QGT_WatchHeaders[headName] = true; |
end |
WatchFrame_Update(); |
elseif (tonumber(qID) ~= nil) then -- title line |
-- expand/collapse quests |
local qName = GetQuestLogTitle(qID); |
if (QGT_WatchQuests[qName] ~= false) then |
QGT_WatchQuests[qName] = false; |
else |
QGT_WatchQuests[qName] = true; |
end |
WatchFrame_Update(); |
end |
end |
end |
QGT_ShowQuestTrackerSlider(self, true); |
end |
function QGT_WatchFrameItem_OnEnter(self) |
GameTooltip_SetDefaultAnchor(GameTooltip, self); |
GameTooltip:SetQuestLogSpecialItem(self:GetID()); |
QGT_ShowQuestTrackerSlider(self, true); |
end |
function QGT_WatchFrameItem_OnLeave(self) |
GameTooltip:Hide(); |
QGT_ShowQuestTrackerSlider(self, false); |
end |
function QGT_UpdateQuestTimers(...) |
local numTimers = select("#", ...); |
QGT_QuestTimer = {}; |
if ( numTimers == 0 ) then |
return; |
end |
for i = 1, numTimers do |
QGT_QuestTimer[GetQuestIndexForTimer(i)] = select(i, ...); |
end |
end |
-- QuestWatch functions |
function QGT_QuestWatch_Update() |
local numEntries, numQuests = GetNumQuestLogEntries(); |
QGT_UpdateQuestTimers(GetQuestTimers()); |
local questCount=0; |
local i; |
for i=1, numEntries do |
if (IsQuestWatched(i)) then questCount = questCount + 1; end |
end |
QGT_QuestWatchNumQuests:SetText(numQuests.."/"..MAX_QUESTS); |
if (QGT_Settings.QuestWatch.AutoMinimize) then |
QGT_QuestWatchFrameMinimize:SetText("*"); |
else |
QGT_QuestWatchFrameMinimize:SetText("-"); |
end |
local achieveCount=0; |
local i, j; |
for i, j in pairs(QGT_WatchAchievements) do |
achieveCount = achieveCount + 1; |
end |
if (achieveCount == 0) then |
QGT_QuestWatchFrameToggle:Hide(); |
else |
QGT_QuestWatchFrameToggle:Show(); |
if (QGT_Settings.BothTrackers) then |
QGT_QuestWatchFrameToggle:SetText("*"); |
else |
QGT_QuestWatchFrameToggle:SetText(QG_TRACKER_A); |
end |
end |
if (questCount == 0 and achieveCount == 0) then |
QGT_QuestWatchFrame:Hide(); |
return; |
elseif (questCount == 0 and achieveCount > 0) then |
if (QGT_Settings.BothTrackers) then |
QGT_QuestWatchFrame:Hide(); |
else |
QGT_QuestWatchFrameToggle:Click(); |
end |
return; |
else |
QGT_QuestWatchFrame:Show(); |
end |
if (QGT_Settings.QuestWatch.Left == nil) then |
QGT_Settings.QuestWatch.Left = MinimapCluster:GetLeft(); |
end |
if (QGT_Settings.QuestWatch.Top == nil) then |
QGT_Settings.QuestWatch.Top = MinimapCluster:GetBottom()+10; |
end |
if (QGT_Settings.QuestWatch.Bottom == nil) then |
QGT_Settings.QuestWatch.Bottom = 60; |
end |
if (QGT_Settings.ClickThrough) then |
QGT_SetQuestTrackerMouse(0); |
else |
QGT_SetQuestTrackerMouse(1); |
end |
if (QGT_Settings.Pin) then |
QGT_QuestWatchFrame:SetMovable(0); |
else |
QGT_QuestWatchFrame:SetMovable(1); |
end |
local numObjectives; |
local questWatchMaxWidth = 0; |
local tempWidth; |
local watchText; |
local text, type, finished; |
local questTitle; |
local watchTextIndex = 1; |
QGT_WatchLine[watchTextIndex] = {}; |
local objectivesCompleted; |
local strLvl; |
local questIndex = 0; |
local currHeader = ""; |
local lastWatchHeader = ""; |
local lastWatchIndex = 0; |
local i, j = 0, 0; |
local numEntries, numQuests; |
if (QGT_WatchFlash == nil) then QGT_WatchFlash = {}; end |
if (QGT_Settings.QuestWatchSort == 0 or QGT_Settings.QuestWatchSort == nil or QGT_Settings == nil) then |
numEntries, numQuests = GetNumQuestLogEntries(); |
elseif (QGT_Settings.QuestWatchSort == 1) then |
numEntries = GetNumQuestWatches(); |
end |
if (numEntries == nil) then return; end |
for questIndex=1, numEntries do |
if (QGT_Settings.QuestWatchSort == 1) then |
questIndex = GetQuestIndexForWatch(questIndex); |
end |
local questLogTitleText, level, questTag, suggestedGroup, isHeader, isCollapsed, isComplete, isDaily = GetQuestLogTitle(questIndex); |
if (questLogTitleText == nil) then questLogTitleText = QG_UNKNOWN; end |
if (isHeader) then |
currHeader = questLogTitleText; |
if (currHeader == nil) then currHeader = QG_UNKNOWN; end |
end |
if (IsQuestWatched(questIndex) and (not isHeader)) then |
if (currHeader ~= lastWatchHeader and QGT_Settings.ShowHeaders) then |
QGT_WatchLine[watchTextIndex].Text = currHeader; |
QGT_WatchLine[watchTextIndex].TextColor = {r=1, g=1, b=1}; |
QGT_WatchLine[watchTextIndex].Tag = ""; |
lastWatchHeader = currHeader; |
lastWatchIndex = watchTextIndex; |
QGT_WatchLine[watchTextIndex].qID = nil; |
QGT_WatchLine[watchTextIndex].isHeader = true; |
QGT_WatchLine[watchTextIndex].isTitle = false; |
watchTextIndex = watchTextIndex + 1; |
QGT_WatchLine[watchTextIndex] = {}; |
end |
if ( QGT_WatchHeaders[currHeader] ~= false ) then |
-- Set title |
strLvl = "["..level |
if (isDaily) then |
strLvl = strLvl.."Y"; |
end |
if (questTag ~= nil) then |
if ((questTag == "Group") and (suggestedGroup > 0)) then |
strLvl = strLvl.."G"..suggestedGroup; |
elseif (questTag == "Dungeon") then |
strLvl = strLvl.."D"; |
elseif ((questTag == "Elite") or (questTag == "Group")) then |
strLvl = strLvl.."+" |
else |
strLvl = strLvl.."+" |
end |
end |
strLvl = strLvl.."] " |
if (QGT_Settings.ShowLevels) then |
QGT_WatchLine[watchTextIndex].Text = strLvl..questLogTitleText; |
else |
QGT_WatchLine[watchTextIndex].Text = questLogTitleText; |
end |
-- Autocomplete |
if (isComplete and GetQuestLogIsAutoComplete(questIndex)) then |
QGT_WatchLine[watchTextIndex].Text = "(?) "..QGT_WatchLine[watchTextIndex].Text; |
QGT_WatchLine[watchTextIndex].flashing = true; |
end |
QGT_WatchLine[watchTextIndex].qID = questIndex; |
QGT_WatchLine[watchTextIndex].isHeader = false; |
QGT_WatchLine[watchTextIndex].isTitle = true; |
local watchQuestIndex = watchTextIndex; |
watchTextIndex = watchTextIndex + 1; |
QGT_WatchLine[watchTextIndex] = {}; |
objectivesCompleted = 0; |
local questNumNeeded = 0; |
local questNumDone = 0; |
local r, g, b; |
numObjectives = GetNumQuestLeaderBoards(questIndex); |
for j=1, numObjectives do |
text, type, finished = GetQuestLogLeaderBoard(j, questIndex); |
if (text ~= nil) then |
local qi, qj, itemName, numDone, numNeeded = string.find(text, QG_ITEM_REQ_STR); |
if (itemName == nil) then |
qi, qj, itemName, numDone = string.find(text, QG_ITEM_REQ_STR2); |
numNeeded = 1; |
end |
if ((type == "item") and itemName and IsAddOnLoaded("QuestGuru") and QuestGuru_Items[QuestGuru_RealmName]) then |
iiName, itemLink, itemRarity, itemLevel, itemMinLevel, itemType, itemSubType, itemStackCount, itemEquipLoc, texture = GetItemInfo(itemName); |
if ((iiName and itemLink) and QuestGuru_Items[QuestGuru_RealmName][iiName] == nil) then |
QuestGuru_Items[QuestGuru_RealmName][iiName] = itemLink; |
end |
end |
if ((not finished) or QGT_Settings.ShowCompletedObj) then |
-- Set Objective text |
if (((type == "item") or (type == "monster") or (type == "object")) and (itemName ~= nil)) then |
QGT_WatchLine[watchTextIndex].Text = " "..QGT_Settings.Bullet.." "..itemName; |
if (numDone == numNeeded) then |
QGT_WatchLine[watchTextIndex].Tag = COMPLETE; |
objectivesCompleted = objectivesCompleted + 1; |
else |
QGT_WatchLine[watchTextIndex].Tag = numDone.."/"..numNeeded; |
end |
r, g, b = QGT_QuestWatchGetObjColor(numDone/numNeeded); |
questNumNeeded = questNumNeeded + numNeeded; |
questNumDone = questNumDone + numDone; |
else |
QGT_WatchLine[watchTextIndex].Text = " "..QGT_Settings.Bullet.." "..text; |
QGT_WatchLine[watchTextIndex].Tag = ""; |
questNumNeeded = questNumNeeded + 1; |
if (finished) then |
questNumDone = questNumDone + 1; |
objectivesCompleted = objectivesCompleted + 1; |
r, g, b = QGT_QuestWatchGetObjColor(1); |
else |
r, g, b = QGT_QuestWatchGetObjColor(0); |
end |
end |
QGT_WatchLine[watchTextIndex].qID = type; |
QGT_WatchLine[watchTextIndex].isHeader = false; |
QGT_WatchLine[watchTextIndex].isTitle = false; |
-- Color the objectives |
QGT_WatchLine[watchTextIndex].TextColor = {r=r,g=g,b=b}; |
if (QGT_WatchQuests[questLogTitleText] == false) then |
if (QGT_WatchFlash and QGT_WatchFlash[questIndex] and QGT_WatchFlash[questIndex][j]) then |
QGT_WatchLine[watchQuestIndex].fading = QGT_WatchFlash[questIndex][j]; |
QGT_WatchFlash[questIndex][j] = nil; |
end |
watchTextIndex = watchTextIndex - 1; |
else |
if (QGT_WatchFlash and QGT_WatchFlash[questIndex] and QGT_WatchFlash[questIndex][j]) then |
QGT_WatchLine[watchTextIndex].fading = QGT_WatchFlash[questIndex][j]; |
QGT_WatchFlash[questIndex][j] = nil; |
end |
end |
watchTextIndex = watchTextIndex + 1; |
QGT_WatchLine[watchTextIndex] = {}; |
elseif (finished) then |
objectivesCompleted = objectivesCompleted + 1; |
if ((type == "item") or (type == "monster") or (type == "object")) then |
questNumNeeded = questNumNeeded + numNeeded; |
questNumDone = questNumDone + numDone; |
else |
questNumNeeded = questNumNeeded + 1; |
questNumDone = questNumDone + 1; |
end |
end |
end |
end |
-- Brighten the quest title if all the quest objectives were met |
color = GetQuestDifficultyColor(level); |
if ( objectivesCompleted == numObjectives ) then |
QGT_WatchLine[watchQuestIndex].Tag = COMPLETE; |
QGT_WatchLine[watchQuestIndex].TextColor = {r=color.r, g=color.g, b=color.b}; |
else |
if (questNumNeeded > 0) then |
local perComplete = math.floor((questNumDone * 100) / questNumNeeded); |
QGT_WatchLine[watchQuestIndex].Tag = perComplete.."%"; |
else |
QGT_WatchLine[watchQuestIndex].Tag = ""; |
end |
QGT_WatchLine[watchQuestIndex].TextColor = {r=color.r * 0.75, g=color.g * 0.75, b=color.b * 0.75}; |
end |
elseif (QGT_WatchFlash[questIndex]) then |
if (QGT_WatchFlash[questIndex].fading == true) then |
QGT_WatchLine[lastWatchIndex].fading = true; |
QGT_WatchFlash[questIndex].fading = nil; |
end |
end |
end |
end |
local watchLines = 30; |
if (QGT_Settings and QGT_Settings and QGT_Settings.Lines) then |
watchLines = QGT_Settings.Lines; |
end |
QGT_WatchLines = watchTextIndex - 1; |
if (QGT_WatchLines > watchLines) then |
QGT_QuestWatchFrameSlider:SetMinMaxValues(0, QGT_WatchLines - watchLines); |
else |
QGT_QuestWatchFrameSlider:SetMinMaxValues(0, 0); |
end |
if (QGT_Settings.QuestWatch.Minimized) then |
if (QGT_Settings.QuestWatch.AutoMinimize) then |
QGT_QuestWatchFrameMinimize:SetText("*"); |
else |
QGT_QuestWatchFrameMinimize:SetText("+"); |
end |
for i=1, 40 do |
_G["QGT_QuestWatchLine"..i]:Hide(); |
end |
for i=1, QGT_WATCHFRAME_NUM_ITEMS do |
_G["QGT_WatchFrameItem"..i]:Hide(); |
end |
QGT_QuestWatchFrame:SetHeight(26); |
if (QGT_Settings.QuestWatch.Left == nil) then |
QGT_Settings.QuestWatch.Left = MinimapCluster:GetLeft(); |
end |
if (QGT_Settings.QuestWatch.Top == nil) then |
QGT_Settings.QuestWatch.Top = MinimapCluster:GetBottom()+10; |
end |
if (QGT_Settings.QuestWatch.Bottom == nil) then |
QGT_Settings.QuestWatch.Bottom = 60; |
end |
if (not QGT_QuestWatchFrame.isMoving) then |
QGT_QuestWatchFrame:ClearAllPoints(); |
if (QGT_Settings.Anchor == "TOP") then |
QGT_QuestWatchFrame:SetPoint("TOPLEFT", "UIParent", "BOTTOMLEFT", QGT_Settings.QuestWatch.Left, QGT_Settings.QuestWatch.Top); |
elseif (QGT_Settings.Anchor == "BOTTOM") then |
QGT_QuestWatchFrame:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMLEFT", QGT_Settings.QuestWatch.Left, QGT_Settings.QuestWatch.Bottom); |
end |
end |
return; |
end |
local numHeaders = 0; |
local numTitles = 0; |
local watchItemIndex = 0; |
local oldWatchItems = QGT_WATCHFRAME_NUM_ITEMS; |
local sliderVal = QGT_QuestWatchFrameSlider:GetValue(); |
local lastQuestWatch = 1; |
for i= 1, QGT_WatchLines do |
j = i - sliderVal; |
if (j > watchLines) then |
j = j - 1; |
break; |
end |
if (i > sliderVal) then |
watchText = _G["QGT_QuestWatchLine"..j]; |
watchTextTag = _G["QGT_QuestWatchLine"..j.."Tag"]; |
watchNormalText = _G["QGT_QuestWatchLine"..j.."NormalText"]; |
watchTextHighlight = _G["QGT_QuestWatchLine"..j.."Highlight"]; |
watchText:SetText(QGT_WatchLine[i].Text); |
if (QGT_WatchLine[i].TextColor == nil) then |
watchNormalText:SetTextColor(1, 1, 1); |
else |
watchNormalText:SetTextColor(QGT_WatchLine[i].TextColor.r,QGT_WatchLine[i].TextColor.g,QGT_WatchLine[i].TextColor.b); |
end |
watchText.qID = QGT_WatchLine[i].qID; |
watchTextTag:SetText(QGT_WatchLine[i].Tag); |
watchTextTag:Show(); |
if (QGT_WatchLine[i].isHeader == true) then |
if ( j > 1 ) then |
watchText:SetPoint("TOPLEFT", "QGT_QuestWatchLine"..(j - 1), "BOTTOMLEFT", 0, -6); |
numHeaders = numHeaders + 1; |
end |
watchText:SetNormalTexture("Interface\\Buttons\\UI-SortArrow"); |
watchNormalText:SetPoint("LEFT", "QGT_QuestWatchLine"..j, "LEFT", 8, 0); |
if (QGT_WatchLine[i].Text == nil) then QGT_WatchLine[i].Text = QG_UNKNOWN; end |
if (QGT_WatchHeaders[QGT_WatchLine[i].Text] ~= false) then |
QGT_WatchHeaders[QGT_WatchLine[i].Text] = true; |
_G["QGT_QuestWatchLine"..j.."Arrow"]:SetTexCoord(0, 0.5, 0, 1); |
else |
_G["QGT_QuestWatchLine"..j.."Arrow"]:SetTexCoord(0.5, 0, 0, 0, 0.5, 1, 0, 1); |
end |
elseif (QGT_WatchLine[i].isTitle == true) then |
if ( j > 1 ) then |
watchText:SetPoint("TOPLEFT", "QGT_QuestWatchLine"..(j - 1), "BOTTOMLEFT", 0, -4); |
numTitles = numTitles + 1; |
end |
watchText:SetNormalTexture(""); |
watchNormalText:SetPoint("LEFT", "QGT_QuestWatchLine"..j, "LEFT", 0, 0); |
if (QGT_QuestTimer[watchText.qID]) then |
watchTextTag:SetText(SecondsToTime(QGT_QuestTimer[watchText.qID])); |
watchText:SetScript("OnUpdate", |
function (self) |
QGT_UpdateQuestTimers(GetQuestTimers()); |
if (QGT_QuestTimer[self.qID]) then |
_G[self:GetName().."Tag"]:SetText(SecondsToTime(QGT_QuestTimer[self.qID])); |
local tempWidth = _G[self:GetName().."Tag"]:GetWidth() + 8; |
_G[self:GetName().."NormalText"]:SetWidth(240 - tempWidth); |
else |
self:SetScript("OnUpdate", nil); |
end |
end); |
else |
if (not QGT_Settings.ShowQuestPercent) then watchTextTag:Hide(); end |
end |
local link, item, charges = GetQuestLogSpecialItemInfo(watchText.qID); |
if ( item and QGT_Settings.QuestItemIcons and QGT_WatchLine[i].Tag ~= COMPLETE ) then |
watchItemIndex = watchItemIndex + 1; |
itemButton = _G["QGT_WatchFrameItem"..watchItemIndex]; |
if ( not itemButton ) then |
QGT_WATCHFRAME_NUM_ITEMS = watchItemIndex; |
itemButton = CreateFrame("BUTTON", "QGT_WatchFrameItem" .. watchItemIndex, QGT_QuestWatchFrame, "WatchFrameItemButtonTemplate"); |
itemButton:SetScript("OnLeave", QGT_WatchFrameItem_OnLeave); |
end |
itemButton:Show(); |
itemButton:ClearAllPoints(); |
itemButton:SetID(watchText.qID); |
SetItemButtonTexture(itemButton, item); |
SetItemButtonCount(itemButton, charges); |
itemButton.charges = charges; |
WatchFrameItem_UpdateCooldown(itemButton); |
itemButton.rangeTimer = -1; |
if ((QGT_Settings.QuestWatch.Left * QGT_Settings.Scale) < 32) then |
if (QGT_QuestWatchFrameSlider:GetAlpha() > 0) then |
itemButton:SetPoint("TOPLEFT", watchText, "TOPRIGHT", 16, 0); |
else |
itemButton:SetPoint("TOPLEFT", watchText, "TOPRIGHT", 4, 0); |
end |
else |
if ((QGT_QuestWatchFrameSlider:GetAlpha() > 0) and (((QGT_Settings.QuestWatch.Left + 256) * QGT_Settings.Scale) > (UIParent:GetWidth() - 16))) then |
itemButton:SetPoint("TOPRIGHT", watchText, "TOPLEFT", -16, 0); |
else |
itemButton:SetPoint("TOPRIGHT", watchText, "TOPLEFT", -4, 0); |
end |
end |
end |
else |
if (j > 1) then |
watchText:SetPoint("TOPLEFT", "QGT_QuestWatchLine"..(j - 1), "BOTTOMLEFT", 0, 0); |
end |
watchText:SetNormalTexture(""); |
watchNormalText:SetPoint("LEFT", "QGT_QuestWatchLine"..j, "LEFT", 0, 0); |
end |
local tempWidth = watchTextTag:GetWidth() + 8; |
watchNormalText:SetWidth(240 - tempWidth); |
if (QGT_WatchLine[i].flashing) then |
watchText.flashing = 1; |
watchText:SetScript("OnUpdate", QGT_QuestWatchButton_OnUpdate); |
watchTextHighlight:SetAlpha(0); |
watchTextHighlight:Show(); |
else |
watchText.flashing = 0; |
watchTextHighlight:SetAlpha(0); |
watchText:SetScript("OnUpdate", nil); |
end |
if (QGT_WatchLine[i].fading) then |
watchText.fading = 1; |
watchText:SetScript("OnUpdate", QGT_QuestWatchButton_OnUpdate); |
watchTextHighlight:SetAlpha(1); |
watchTextHighlight:Show(); |
end |
watchText:Show(); |
lastQuestWatch = j; |
end |
end |
QGT_QuestWatchFrame:Show(); |
local tempHeight = 16 + (numHeaders*6)+(numTitles*4)+((lastQuestWatch+1)*13); |
QGT_QuestWatchFrame:SetHeight(tempHeight); |
QGT_QuestWatchFrameSlider:SetHeight(tempHeight-16); |
if (IsAddOnLoaded("MobMap") and (mobmap_hide_questtracker_buttons == false)) then |
QGT_QuestWatchFrame:SetWidth(276); |
else |
QGT_QuestWatchFrame:SetWidth(256); |
end |
if (not QGT_QuestWatchFrame.isMoving) then |
QGT_QuestWatchFrame:ClearAllPoints(); |
if (QGT_Settings.Anchor == "TOP") then |
QGT_QuestWatchFrame:SetPoint("TOPLEFT", "UIParent", "BOTTOMLEFT", QGT_Settings.QuestWatch.Left, QGT_Settings.QuestWatch.Top); |
QGT_Settings.QuestWatch.Bottom = QGT_QuestWatchFrame:GetBottom(); |
elseif (QGT_Settings.Anchor == "BOTTOM") then |
QGT_QuestWatchFrame:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMLEFT", QGT_Settings.QuestWatch.Left, QGT_Settings.QuestWatch.Bottom); |
QGT_Settings.QuestWatch.Top = QGT_QuestWatchFrame:GetTop(); |
end |
end |
QGT_QuestWatchFrameSlider:ClearAllPoints(); |
if (((QGT_Settings.QuestWatch.Left + 256) * QGT_Settings.Scale) > (UIParent:GetWidth() - 16)) then |
QGT_QuestWatchFrameSlider:SetPoint("TOPLEFT", -14, -16); |
else |
QGT_QuestWatchFrameSlider:SetPoint("TOPRIGHT", 14, -16); |
end |
-- Hide unused watch lines |
for i=j + 1, 40 do |
_G["QGT_QuestWatchLine"..i]:Hide(); |
end |
for i=watchItemIndex+1, oldWatchItems do |
_G["QGT_WatchFrameItem"..i]:Hide(); |
end |
if (IsAddOnLoaded("MobMap")) then |
for i=1, 40 do |
local frame = _G["QGT_QuestWatchLine"..i]; |
local button = _G["MobMapQGTWatchButton"..i]; |
if (frame:IsVisible() and (mobmap_hide_questtracker_buttons == false) and (frame.qID ~= nil)) then |
local questobj=frame:GetText(); |
if(questobj) then |
if (button==nil) then |
button = CreateFrame("Frame","MobMapQGTWatchButton"..i, frame, "MobMapQuestButtonFrameTemplate"); |
button:ClearAllPoints(); |
button:SetPoint("RIGHT","QGT_QuestWatchLine"..i,"RIGHT",24,0); |
button:SetAlpha(0.6); |
button:SetFrameStrata("LOW"); |
_G[button:GetName().."Button"]:SetScript("OnEnter", |
function (self) |
QGT_ShowQuestTrackerSlider(self, true); |
GameTooltip_AddNewbieTip(self, "MobMap",1.0,1.0,1.0,MOBMAP_QUEST_BUTTON_TOOLTIP); |
end); |
_G[button:GetName().."Button"]:SetScript("OnLeave", |
function (self) |
QGT_ShowQuestTrackerSlider(self, false); |
GameTooltip:Hide(); |
end); |
end |
if (string.sub(questobj,1,2+strlen(QGT_Settings.Bullet))==" "..QGT_Settings.Bullet.." ") then |
button.questobj=string.sub(questobj,3+strlen(QGT_Settings.Bullet)); |
button.questtitle=nil; |
button.unknowntext=nil; |
button:Show(); |
else |
local title=questobj; |
if(title~=nil) then |
local filteredtitle=string.match(title,".*%] (.*)"); |
if(filteredtitle~=nil) then |
title=filteredtitle; |
end |
end |
button.questtitle=title; |
button.questobj=nil; |
button.unknowntext=nil; |
button:Show(); |
end |
end |
else |
if (button) then |
button:Hide(); |
end |
end |
end |
end |
end |
function QGT_QuestWatchGetObjColor(progress, alwaysColor) |
local r, g, b; |
if (QGT_Settings.ColorizeObj or alwaysColor) then |
if (progress == 1) then |
r = QGT_Settings.ColorizeObjComplete.r; |
g = QGT_Settings.ColorizeObjComplete.g; |
b = QGT_Settings.ColorizeObjComplete.b; |
else |
r = QGT_Settings.ColorizeObjZero.r + ((QGT_Settings.ColorizeObjFull.r - QGT_Settings.ColorizeObjZero.r) * progress); |
g = QGT_Settings.ColorizeObjZero.g + ((QGT_Settings.ColorizeObjFull.g - QGT_Settings.ColorizeObjZero.g) * progress); |
b = QGT_Settings.ColorizeObjZero.b + ((QGT_Settings.ColorizeObjFull.b - QGT_Settings.ColorizeObjZero.b) * progress); |
end |
else |
if (progress == 1) then |
r = HIGHLIGHT_FONT_COLOR.r; |
g = HIGHLIGHT_FONT_COLOR.g; |
b = HIGHLIGHT_FONT_COLOR.b; |
else |
r = GRAY_FONT_COLOR.r; |
g = GRAY_FONT_COLOR.g; |
b = GRAY_FONT_COLOR.b; |
end |
end |
return r, g, b; |
end |
function QGT_AddQuestWatch(questIndex, watchTime) |
local questLogTitleText, level, questTag, suggestedGroup, isHeader, isCollapsed, isComplete, isDaily = GetQuestLogTitle(questIndex); |
if (isHeader) then |
QGT_AddQuestWatchHeader(questLogTitleText); |
return false; |
end |
if (QGT_WatchList[questLogTitleText] == nil) then |
QGT_WatchList[questLogTitleText] = {}; |
end |
if (QGT_WatchList[questLogTitleText].Watched) then |
return true; |
end |
QGT_WatchList[questLogTitleText].Watched = true; |
return true; |
end |
hooksecurefunc("AddQuestWatch", QGT_AddQuestWatch); |
function QGT_AddQuestWatchHeader(questHeader) |
local numEntries, numQuests = GetNumQuestLogEntries(); |
local inHeader = false; |
for questIndex=1, numEntries do |
local questLogTitleText, level, questTag, suggestedGroup, isHeader, isCollapsed, isComplete, isDaily = GetQuestLogTitle(questIndex); |
if (isHeader) then |
if (questLogTitleText == questHeader) then |
inHeader = true; |
else |
inHeader = false; |
end |
end |
if (inHeader and (not isHeader)) then |
AddQuestWatch(questIndex); |
end |
end |
end |
function QGT_RemoveQuestWatch(questIndex, ...) |
local questLogTitleText, level, questTag, suggestedGroup, isHeader, isCollapsed, isComplete, isDaily = GetQuestLogTitle(questIndex); |
if (isHeader) then |
QGT_RemoveQuestWatchHeader(questLogTitleText); |
end |
if (questLogTitleText) then |
QGT_WatchList[questLogTitleText] = nil; |
QGT_WatchQuests[questLogTitleText] = nil; |
end |
WatchFrame_Update(); |
end |
hooksecurefunc("RemoveQuestWatch", QGT_RemoveQuestWatch); |
function QGT_RemoveQuestWatchHeader(questHeader) |
local numEntries, numQuests = GetNumQuestLogEntries(); |
local inHeader = false; |
for questIndex=1, numEntries do |
local questLogTitleText, level, questTag, suggestedGroup, isHeader, isCollapsed, isComplete, isDaily = GetQuestLogTitle(questIndex); |
if (isHeader) then |
if (questLogTitleText == questHeader) then |
inHeader = true; |
else |
inHeader = false; |
end |
end |
if (inHeader and (not isHeader)) then |
RemoveQuestWatch(questIndex); |
end |
end |
end |
local old_IsQuestWatched = IsQuestWatched; |
function IsQuestWatched(questIndex, ...) |
local questLogTitleText, level, questTag, suggestedGroup, isHeader, isCollapsed, isComplete, isDaily = GetQuestLogTitle(questIndex); |
if (QGT_WatchList[questLogTitleText] == nil) then |
return false; |
end |
return QGT_WatchList[questLogTitleText].Watched; |
end |
function QGT_OnUpdate(elapsed) |
QGT_CurrTime = QGT_CurrTime + elapsed; |
if (QGT_CurrTime < 1) then return; end |
local i, timer; |
for i, timer in ipairs(QGT_Timer) do |
timer.currTime = timer.currTime - 1; |
if (timer.currTime == 0) then |
timer.func(timer.arg1, timer.arg2, timer.arg3, timer.arg4); |
timer.currTime = timer.interval; |
timer.count = timer.count - 1; |
if (timer.count < 0) then |
timer.count = -1; |
elseif (timer.count == 0) then |
tremove(QGT_Timer, i); |
i = i - 1; |
end |
end |
end |
QGT_CurrTime = 0; |
end |
function QGT_AddTimer(interval, count, func, arg1, arg2, arg3, arg4) |
local tempTimer = {} |
tempTimer.interval = interval; |
tempTimer.currTime = interval; |
tempTimer.count = count; |
tempTimer.func = func; |
tempTimer.arg1 = arg1; |
tempTimer.arg2 = arg2; |
tempTimer.arg3 = arg3; |
tempTimer.arg4 = arg4; |
tinsert(QGT_Timer, tempTimer); |
end |
function QGT_UIInfoMessage(arg1) |
local questID=0; |
local numEntries, numQuests = GetNumQuestLogEntries(); |
local i, ii, jj, itemName, numDone, numNeeded; |
local questLogTitleText, level, questTag, suggestedGroup, isHeader, isCollapsed, isComplete, isDaily; |
if (arg1 == nil) then return; end |
for questID=1, numEntries, 1 do |
questLogTitleText, level, questTag, suggestedGroup, isHeader, isCollapsed, isComplete, isDaily = GetQuestLogTitle(questID); |
local numObjectives = GetNumQuestLeaderBoards(questID); |
if (numObjectives ~= nil) then |
for i=1, numObjectives, 1 do |
local text, type, finished = GetQuestLogLeaderBoard(i,questID); |
if (text ~= nil) then |
local qi, qj, qitemName, qnumDone, qnumNeeded = string.find(text, QG_ITEM_REQ_STR); |
if (qitemName == nil) then |
qi, qj, qitemName, qnumDone = string.find(text, QG_ITEM_REQ_STR2); |
qnumNeeded = 1; |
end |
if ((type == "item") or (type == "monster") or (type == "object")) then |
if (type == "object") then type = "item"; end |
ii, jj, itemName, numDone, numNeeded = string.find(arg1, QG_ITEM_REQ_STR); |
if ((itemName == qitemName) and (numNeeded == qnumNeeded)) then |
if (QGT_WatchFlash[questID] == nil) then QGT_WatchFlash[questID] = {}; end |
QGT_WatchFlash[questID].fading = true; |
QGT_WatchFlash[questID][i] = true; |
end |
elseif (type == "event") then |
itemName = text; |
numDone=1; |
numNeeded=1; |
if (arg1 == text.." ("..COMPLETE..")") then |
if (QGT_WatchFlash[questID] == nil) then QGT_WatchFlash[questID] = {}; end |
QGT_WatchFlash[questID].fading = true; |
QGT_WatchFlash[questID][i] = true; |
end |
end |
end |
end |
end |
end |
end |
function QGT_RewardComplete_Click() |
local qTitle = GetTitleText(); |
if (qTitle) then |
QGT_WatchList[qTitle] = nil; |
QGT_WatchQuests[qTitle] = nil; |
end |
end |
hooksecurefunc("QuestRewardCompleteButton_OnClick", QGT_RewardComplete_Click); |
function QGT_Abandon() |
SetAbandonQuest(); |
local items = GetAbandonQuestItems(); |
if ( items ) then |
StaticPopup_Hide("ABANDON_QUEST"); |
StaticPopup_Show("ABANDON_QUEST_WITH_ITEMS", GetAbandonQuestName(), items); |
else |
StaticPopup_Hide("ABANDON_QUEST_WITH_ITEMS"); |
StaticPopup_Show("ABANDON_QUEST", GetAbandonQuestName()); |
end |
end |
function QGT_AbandonQuest() |
if (QGT_LastAbandonQuestTitle) then |
QGT_WatchList[QGT_LastAbandonQuestTitle] = nil; |
QGT_WatchQuests[QGT_LastAbandonQuestTitle] = nil; |
end |
end |
hooksecurefunc("AbandonQuest", QGT_AbandonQuest); |
function QGT_SetAbandonQuest() |
QGT_LastAbandonQuestTitle = GetAbandonQuestName(); |
end |
hooksecurefunc("SetAbandonQuest", QGT_SetAbandonQuest); |
QGT_Settings = {}; |
QGT_PlayerAlive = false; |
QGT_VariablesLoaded = false; |
QGT_ShowTracker = true; |
QGT_PlayerInCombat = false; |
BINDING_HEADER_QGT_HEADER = "QuestGuru Tracker"; |
BINDING_NAME_QGT_TOGGLE_TRACKER_KB = "Toggle QuestGuru Tracker"; |
local lastColorPick; |
do |
--------------------- |
-- Tracker Options -- |
--------------------- |
QGT_OptionsFrameTracker = CreateFrame("FRAME", "QGT_OptionsFrameTracker", QGT_OptionsFrame); |
QGT_OptionsFrameTracker.name = "QG Tracker"; |
if (IsAddOnLoaded("QuestGuru")) then QGT_OptionsFrameTracker.parent = "QuestGuru"; end |
QGT_OptionsFrameTracker.default = function () QGT_SetTrackerDefaults(); end; |
InterfaceOptions_AddCategory(QGT_OptionsFrameTracker); |
QGT_OptionsFrameTracker:SetScript("OnShow", |
function () |
QGT_UpdateOptionsTrackerObjFade(); |
end); |
QGT_OptionsFrameTrackerTitle = QGT_OptionsFrameTracker:CreateFontString("QGT_OptionsFrameTrackerTitle", "ARTWORK", "GameFontNormalLarge"); |
QGT_OptionsFrameTrackerTitle:SetPoint("TOPLEFT", 16, -16); |
QGT_OptionsFrameTrackerTitle:SetJustifyH("LEFT"); |
QGT_OptionsFrameTrackerTitle:SetJustifyV("TOP"); |
QGT_OptionsFrameTrackerTitle:SetText("QuestGuru Tracker "..QG_OPTIONS); |
QGT_OptionsFrameTrackerSubText = QGT_OptionsFrameTracker:CreateFontString("QGT_OptionsFrameTrackerSubText", "ARTWORK", "GameFontHighlightSmall"); |
QGT_OptionsFrameTrackerSubText:SetPoint("TOPLEFT", "QGT_OptionsFrameTrackerTitle", "BOTTOMLEFT", 0, -8); |
QGT_OptionsFrameTrackerSubText:SetPoint("RIGHT", -32, 0); |
QGT_OptionsFrameTrackerSubText:SetJustifyH("LEFT"); |
QGT_OptionsFrameTrackerSubText:SetJustifyV("TOP"); |
QGT_OptionsFrameTrackerSubText:SetHeight(24); |
QGT_OptionsFrameTrackerSubText:SetText(QG_OPT_TRACKER_DESC); |
QGT_OptionsFrameTrackerBorderToggle = CreateFrame("CheckButton", "QGT_OptionsFrameTrackerBorderToggle", QGT_OptionsFrameTracker, "QGT_InterfaceOptionsCheckButtonTemplate"); |
QGT_OptionsFrameTrackerBorderToggle:SetPoint("TOPLEFT", QGT_OptionsFrameTrackerSubText, "BOTTOMLEFT", -2, -8); |
QGT_OptionsFrameTrackerBorderToggleText:SetText(QG_OPT_TRACKER_BORDER); |
QGT_OptionsFrameTrackerBorderToggle.tooltipText = QG_OPT_TRACKER_BORDER_DESC; |
QGT_OptionsFrameTrackerBorderToggle:SetScript("OnClick", |
function () |
if (QGT_OptionsFrameTrackerBorderToggle:GetChecked()) then |
QGT_Settings.ShowBorder = true; |
else |
QGT_Settings.ShowBorder = false; |
end |
QGT_SetQuestWatchBorder(QGT_Settings.ShowBorder); |
QGT_SetAchievementWatchBorder(QGT_Settings.ShowBorder); |
WatchFrame_Update(); |
end); |
QGT_OptionsFrameQuestItemIconsToggle = CreateFrame("CheckButton", "QGT_OptionsFrameQuestItemIconsToggle", QGT_OptionsFrameTracker, "QGT_InterfaceOptionsCheckButtonTemplate"); |
QGT_OptionsFrameQuestItemIconsToggle:SetPoint("TOPLEFT", QGT_OptionsFrameTrackerBorderToggle, "BOTTOMLEFT", 0, 2); |
QGT_OptionsFrameQuestItemIconsToggleText:SetText(QG_OPT_TRACKER_ITEMICONS); |
QGT_OptionsFrameQuestItemIconsToggle.tooltipText = QG_OPT_TRACKER_ITEMICONS_DESC; |
QGT_OptionsFrameQuestItemIconsToggle:SetScript("OnClick", |
function () |
if (QGT_OptionsFrameQuestItemIconsToggle:GetChecked()) then |
QGT_Settings.QuestItemIcons = true; |
else |
QGT_Settings.QuestItemIcons = false; |
end |
WatchFrame_Update(); |
end); |
QGT_OptionsFrameTrackerClickThroughToggle = CreateFrame("CheckButton", "QGT_OptionsFrameTrackerClickThroughToggle", QGT_OptionsFrameTracker, "QGT_InterfaceOptionsCheckButtonTemplate"); |
QGT_OptionsFrameTrackerClickThroughToggle:SetPoint("TOPLEFT", QGT_OptionsFrameQuestItemIconsToggle, "BOTTOMLEFT", 0, 2); |
QGT_OptionsFrameTrackerClickThroughToggleText:SetText(QG_OPT_TRACKER_CLICKTHROUGH); |
QGT_OptionsFrameTrackerClickThroughToggle.tooltipText = QG_OPT_TRACKER_CLICKTHROUGH_DESC; |
QGT_OptionsFrameTrackerClickThroughToggle:SetScript("OnClick", |
function () |
if (QGT_OptionsFrameTrackerClickThroughToggle:GetChecked()) then |
QGT_Settings.ClickThrough = true; |
else |
QGT_Settings.ClickThrough = false; |
end |
WatchFrame_Update(); |
end); |
QGT_OptionsFrameTrackerHeadersToggle = CreateFrame("CheckButton", "QGT_OptionsFrameTrackerHeadersToggle", QGT_OptionsFrameTracker, "QGT_InterfaceOptionsCheckButtonTemplate"); |
QGT_OptionsFrameTrackerHeadersToggle:SetPoint("TOPLEFT", QGT_OptionsFrameTrackerSubText, "BOTTOMLEFT", 200, -8); |
QGT_OptionsFrameTrackerHeadersToggleText:SetText(QG_OPT_TRACKER_HEADERS); |
QGT_OptionsFrameTrackerHeadersToggle.tooltipText = QG_OPT_TRACKER_HEADERS_DESC; |
QGT_OptionsFrameTrackerHeadersToggle:SetScript("OnClick", |
function () |
if (QGT_OptionsFrameTrackerHeadersToggle:GetChecked()) then |
QGT_Settings.ShowHeaders = true; |
else |
QGT_Settings.ShowHeaders = false; |
end |
WatchFrame_Update(); |
end); |
QGT_OptionsFrameTrackerShowLevelsToggle = CreateFrame("CheckButton", "QGT_OptionsFrameTrackerShowLevelsToggle", QGT_OptionsFrameTracker, "QGT_InterfaceOptionsCheckButtonTemplate"); |
QGT_OptionsFrameTrackerShowLevelsToggle:SetPoint("TOPLEFT", QGT_OptionsFrameTrackerHeadersToggle, "BOTTOMLEFT", 0, 2); |
QGT_OptionsFrameTrackerShowLevelsToggleText:SetText(QG_OPT_TRACKER_LEVELS); |
QGT_OptionsFrameTrackerShowLevelsToggle.tooltipText = QG_OPT_TRACKER_LEVELS_DESC; |
QGT_OptionsFrameTrackerShowLevelsToggle:SetScript("OnClick", |
function () |
if (QGT_OptionsFrameTrackerShowLevelsToggle:GetChecked()) then |
QGT_Settings.ShowLevels = true; |
else |
QGT_Settings.ShowLevels = false; |
end |
WatchFrame_Update(); |
end); |
QGT_OptionsFrameTrackerQuestTooltipsToggle = CreateFrame("CheckButton", "QGT_OptionsFrameTrackerQuestTooltipsToggle", QGT_OptionsFrameTracker, "QGT_InterfaceOptionsCheckButtonTemplate"); |
QGT_OptionsFrameTrackerQuestTooltipsToggle:SetPoint("TOPLEFT", QGT_OptionsFrameTrackerShowLevelsToggle, "BOTTOMLEFT", 0, 2); |
QGT_OptionsFrameTrackerQuestTooltipsToggleText:SetText(QG_OPT_TRACKER_QUEST_TOOLTIPS); |
QGT_OptionsFrameTrackerQuestTooltipsToggle.tooltipText = QG_OPT_TRACKER_QUEST_TOOLTIPS_DESC; |
QGT_OptionsFrameTrackerQuestTooltipsToggle:SetScript("OnClick", |
function () |
if (QGT_OptionsFrameTrackerQuestTooltipsToggle:GetChecked()) then |
QGT_Settings.ShowQuestTooltips = true; |
else |
QGT_Settings.ShowQuestTooltips = false; |
end |
end); |
QGT_OptionsFrameTrackerPartyTooltipsToggle = CreateFrame("CheckButton", "QGT_OptionsFrameTrackerPartyTooltipsToggle", QGT_OptionsFrameTracker, "QGT_InterfaceOptionsCheckButtonTemplate"); |
QGT_OptionsFrameTrackerPartyTooltipsToggle:SetPoint("TOPLEFT", QGT_OptionsFrameTrackerQuestTooltipsToggle, "BOTTOMLEFT", 0, 2); |
QGT_OptionsFrameTrackerPartyTooltipsToggleText:SetText(QG_OPT_TRACKER_PARTY_TOOLTIPS); |
QGT_OptionsFrameTrackerPartyTooltipsToggle.tooltipText = QG_OPT_TRACKER_PARTY_TOOLTIPS_DESC; |
QGT_OptionsFrameTrackerPartyTooltipsToggle:SetScript("OnClick", |
function () |
if (QGT_OptionsFrameTrackerPartyTooltipsToggle:GetChecked()) then |
QGT_Settings.ShowPartyTooltips = true; |
else |
QGT_Settings.ShowPartyTooltips = false; |
end |
end); |
QGT_OptionsFrameTrackerQuestPercentToggle = CreateFrame("CheckButton", "QGT_OptionsFrameTrackerQuestPercentToggle", QGT_OptionsFrameTracker, "QGT_InterfaceOptionsCheckButtonTemplate"); |
QGT_OptionsFrameTrackerQuestPercentToggle:SetPoint("TOPLEFT", QGT_OptionsFrameTrackerPartyTooltipsToggle, "BOTTOMLEFT", 0, 2); |
QGT_OptionsFrameTrackerQuestPercentToggleText:SetText(QG_OPT_TRACKER_PERCENT); |
QGT_OptionsFrameTrackerQuestPercentToggle.tooltipText = QG_OPT_TRACKER_PERCENT_DESC; |
QGT_OptionsFrameTrackerQuestPercentToggle:SetScript("OnClick", |
function () |
if (QGT_OptionsFrameTrackerQuestPercentToggle:GetChecked()) then |
QGT_Settings.ShowQuestPercent = true; |
else |
QGT_Settings.ShowQuestPercent = false; |
end |
WatchFrame_Update(); |
end); |
QGT_OptionsFrameTrackerExpandUpToggle = CreateFrame("CheckButton", "QGT_OptionsFrameTrackerExpandUpToggle", QGT_OptionsFrameTracker, "QGT_InterfaceOptionsCheckButtonTemplate"); |
QGT_OptionsFrameTrackerExpandUpToggle:SetPoint("TOPLEFT", QGT_OptionsFrameTrackerQuestPercentToggle, "BOTTOMLEFT", 0, 2); |
QGT_OptionsFrameTrackerExpandUpToggleText:SetText(QG_OPT_TRACKER_ANCHOR_BOTTOM); |
QGT_OptionsFrameTrackerExpandUpToggle.tooltipText = QG_OPT_TRACKER_ANCHOR_BOTTOM_DESC; |
QGT_OptionsFrameTrackerExpandUpToggle:SetScript("OnClick", |
function () |
if (QGT_OptionsFrameTrackerExpandUpToggle:GetChecked()) then |
QGT_Settings.Anchor = "BOTTOM"; |
else |
QGT_Settings.Anchor = "TOP"; |
end |
WatchFrame_Update(); |
end); |
QGT_OptionsFrameTrackerHideCombatToggle = CreateFrame("CheckButton", "QGT_OptionsFrameTrackerHideCombatToggle", QGT_OptionsFrameTracker, "QGT_InterfaceOptionsCheckButtonTemplate"); |
QGT_OptionsFrameTrackerHideCombatToggle:SetPoint("TOPLEFT", QGT_OptionsFrameTrackerExpandUpToggle, "BOTTOMLEFT", 0, 2); |
QGT_OptionsFrameTrackerHideCombatToggleText:SetText(QG_OPT_TRACKER_HIDECOMBAT); |
QGT_OptionsFrameTrackerHideCombatToggle.tooltipText = QG_OPT_TRACKER_HIDECOMBAT_DESC; |
QGT_OptionsFrameTrackerHideCombatToggle:SetScript("OnClick", |
function () |
if (QGT_OptionsFrameTrackerHideCombatToggle:GetChecked()) then |
QGT_Settings.HideDuringCombat = true; |
else |
QGT_Settings.HideDuringCombat = false; |
end |
WatchFrame_Update(); |
end); |
QGT_OptionsFrameTrackerHideBlizzTrackToggle = CreateFrame("CheckButton", "QGT_OptionsFrameTrackerHideBlizzTrackToggle", QGT_OptionsFrameTracker, "QGT_InterfaceOptionsCheckButtonTemplate"); |
QGT_OptionsFrameTrackerHideBlizzTrackToggle:SetPoint("TOPLEFT", QGT_OptionsFrameTrackerHideCombatToggle, "BOTTOMLEFT", 0, 2); |
QGT_OptionsFrameTrackerHideBlizzTrackToggleText:SetText(QG_OPT_TRACKER_HIDEBLIZZTRACK); |
QGT_OptionsFrameTrackerHideBlizzTrackToggle.tooltipText = QG_OPT_TRACKER_HIDEBLIZZTRACK_DESC; |
QGT_OptionsFrameTrackerHideBlizzTrackToggle:SetScript("OnClick", |
function () |
if (QGT_OptionsFrameTrackerHideBlizzTrackToggle:GetChecked()) then |
QGT_Settings.HideBlizzardTracker = true; |
else |
QGT_Settings.HideBlizzardTracker = false; |
end |
WatchFrame_Update(); |
end); |
QGT_OptionsFrameTrackerPinToggle = CreateFrame("CheckButton", "QGT_OptionsFrameTrackerPinToggle", QGT_OptionsFrameTracker, "QGT_InterfaceOptionsCheckButtonTemplate"); |
QGT_OptionsFrameTrackerPinToggle:SetPoint("TOPLEFT", QGT_OptionsFrameTrackerClickThroughToggle, "BOTTOMLEFT", 0, 2); |
QGT_OptionsFrameTrackerPinToggleText:SetText(QG_OPT_TRACKER_PIN); |
QGT_OptionsFrameTrackerPinToggle.tooltipText = QG_OPT_TRACKER_PIN_DESC; |
QGT_OptionsFrameTrackerPinToggle:SetScript("OnClick", |
function () |
if (QGT_OptionsFrameTrackerPinToggle:GetChecked()) then |
QGT_Settings.Pin = true; |
else |
QGT_Settings.Pin = false; |
end |
WatchFrame_Update(); |
end); |
QGT_OptionsFrameTrackerAutoUnTrackToggle = CreateFrame("CheckButton", "QGT_OptionsFrameTrackerAutoUnTrackToggle", QGT_OptionsFrameTracker, "QGT_InterfaceOptionsCheckButtonTemplate"); |
QGT_OptionsFrameTrackerAutoUnTrackToggle:SetPoint("TOPLEFT", QGT_OptionsFrameTrackerPinToggle, "BOTTOMLEFT", 0, 2); |
QGT_OptionsFrameTrackerAutoUnTrackToggleText:SetText(QG_OPT_TRACKER_AUTOUNTRACK); |
QGT_OptionsFrameTrackerAutoUnTrackToggle.tooltipText = QG_OPT_TRACKER_AUTOUNTRACK_DESC; |
QGT_OptionsFrameTrackerAutoUnTrackToggle:SetScript("OnClick", |
function () |
if (QGT_OptionsFrameTrackerAutoUnTrackToggle:GetChecked()) then |
QGT_Settings.AutoUnTrack = true; |
else |
QGT_Settings.AutoUnTrack = false; |
end |
end); |
QGT_OptionsFrameTrackerShowCompletedObjToggle = CreateFrame("CheckButton", "QGT_OptionsFrameTrackerShowCompletedObjToggle", QGT_OptionsFrameTracker, "QGT_InterfaceOptionsCheckButtonTemplate"); |
QGT_OptionsFrameTrackerShowCompletedObjToggle:SetPoint("TOPLEFT", QGT_OptionsFrameTrackerAutoUnTrackToggle, "BOTTOMLEFT", 0, 2); |
QGT_OptionsFrameTrackerShowCompletedObjToggleText:SetText(QG_OPT_TRACKER_COMPLETE_OBJ); |
QGT_OptionsFrameTrackerShowCompletedObjToggle.tooltipText = QG_OPT_TRACKER_COMPLETE_OBJ_DESC; |
QGT_OptionsFrameTrackerShowCompletedObjToggle:SetScript("OnClick", |
function () |
if (QGT_OptionsFrameTrackerShowCompletedObjToggle:GetChecked()) then |
QGT_Settings.ShowCompletedObj = true; |
else |
QGT_Settings.ShowCompletedObj = false; |
end |
WatchFrame_Update(); |
end); |
QGT_OptionsFrameTrackerColorizeObjToggle = CreateFrame("CheckButton", "QGT_OptionsFrameTrackerColorizeObjToggle", QGT_OptionsFrameTracker, "QGT_InterfaceOptionsCheckButtonTemplate"); |
QGT_OptionsFrameTrackerColorizeObjToggle:SetPoint("TOPLEFT", QGT_OptionsFrameTrackerShowCompletedObjToggle, "BOTTOMLEFT", 0, 2); |
QGT_OptionsFrameTrackerColorizeObjToggleText:SetText(QG_OPT_TRACKER_COLOR_OBJ); |
QGT_OptionsFrameTrackerColorizeObjToggle.tooltipText = QG_OPT_TRACKER_COLOR_OBJ_DESC; |
QGT_OptionsFrameTrackerColorizeObjToggle:SetScript("OnClick", |
function () |
if (QGT_OptionsFrameTrackerColorizeObjToggle:GetChecked()) then |
QGT_Settings.ColorizeObj = true; |
else |
QGT_Settings.ColorizeObj = false; |
end |
WatchFrame_Update(); |
end); |
QGT_OptionsFrameTrackerZeroColor = CreateFrame("Button", "QGT_OptionsFrameTrackerZeroColor", QGT_OptionsFrameTracker, "QGT_ColorPickerButtonTemplate"); |
QGT_OptionsFrameTrackerZeroColor:SetPoint("TOPLEFT", QGT_OptionsFrameTrackerColorizeObjToggle, "BOTTOMLEFT", 0, -6); |
QGT_OptionsFrameTrackerZeroColorSwatch:SetTexture(1.0, 1.0, 1.0, 1.0); |
QGT_OptionsFrameTrackerZeroColor.tooltipText = QG_OPT_TRACKER_OBJ_COLOR_0; |
QGT_OptionsFrameTrackerZeroColor:SetScript("OnClick", |
function () |
ColorPickerFrame.hasOpacity = false; |
ColorPickerFrame.func = QGT_OptionsSaveColor; |
lastColorPick = "TrackerZero"; |
ColorPickerFrame:SetColorRGB(QGT_Settings.ColorizeObjZero.r, QGT_Settings.ColorizeObjZero.g, QGT_Settings.ColorizeObjZero.b); |
ColorPickerFrame:Show(); |
ColorPickerFrame:SetPoint("TOPLEFT", InterfaceOptionsFrame, "TOPRIGHT", -50, 0); |
end); |
QGT_OptionsFrameTrackerZeroLabel = QGT_OptionsFrameTracker:CreateFontString("QGT_OptionsFrameTrackerZeroLabel", "ARTWORK", "GameFontNormalSmall"); |
QGT_OptionsFrameTrackerZeroLabel:SetPoint("TOP", "QGT_OptionsFrameTrackerZeroColor", "BOTTOM", 0, 0); |
QGT_OptionsFrameTrackerZeroLabel:SetText("0%"); |
temp = QGT_OptionsFrameTracker:CreateTexture("QGT_OptionsFrameTrackerGradient", "ARTWORK"); |
temp:SetWidth(80); |
temp:SetHeight(12); |
temp:SetTexture(1, 1, 1); |
temp:SetPoint("TOPLEFT", "QGT_OptionsFrameTrackerZeroColor", "TOPRIGHT", 12, -2); |
QGT_OptionsFrameTrackerFullColor = CreateFrame("Button", "QGT_OptionsFrameTrackerFullColor", QGT_OptionsFrameTracker, "QGT_ColorPickerButtonTemplate"); |
QGT_OptionsFrameTrackerFullColor:SetPoint("TOPLEFT", "QGT_OptionsFrameTrackerGradient", "TOPRIGHT", 12, 2); |
QGT_OptionsFrameTrackerFullColorSwatch:SetTexture(1.0, 1.0, 1.0, 1.0); |
QGT_OptionsFrameTrackerFullColor.tooltipText = QG_OPT_TRACKER_OBJ_COLOR_99; |
QGT_OptionsFrameTrackerFullColor:SetScript("OnClick", |
function () |
ColorPickerFrame.hasOpacity = false; |
ColorPickerFrame.func = QGT_OptionsSaveColor; |
lastColorPick = "TrackerFull"; |
ColorPickerFrame:SetColorRGB(QGT_Settings.ColorizeObjFull.r, QGT_Settings.ColorizeObjFull.g, QGT_Settings.ColorizeObjFull.b); |
ColorPickerFrame:Show(); |
ColorPickerFrame:SetPoint("TOPLEFT", InterfaceOptionsFrame, "TOPRIGHT", -50, 0); |
end); |
QGT_OptionsFrameTrackerFullLabel = QGT_OptionsFrameTracker:CreateFontString("QGT_OptionsFrameTrackerFullLabel", "ARTWORK", "GameFontNormalSmall"); |
QGT_OptionsFrameTrackerFullLabel:SetPoint("TOP", "QGT_OptionsFrameTrackerFullColor", "BOTTOM", 0, 0); |
QGT_OptionsFrameTrackerFullLabel:SetText("99%"); |
QGT_OptionsFrameTrackerCompleteColor = CreateFrame("Button", "QGT_OptionsFrameTrackerCompleteColor", QGT_OptionsFrameTracker, "QGT_ColorPickerButtonTemplate"); |
QGT_OptionsFrameTrackerCompleteColor:SetPoint("TOPLEFT", QGT_OptionsFrameTrackerFullColor, "TOPRIGHT", 30, 0); |
QGT_OptionsFrameTrackerCompleteColorSwatch:SetTexture(1.0, 1.0, 1.0, 1.0); |
QGT_OptionsFrameTrackerCompleteColor.tooltipText = QG_OPT_TRACKER_OBJ_COLOR_COMPLETE; |
QGT_OptionsFrameTrackerCompleteColor:SetScript("OnClick", |
function () |
ColorPickerFrame.hasOpacity = false; |
ColorPickerFrame.func = QGT_OptionsSaveColor; |
lastColorPick = "TrackerComplete"; |
ColorPickerFrame:SetColorRGB(QGT_Settings.ColorizeObjComplete.r, QGT_Settings.ColorizeObjComplete.g, QGT_Settings.ColorizeObjComplete.b); |
ColorPickerFrame:Show(); |
ColorPickerFrame:SetPoint("TOPLEFT", InterfaceOptionsFrame, "TOPRIGHT", -50, 0); |
end); |
QGT_OptionsFrameTrackerCompleteLabel = QGT_OptionsFrameTracker:CreateFontString("QGT_OptionsFrameTrackerCompleteLabel", "ARTWORK", "GameFontNormalSmall"); |
QGT_OptionsFrameTrackerCompleteLabel:SetPoint("TOP", "QGT_OptionsFrameTrackerCompleteColor", "BOTTOM", 0, 0); |
QGT_OptionsFrameTrackerCompleteLabel:SetText(COMPLETE); |
QGT_OptionsFrameTrackerBulletLabel = QGT_OptionsFrameTracker:CreateFontString("QGT_OptionsFrameTrackerBulletLabel", "ARTWORK", "GameFontNormal"); |
QGT_OptionsFrameTrackerBulletLabel:SetPoint("TOPLEFT", "QGT_OptionsFrameTrackerZeroLabel", "BOTTOMLEFT", 0, -6); |
QGT_OptionsFrameTrackerBulletLabel:SetText(QG_OPT_TRACKER_BULLET); |
QGT_OptionsFrameTrackerBulletText = CreateFrame("EditBox", "QGT_OptionsFrameTrackerBulletText", QGT_OptionsFrameTracker, "InputBoxTemplate"); |
QGT_OptionsFrameTrackerBulletText:SetPoint("LEFT", "QGT_OptionsFrameTrackerBulletLabel", "RIGHT", 8, 0); |
QGT_OptionsFrameTrackerBulletText:SetHeight(20); |
QGT_OptionsFrameTrackerBulletText:SetWidth(36); |
QGT_OptionsFrameTrackerBulletText:SetAutoFocus(false); |
QGT_OptionsFrameTrackerBulletText:SetScript("OnShow", |
function (self) |
QGT_OptionsFrameTrackerBulletText:SetCursorPosition(0); |
end); |
QGT_OptionsFrameTrackerBulletText:SetScript("OnTextChanged", |
function () |
QGT_Settings.Bullet = QGT_OptionsFrameTrackerBulletText:GetText(); |
WatchFrame_Update(); |
end); |
QGT_OptionsFrameTrackerBulletText:SetScript("OnEscapePressed", |
function (self) |
self:ClearFocus(); |
end); |
QGT_OptionsFrameTrackerAlpha = CreateFrame("Slider", "QGT_OptionsFrameTrackerAlpha", QGT_OptionsFrameTracker, "OptionsSliderTemplate"); |
QGT_OptionsFrameTrackerAlpha:SetWidth(300); |
QGT_OptionsFrameTrackerAlpha:SetHeight(16); |
QGT_OptionsFrameTrackerAlpha:SetPoint("CENTER", QGT_OptionsFrameTracker, "BOTTOM", 0, 24); |
QGT_OptionsFrameTrackerAlphaText:SetText(QG_OPT_TRACKER_ALPHA); |
QGT_OptionsFrameTrackerAlphaHigh:SetText("100%"); |
QGT_OptionsFrameTrackerAlphaLow:SetText("0%"); |
QGT_OptionsFrameTrackerAlpha:SetMinMaxValues(0,1); |
QGT_OptionsFrameTrackerAlpha:SetValueStep(0.01); |
QGT_OptionsFrameTrackerAlpha:SetValue(0.7); |
QGT_OptionsFrameTrackerAlpha:SetScript("OnValueChanged", |
function () |
QGT_Settings.Alpha = QGT_OptionsFrameTrackerAlpha:GetValue(); |
QGT_QuestWatchFrame:SetBackdropColor(0,0,0,QGT_Settings.Alpha); |
QGT_QuestWatchFrameBackground:SetGradientAlpha("VERTICAL", 0, 0, 0, 0, 0.3, 0.3, 0.3, QGT_Settings.Alpha); |
QGT_AchievementWatchFrame:SetBackdropColor(0,0,0,QGT_Settings.Alpha); |
QGT_AchievementWatchFrameBackground:SetGradientAlpha("VERTICAL", 0, 0, 0, 0, 0.3, 0.3, 0.3, QGT_Settings.Alpha); |
QGT_OptionsFrameTrackerAlphaText:SetText(QG_OPT_TRACKER_ALPHA.." ("..abs(ceil((QGT_Settings.Alpha * 100)-0.5)).."%)"); |
end); |
QGT_OptionsFrameTrackerScale = CreateFrame("Slider", "QGT_OptionsFrameTrackerScale", QGT_OptionsFrameTracker, "OptionsSliderTemplate"); |
QGT_OptionsFrameTrackerScale:SetWidth(300); |
QGT_OptionsFrameTrackerScale:SetHeight(16); |
QGT_OptionsFrameTrackerScale:SetPoint("CENTER", QGT_OptionsFrameTracker, "BOTTOM", 0, 58); |
QGT_OptionsFrameTrackerScaleText:SetText(QG_OPT_TRACKER_SIZE); |
QGT_OptionsFrameTrackerScaleHigh:SetText("150%"); |
QGT_OptionsFrameTrackerScaleLow:SetText("50%"); |
QGT_OptionsFrameTrackerScale:SetMinMaxValues(0.5,1.5); |
QGT_OptionsFrameTrackerScale:SetValueStep(0.01); |
QGT_OptionsFrameTrackerScale:SetValue(0.9); |
QGT_OptionsFrameTrackerScale:SetScript("OnValueChanged", |
function () |
QGT_Settings.Scale = QGT_OptionsFrameTrackerScale:GetValue(); |
QGT_OptionsFrameTrackerScaleText:SetText(QG_OPT_TRACKER_SIZE.." ("..ceil((QGT_Settings.Scale * 100)-0.5).."%)"); |
QGT_QuestWatchFrame:SetScale(QGT_Settings.Scale); |
QGT_AchievementWatchFrame:SetScale(QGT_Settings.Scale); |
end); |
QGT_OptionsFrameTrackerLines = CreateFrame("Slider", "QGT_OptionsFrameTrackerLines", QGT_OptionsFrameTracker, "OptionsSliderTemplate"); |
QGT_OptionsFrameTrackerLines:SetWidth(300); |
QGT_OptionsFrameTrackerLines:SetHeight(16); |
QGT_OptionsFrameTrackerLines:SetPoint("CENTER", QGT_OptionsFrameTracker, "BOTTOM", 0, 92); |
QGT_OptionsFrameTrackerLinesText:SetText(QG_OPT_TRACKER_MAX_LINES); |
QGT_OptionsFrameTrackerLinesHigh:SetText("40"); |
QGT_OptionsFrameTrackerLinesLow:SetText("7"); |
QGT_OptionsFrameTrackerLines:SetMinMaxValues(7,40); |
QGT_OptionsFrameTrackerLines:SetValueStep(1); |
QGT_OptionsFrameTrackerLines:SetValue(30); |
QGT_OptionsFrameTrackerLines:SetScript("OnValueChanged", |
function () |
QGT_Settings.Lines = QGT_OptionsFrameTrackerLines:GetValue(); |
QGT_OptionsFrameTrackerLinesText:SetText(QG_OPT_TRACKER_MAX_LINES.." "..QGT_Settings.Lines); |
WatchFrame_Update(); |
end); |
end |
function QGT_OptionsSaveColor() |
local r,g,b = ColorPickerFrame:GetColorRGB(); |
if (lastColorPick == "TrackerZero") then |
QGT_Settings.ColorizeObjZero.r = r; |
QGT_Settings.ColorizeObjZero.g = g; |
QGT_Settings.ColorizeObjZero.b = b; |
QGT_UpdateOptionsTrackerObjFade(); |
WatchFrame_Update(); |
elseif (lastColorPick == "TrackerFull") then |
QGT_Settings.ColorizeObjFull.r = r; |
QGT_Settings.ColorizeObjFull.g = g; |
QGT_Settings.ColorizeObjFull.b = b; |
QGT_UpdateOptionsTrackerObjFade(); |
WatchFrame_Update(); |
elseif (lastColorPick == "TrackerComplete") then |
QGT_Settings.ColorizeObjComplete.r = r; |
QGT_Settings.ColorizeObjComplete.g = g; |
QGT_Settings.ColorizeObjComplete.b = b; |
QGT_OptionsFrameTrackerCompleteColorSwatch:SetTexture(r, g, b); |
WatchFrame_Update(); |
end |
end |
function QGT_UpdateOptionsTrackerObjFade() |
local r, g, b; |
QGT_OptionsFrameTrackerGradient:SetGradient("HORIZONTAL", QGT_Settings.ColorizeObjZero.r, QGT_Settings.ColorizeObjZero.g, QGT_Settings.ColorizeObjZero.b, QGT_Settings.ColorizeObjFull.r, QGT_Settings.ColorizeObjFull.g, QGT_Settings.ColorizeObjFull.b); |
r, g, b = QGT_QuestWatchGetObjColor(0, true); |
QGT_OptionsFrameTrackerZeroColorSwatch:SetTexture(r, g, b); |
r, g, b = QGT_QuestWatchGetObjColor(0.99, true); |
QGT_OptionsFrameTrackerFullColorSwatch:SetTexture(r, g, b); |
r, g, b = QGT_QuestWatchGetObjColor(1, true); |
QGT_OptionsFrameTrackerCompleteColorSwatch:SetTexture(r, g, b); |
end |
function QGT_SetTrackerDefaults() |
QGT_Settings.ShowBorder = true; |
QGT_SetQuestWatchBorder(QGT_Settings.ShowBorder); |
QGT_SetAchievementWatchBorder(QGT_Settings.ShowBorder); |
QGT_OptionsFrameTrackerBorderToggle:SetChecked(QGT_Settings.ShowBorder); |
QGT_Settings.Scale = 0.9; |
QGT_OptionsFrameTrackerScaleText:SetText(QG_OPT_TRACKER_SIZE.." ("..ceil((QGT_Settings.Scale * 100)-0.5).."%)"); |
QGT_OptionsFrameTrackerScale:SetValue(QGT_Settings.Scale); |
QGT_QuestWatchFrame:SetScale(QGT_Settings.Scale); |
QGT_AchievementWatchFrame:SetScale(QGT_Settings.Scale); |
QGT_Settings.Lines = 30; |
QGT_OptionsFrameTrackerLinesText:SetText(QG_OPT_TRACKER_MAX_LINES.." "..QGT_Settings.Lines); |
QGT_OptionsFrameTrackerLines:SetValue(QGT_Settings.Lines); |
QGT_Settings.Minimized = false; |
QGT_Settings.Alpha = 0.7; |
QGT_QuestWatchFrame:SetBackdropColor(0,0,0,QGT_Settings.Alpha); |
QGT_QuestWatchFrameBackground:SetGradientAlpha("VERTICAL", 0, 0, 0, 0, 0.3, 0.3, 0.3, QGT_Settings.Alpha); |
QGT_AchievementWatchFrame:SetBackdropColor(0,0,0,QGT_Settings.Alpha); |
QGT_AchievementWatchFrameBackground:SetGradientAlpha("VERTICAL", 0, 0, 0, 0, 0.3, 0.3, 0.3, QGT_Settings.Alpha); |
QGT_OptionsFrameTrackerAlphaText:SetText(QG_OPT_TRACKER_ALPHA.." ("..abs(ceil((QGT_Settings.Alpha * 100)-0.5)).."%)"); |
QGT_OptionsFrameTrackerAlpha:SetValue(QGT_Settings.Alpha); |
QGT_Settings.ShowHeaders = true; |
QGT_OptionsFrameTrackerHeadersToggle:SetChecked(QGT_Settings.ShowHeaders); |
QGT_Settings.QuestItemIcons = true; |
QGT_OptionsFrameQuestItemIconsToggle:SetChecked(QGT_Settings.QuestItemIcons); |
QGT_Settings.ShowLevels = true; |
QGT_OptionsFrameTrackerShowLevelsToggle:SetChecked(QGT_Settings.ShowLevels); |
QGT_Settings.Pin = false; |
QGT_OptionsFrameTrackerPinToggle:SetChecked(QGT_Settings.Pin); |
QGT_Settings.HideDuringCombat = false; |
QGT_OptionsFrameTrackerHideCombatToggle:SetChecked(QGT_Settings.HideDuringCombat); |
QGT_Settings.HideBlizzardTracker = true; |
QGT_OptionsFrameTrackerHideBlizzTrackToggle:SetChecked(QGT_Settings.HideBlizzardTracker); |
QGT_Settings.AutoUnTrack = false; |
QGT_OptionsFrameTrackerAutoUnTrackToggle:SetChecked(QGT_Settings.AutoUnTrack); |
QGT_Settings.ShowCompletedObj = true; |
QGT_OptionsFrameTrackerShowCompletedObjToggle:SetChecked(QGT_Settings.ShowCompletedObj); |
QGT_Settings.ColorizeObj = false; |
QGT_OptionsFrameTrackerColorizeObjToggle:SetChecked(QGT_Settings.ColorizeObj); |
QGT_Settings.ColorizeObjZero.r = 0.8; |
QGT_Settings.ColorizeObjZero.g = 0.2; |
QGT_Settings.ColorizeObjZero.b = 0.8; |
QGT_Settings.ColorizeObjFull.r = 0.3; |
QGT_Settings.ColorizeObjFull.g = 0.8; |
QGT_Settings.ColorizeObjFull.b = 1.0; |
QGT_Settings.ColorizeObjComplete.r = 0.1; |
QGT_Settings.ColorizeObjComplete.g = 0.9; |
QGT_Settings.ColorizeObjComplete.b = 1.0; |
QGT_Settings.ClickThrough = false; |
QGT_OptionsFrameTrackerClickThroughToggle:SetChecked(QGT_Settings.ClickThrough); |
QGT_Settings.ShowQuestTooltips = true; |
QGT_OptionsFrameTrackerQuestTooltipsToggle:SetChecked(QGT_Settings.ShowQuestTooltips); |
QGT_Settings.ShowPartyTooltips = true; |
QGT_OptionsFrameTrackerPartyTooltipsToggle:SetChecked(QGT_Settings.ShowPartyTooltips); |
QGT_Settings.ShowQuestPercent = true; |
QGT_OptionsFrameTrackerQuestPercentToggle:SetChecked(QGT_Settings.ShowQuestPercent); |
QGT_Settings.Bullet = "-"; |
QGT_OptionsFrameTrackerBulletText:SetText(QGT_Settings.Bullet); |
QGT_Settings.Anchor = "TOP"; |
QGT_OptionsFrameTrackerExpandUpToggle:SetChecked(false); |
QGT_Settings.QuestWatchSort = 0; -- Default to Header/Quest style, like QuestLog (1=Sorted by proximity) |
QGT_UpdateOptionsTrackerObjFade(); |
WatchFrame_Update(); |
end |
-- QuestWatch functions |
function QGT_WatchFrame_Update() |
if (QGT_Settings.HideBlizzardTracker) then |
WatchFrame:Hide(); |
else |
WatchFrame:Show(); |
end |
if (not (QGT_PlayerAlive and QGT_VariablesLoaded)) then return; end |
if ((not QGT_ShowTracker) or (QGT_PlayerInCombat and QGT_Settings.HideDuringCombat)) then |
QGT_QuestWatchFrame:Hide(); |
QGT_AchievementWatchFrame:Hide(); |
return; |
end |
if ((QGT_Settings.LastTracker == "Q") or QGT_Settings.BothTrackers) then |
QGT_QuestWatch_Update(); |
else |
QGT_QuestWatchFrame:Hide(); |
end |
if ((QGT_Settings.LastTracker == "A") or QGT_Settings.BothTrackers) then |
QGT_AchievementWatch_Update(); |
else |
QGT_AchievementWatchFrame:Hide(); |
end |
end |
hooksecurefunc("WatchFrame_Update", QGT_WatchFrame_Update); |
function WatchFrame_GetRemainingSpace() |
return 1000; |
end |
function QGT_QuestWatchLoadSettings() |
if (QGT_WatchHeaders == nil) then |
QGT_WatchHeaders = {}; |
end |
if (QGT_WatchQuests == nil) then |
QGT_WatchQuests = {}; |
end |
if (QGT_WatchAchievements == nil) then |
QGT_WatchAchievements = {}; |
end |
if (QGT_Settings == nil) then |
QGT_Settings = {}; |
end |
if (QGT_Settings.QuestWatch == nil) then |
QGT_Settings.QuestWatch = {}; |
end |
if (QGT_Settings.AchievementWatch == nil) then |
QGT_Settings.AchievementWatch = {}; |
end |
if (QGT_Settings.ShowBorder ~= false) then |
QGT_Settings.ShowBorder = true; |
end |
QGT_OptionsFrameTrackerBorderToggle:SetChecked(QGT_Settings.ShowBorder); |
QGT_SetQuestWatchBorder(QGT_Settings.ShowBorder); |
QGT_SetAchievementWatchBorder(QGT_Settings.ShowBorder); |
if (QGT_Settings.Scale == nil) then |
QGT_Settings.Scale = 0.9; |
end |
QGT_OptionsFrameTrackerScaleText:SetText(QG_OPT_TRACKER_SIZE.." ("..ceil((QGT_Settings.Scale * 100)-0.5).."%)"); |
QGT_OptionsFrameTrackerScale:SetValue(QGT_Settings.Scale); |
QGT_QuestWatchFrame:SetScale(QGT_Settings.Scale); |
QGT_AchievementWatchFrame:SetScale(QGT_Settings.Scale); |
if (QGT_Settings.Lines == nil) then |
QGT_Settings.Lines = 30; |
end |
QGT_OptionsFrameTrackerLinesText:SetText(QG_OPT_TRACKER_MAX_LINES.." "..QGT_Settings.Lines); |
QGT_OptionsFrameTrackerLines:SetValue(QGT_Settings.Lines); |
if (QGT_Settings.QuestWatch.Minimized ~= true) then |
QGT_Settings.QuestWatch.Minimized = false; |
end |
if (QGT_Settings.QuestWatch.AutoMinimize ~= true) then |
QGT_Settings.QuestWatch.AutoMinimize = false; |
end |
if (QGT_Settings.AchievementWatch.Minimized ~= true) then |
QGT_Settings.AchievementWatch.Minimized = false; |
end |
if (QGT_Settings.AchievementWatch.AutoMinimize ~= true) then |
QGT_Settings.AchievementWatch.AutoMinimize = false; |
end |
if (QGT_Settings.Anchor == nil) then |
QGT_Settings.Anchor = "TOP"; |
end |
if (QGT_Settings.Anchor == "BOTTOM") then |
QGT_OptionsFrameTrackerExpandUpToggle:SetChecked(true); |
else |
QGT_OptionsFrameTrackerExpandUpToggle:SetChecked(false); |
end |
if (QGT_Settings.Alpha == nil) then |
QGT_Settings.Alpha = 0.7; |
end |
QGT_QuestWatchFrame:SetBackdropColor(0,0,0,QGT_Settings.Alpha); |
QGT_QuestWatchFrameBackground:SetGradientAlpha("VERTICAL", 0, 0, 0, 0, 0.3, 0.3, 0.3, QGT_Settings.Alpha); |
QGT_AchievementWatchFrame:SetBackdropColor(0,0,0,QGT_Settings.Alpha); |
QGT_AchievementWatchFrameBackground:SetGradientAlpha("VERTICAL", 0, 0, 0, 0, 0.3, 0.3, 0.3, QGT_Settings.Alpha); |
QGT_OptionsFrameTrackerAlphaText:SetText(QG_OPT_TRACKER_ALPHA.." ("..abs(ceil((QGT_Settings.Alpha * 100)-0.5)).."%)"); |
QGT_OptionsFrameTrackerAlpha:SetValue(QGT_Settings.Alpha); |
if (QGT_Settings.ShowHeaders ~= false) then |
QGT_Settings.ShowHeaders = true; |
end |
QGT_OptionsFrameTrackerHeadersToggle:SetChecked(QGT_Settings.ShowHeaders); |
if (QGT_Settings.QuestItemIcons ~= false) then |
QGT_Settings.QuestItemIcons = true; |
end |
QGT_OptionsFrameQuestItemIconsToggle:SetChecked(QGT_Settings.QuestItemIcons); |
if (QGT_Settings.ShowLevels ~= false) then |
QGT_Settings.ShowLevels = true; |
end |
QGT_OptionsFrameTrackerShowLevelsToggle:SetChecked(QGT_Settings.ShowLevels); |
if (QGT_Settings.Pin ~= true) then |
QGT_Settings.Pin = false; |
end |
QGT_OptionsFrameTrackerPinToggle:SetChecked(QGT_Settings.Pin); |
if (QGT_Settings.HideDuringCombat ~= true) then |
QGT_Settings.HideDuringCombat = false; |
end |
QGT_OptionsFrameTrackerHideCombatToggle:SetChecked(QGT_Settings.HideDuringCombat); |
if (QGT_Settings.HideBlizzardTracker ~= false) then |
QGT_Settings.HideBlizzardTracker = true; |
end |
QGT_OptionsFrameTrackerHideBlizzTrackToggle:SetChecked(QGT_Settings.HideBlizzardTracker); |
if (QGT_Settings.AutoUnTrack ~= true) then |
QGT_Settings.AutoUnTrack = false; |
end |
QGT_OptionsFrameTrackerAutoUnTrackToggle:SetChecked(QGT_Settings.AutoUnTrack); |
if (QGT_Settings.ShowCompletedObj ~= false) then |
QGT_Settings.ShowCompletedObj = true; |
end |
QGT_OptionsFrameTrackerShowCompletedObjToggle:SetChecked(QGT_Settings.ShowCompletedObj); |
if (QGT_Settings.ColorizeObj ~= true) then |
QGT_Settings.ColorizeObj = false; |
end |
QGT_OptionsFrameTrackerColorizeObjToggle:SetChecked(QGT_Settings.ColorizeObj); |
if (QGT_Settings.ColorizeObjZero == nil) then |
QGT_Settings.ColorizeObjZero = {}; |
QGT_Settings.ColorizeObjZero.r = 0.8; |
QGT_Settings.ColorizeObjZero.g = 0.2; |
QGT_Settings.ColorizeObjZero.b = 0.8; |
end |
if (QGT_Settings.ColorizeObjFull == nil) then |
QGT_Settings.ColorizeObjFull = {}; |
QGT_Settings.ColorizeObjFull.r = 0.3; |
QGT_Settings.ColorizeObjFull.g = 0.8; |
QGT_Settings.ColorizeObjFull.b = 1.0; |
end |
if (QGT_Settings.ColorizeObjComplete == nil) then |
QGT_Settings.ColorizeObjComplete = {}; |
QGT_Settings.ColorizeObjComplete.r = 0.1; |
QGT_Settings.ColorizeObjComplete.g = 0.9; |
QGT_Settings.ColorizeObjComplete.b = 1.0; |
end |
if (QGT_Settings.ClickThrough ~= true) then |
QGT_Settings.ClickThrough = false; |
end |
QGT_OptionsFrameTrackerClickThroughToggle:SetChecked(QGT_Settings.ClickThrough); |
if (QGT_Settings.ShowQuestTooltips ~= false) then |
QGT_Settings.ShowQuestTooltips = true; |
end |
QGT_OptionsFrameTrackerQuestTooltipsToggle:SetChecked(QGT_Settings.ShowQuestTooltips); |
if (QGT_Settings.ShowPartyTooltips ~= false) then |
QGT_Settings.ShowPartyTooltips = true; |
end |
QGT_OptionsFrameTrackerPartyTooltipsToggle:SetChecked(QGT_Settings.ShowPartyTooltips); |
if (QGT_Settings.ShowQuestPercent ~= false) then |
QGT_Settings.ShowQuestPercent = true; |
end |
QGT_OptionsFrameTrackerQuestPercentToggle:SetChecked(QGT_Settings.ShowQuestPercent); |
if (QGT_Settings.Bullet == nil) then |
QGT_Settings.Bullet = "-"; |
end |
QGT_OptionsFrameTrackerBulletText:SetText(QGT_Settings.Bullet); |
if (QGT_Settings.LastTracker ~= "A") then |
QGT_Settings.LastTracker = "Q"; |
end |
if (QGT_Settings.BothTrackers ~= true) then |
QGT_Settings.BothTrackers = false; |
end |
end |
------------------------------------ |
-- QuestGuru German Localization -- |
------------------------------------ |
if (GetLocale() == "deDE") then |
QG_REP_GAIN = "Euer Ruf bei der Fraktion '(.*)' hat sich um ([%d]+) verbessert."; |
QG_REP_DEC = "Euer Ruf bei der Fraktion '(.*)' hat sich um ([%d]+) verschlechtert."; |
QG_XP_GAIN = "Ihr bekommt ([%d]+) Erfahrung."; |
QG_QUEST_COMPLETE = "Quest fertig!"; |
-- Default filler words used in various places |
QG_UNKNOWN = "Unbekannt"; |
QG_NONE = "Nichts"; |
-- Right click menu strings for Quest Log and Tracker |
QG_TRACK = "Beobachten"; |
QG_UNTRACK = "Nicht beobachten"; |
QG_SHARE_QUEST = "Quest teilen"; |
QG_ABANDON_QUEST = "Quest abbrechen"; |
QG_DELETE_QUEST = "Quest l\195\182schen"; |
-- Quest Start and Finish information |
QG_QSTART_HEAD = "Queststart Details"; |
QG_QSTART_NPC = "Gestartet von:"; |
QG_QSTART_TIME = "Startzeit:"; |
QG_QSTART_LEVEL = "Startstufe:"; |
QG_QFINISH_HEAD = "Questabgabe Details"; |
QG_QFINISH_NPC = "Abgegeben bei:"; |
QG_QFINISH_TIME = "Abgabezeit:"; |
QG_QFINISH_LEVEL = "Abgabestufe:"; |
QG_QABANDON = "Abgebrochen:"; |
-- Tab Text |
QG_TAB_CURRENT = "Aktuell"; |
QG_TAB_HISTORY = "Historie"; |
QG_TAB_ABANDON = "Abgebrochen"; |
QG_TAB_GUILD = "Gilde"; |
QG_TAB_PARTY = "Gruppe"; |
-- Party Info Tooltip strings |
QG_COMPLETE = "Fertig"; |
QG_ABANDONED = "Abgebrochen"; |
QG_INCOMPLETE = "Nicht fertig"; |
QG_ACTIVE = "Aktiv"; |
QG_ALT_STATUS_HEAD = "------------- Status eigener Charaktere -------------"; |
QG_GUILD_STATUS_HEAD = "---------- Gildenmitglieder Status ----------"; |
-- User Interface Elements |
QG_EXPAND_HEADERS = "Alle Bereiche ein-/ausklappen"; |
QG_OPTIONS = "Optionen"; |
QG_SEARCH = "Suchen: "; |
QG_CLEAR_ABANDON = "Abgebrochen-Liste l\195\182schen"; |
-- Abandon Tab Strings |
QG_ABANDON_CLEAR = "Wollen Sie die Liste l\195\182schen?"; |
QG_ABANDON_DELETE = "\"%s\" aus der Liste l\195\182schen?"; -- %s is the name of the quest |
-- History Tab strings |
QG_HISTORY_DELETE = "\"%s\" aus der Historie l\195\182schen?"; -- %s is the name of the quest |
QG_HISTORY_NONE = "Keine Quest Historie"; |
QG_HISTORY_EXPGAIN = "Erfahrung erhalten: "; |
QG_HISTORY_REPGAIN = "Ruf:"; |
-- Announcer |
QG_OPT_ANNOUNCE_HEAD = "QuestGuru Announcer Optionen"; |
QG_OPT_ANNOUNCE_DESC = "Benutzen Sie diese Optionen, um Ihren Questfortschritt anderen mitzuteilen.\n\195\132nderungen werden beim Klick auf OK gespeichert."; |
QG_OPT_ANNOUNCE_PROGRESS = "Questfortschritt mitteilen"; |
QG_OPT_ANNOUNCE_CHANNEL_HEAD = "Kan\195\164le:"; |
QG_OPT_ANNOUNCE_CHANNEL_SAY = "/s"; |
QG_OPT_ANNOUNCE_CHANNEL_SAY_DESC = "Questfortschritt in \"Say\" mitteilen"; |
QG_OPT_ANNOUNCE_CHANNEL_PARTY = "/p"; |
QG_OPT_ANNOUNCE_CHANNEL_PARTY_DESC = "Questfortschritt der Gruppe mitteilen"; |
QG_OPT_ANNOUNCE_CHANNEL_GUILD = "/g"; |
QG_OPT_ANNOUNCE_CHANNEL_GUILD_DESC = "Questfortschritt der Gilde mitteilen"; |
QG_OPT_ANNOUNCE_CHANNEL_WHISPER = "/w"; |
QG_OPT_ANNOUNCE_CHANNEL_WHISPER_DESC = "Questfortschritt jemandem zufl\195\188stern"; |
QG_OPT_ANNOUNCE_CHANNEL_WHISPER_TO = "an:"; |
QG_OPT_ANNOUNCE_ECHO = "Echo"; |
QG_OPT_ANNOUNCE_ECHO_DESC = "Fortschritt im allgemeinen Chatfenster anzeigen."; |
QG_OPT_ANNOUNCE_MESSAGES = "Nachrichten:"; |
QG_OPT_ANNOUNCE_HELP_DONE = "Anzahl gesammelter Gegenst\195\164nde oder get\195\182teter Monster"; |
QG_OPT_ANNOUNCE_HELP_NEEDED = "Gesamtzahl ben\195\182tigter Gegens\195\164tnde oder Monster"; |
QG_OPT_ANNOUNCE_HELP_NUMLEFT = "Anzahl noch ben\195\182tigter Gegenst\195\164nde oder Monster"; |
QG_OPT_ANNOUNCE_HELP_NAME = "Zieltext ohne #/#"; |
QG_OPT_ANNOUNCE_HELP_TITLE = "Name der Quest f\195\188r dieses Ziel"; |
QG_OPT_ANNOUNCE_HELP_UITEXT = "The text that showed up onscreen"; |
QG_OPT_ANNOUNCE_HELP_COMPLETE = "\195\156bersetzte Fertigmeldung: \""..COMPLETE.."\""; |
QG_OPT_ANNOUNCE_HELP_QLINK = "Der Questlink der betroffenen Quest"; |
QG_OPT_ANNOUNCE_ITEM_MSG = "Fortschritt bei Genst\195\164nden mit dieser Nachricht mitteilen:"; |
QG_OPT_ANNOUNCE_MOB_MSG = "Fortschritt bei Monstern mit dieser Nachricht mitteilen:"; |
QG_OPT_ANNOUNCE_EVENT_MSG = "Fortschritt bei Ereignissen mit dieser Nachricht mitteilen:"; |
QG_OPT_ANNOUNCE_COMPLETE_MSG = "Quest Fertigstellung mit dieser Nachticht mitteilen:"; |
QG_ANNOUNCE_ITEM_DEFAULT = "$done $name von $needed ben\195\182tigten f\195\188r $questTitle gesammelt"; |
QG_ANNOUNCE_MOB_DEFAULT = "$done $name von $needed ben\195\182tigten f\195\188r $questTitle"; |
QG_ANNOUNCE_RESET = "Announcer Optionen werden zur\195\188ckgesetzt."; |
-- Tracker |
QG_TRACKER_SHOW = "Tracker anzeigen"; |
QG_TRACKER_MINIMIZE = "Tracker minimieren"; |
QG_TRACKER_OPTIONS = "Trackeroptionen"; |
-- Options |
QG_OPT_OPTIONS_DESC = "Die sind die allgemeinen Einstellungen von QuestGuru.\n\195\132nderungen werden sofort gespeichert."; |
QG_OPT_COLORIZE_HEAD = "Einf\195\164rben"; |
QG_OPT_COLORIZE_PLAYER = "Spielername"; |
QG_OPT_COLORIZE_AREA = "Gebiete"; |
QG_OPT_COLORIZE_NPC = "NPC Namen"; |
QG_OPT_LEVELS_HEAD = "Stufen anzeigen"; |
QG_OPT_LEVELS_QUESTLOG = "Im Questlog"; |
QG_OPT_LEVELS_HISTORY = "In der Historie"; |
QG_OPT_LEVELS_ABANDON = "In der Abgebrochen-Liste"; |
QG_OPT_TOOLTIP_TEXT = "Zeige Text in Gegenstand- und Monstertooltips"; |
QG_OPT_AUTOCOMPLETE = "Quests automatisch einl\195\182sen"; |
QG_OPT_ALT_STATUS = "Zeige Queststatus eigener Charaktere im Tooltip"; |
QG_OPT_GUILD_STATUS = "Zeige Queststatus von Gildenmitgliedern im Tooltip"; |
QG_OPT_GUILD_SIMPLE = "Einfache Gildenmitgliederanzeige"; |
QG_OPT_OBJ_ICON = "Zeige Gegenstandicons im Questlog"; |
QG_OPT_DISABLE_COMM = "gesamte addon-zu-addon Kommunikation abschalten"; |
QG_OPT_TRACKER_DESC = "Diese Optionen \195\164ndern das Aussehen des QuestGuru Trackers.\n\195\132nderungen werden sofort gespeichert."; |
QG_OPT_TRACKER_USE = "QuestGuru Tracker verwenden"; |
QG_OPT_TRACKER_USE_DESC = "Deaktivieren Sie diese Option, um den Standardtracker oder andere Tracker Addons zu verwenden"; |
QG_OPT_TRACKER_BORDER = "Rahmen anzeigen"; |
QG_OPT_TRACKER_BORDER_DESC = "Aktivieren Sie diese Option, um einen d\195\188nnen Rahmen um den Tracker anzuzeigen"; |
QG_OPT_TRACKER_CLICKTHROUGH = "Durch den Tracker klicken"; |
QG_OPT_TRACKER_CLICKTHROUGH_DESC = "Aktivieren Sie diese Option, um den Tracker nicht anklickbar zu machen"; |
QG_OPT_TRACKER_HEADERS = "\195\156berschriften anzeigen"; |
QG_OPT_TRACKER_HEADERS_DESC = "Aktivieren Sie diese Option, um Zonen\195\188berschriften im Tracker anzuzeigen"; |
QG_OPT_TRACKER_LEVELS = "Queststufen anzeigen"; |
QG_OPT_TRACKER_LEVELS_DESC = "Aktivieren Sie diese Option, um die Queststufen im Tracker anzuzeigen"; |
QG_OPT_TRACKER_QUEST_TOOLTIPS = "Quest Tooltips anzeigen"; |
QG_OPT_TRACKER_QUEST_TOOLTIPS_DESC = "Aktivieren Sie diese Option, um einen Tooltip mit Informationen anzuzeigen, wenn Sie mit dem Mauszeiger \195\188ber Questnamen oder Ziele fahren"; |
QG_OPT_TRACKER_PARTY_TOOLTIPS = "Gruppen Tooltips anzeigen"; |
QG_OPT_TRACKER_PARTY_TOOLTIPS_DESC = "Aktivieren Sie diese Option, um den Tooltip f\195\188r Gruppen-, Gilden und Zweitcharakterinformationen anzuzeigen, wenn Sie mit dem Mauszeiger \195\188ber Questnamen fahren"; |
QG_OPT_TRACKER_PERCENT = "Quest Prozentwert anzeigen"; |
QG_OPT_TRACKER_PERCENT_DESC = "Aktivieren Sie diese Option, um den Fortschrittsprozentwert neben dem Questnamen im Tracker anzuzeigen"; |
QG_OPT_TRACKER_ANCHOR_BOTTOM = "Unten verankern"; |
QG_OPT_TRACKER_ANCHOR_BOTTOM_DESC = "Verankert den unteren Rand des Trackers, um ihn nach oben zu vergr\195\182\195\159ern."; |
QG_OPT_TRACKER_AUTOTRACK = "Neue Q's automatisch beobachten"; |
QG_OPT_TRACKER_AUTOTRACK_DESC = "Aktivieren Sie diese Option, um neue Quests automatisch zum Tracker hinzuzuf\195\188gen"; |
QG_OPT_TRACKER_AUTOUNTRACK = "Fertige Q's nicht beobachten"; |
QG_OPT_TRACKER_AUTOUNTRACK_DESC = "Nach abschlie\195\159en aller Questziele Quest automtisch aus dem Tracker entfernen"; |
QG_OPT_TRACKER_COMPLETE_OBJ = "Vollendete Ziele anzeigen"; |
QG_OPT_TRACKER_COMPLETE_OBJ_DESC = "Deaktivieren Sie diese Option, um vollendete Questziele nicht im Tracker anzuzeigen"; |
QG_OPT_TRACKER_COLOR_OBJ = "Ziele nach Fortschritt einf\195\164rben"; |
QG_OPT_TRACKER_COLOR_OBJ_DESC = "Aktivieren Sie diese Option, um Questziele nach dem Fortschritt mit den folgenden Farben einzuf\195\164rben"; |
QG_OPT_TRACKER_OBJ_COLOR_0 = "Farbe f\195\188r zu 0% vollendete Ziele"; |
QG_OPT_TRACKER_OBJ_COLOR_99 = "Farbe f\195\188r zu 99% vollendete Ziele"; |
QG_OPT_TRACKER_OBJ_COLOR_COMPLETE = "Farbe f\195\188r vollendete Ziele"; |
QG_OPT_TRACKER_SIZE = "Trackergr\195\182\195\159e"; |
QG_OPT_TRACKER_MAX_LINES = "Max. Trackerzeilen:"; |
QG_OPT_TRACKER_ALPHA = "Hintergrund-Alpha"; |
QG_OPT_SOUND_HEAD = "Klangoptionen"; |
QG_OPT_SOUND_DESC = "Benutzen Sie diese Optionen, um die Kl\195\164nge zu \195\164ndern, die beim Questfortschritt abgespielt werden.\n\195\132nderungen werden sofort gespeichert."; |
QG_OPT_SOUND_ENABLE = "Zus\195\164tzliche Kl\195\164nge aktivieren"; |
QG_OPT_SOUND_OBJ = "Klang beim Zielfortschritt abspielen:"; |
QG_OPT_SOUND_OBJ_DONE = "Klang beim abschlie\195\159en eines Questziels abspielen:"; |
QG_SOUND_QUEST_DONE = "Klang beim Fertigstellen einer Quest abspielen:"; |
-- Other strings that may or may not need localizing |
QG_ITEM_REQ_STR = "(.*):%s*([%d]+)%s*/%s*([%d]+)"; -- The format of the line when an item is required for a quest, an invalid format can cause many errors |
QG_DATETIME = "%d/%m/%Y %H:%M:%S"; -- The format that date/time values are stored and displayed for start/finish info |
end |
------------------------------------------------------------------------------- |
-- QuestGuru Chinese Localization(zhTW) By Silver Fox, fixed/updated By Player Lin -- |
------------------------------------------------------------------------------- |
if (GetLocale() == "zhTW") then |
-- Default filler words used in various places |
QG_UNKNOWN = "æªç¥"; |
QG_NONE = "æ²æ"; |
-- Right click menu strings for Quest Log and Tracker |
QG_TRACK = "å å ¥è¿½è¹¤"; |
QG_UNTRACK = "åæ¶è¿½è¹¤"; |
QG_SHARE_QUEST = "å享任å"; |
QG_ABANDON_QUEST = "æ¾æ£ä»»å"; |
QG_DELETE_QUEST = "åªé¤ä»»å"; |
-- Party Info Tooltip strings |
QG_ABANDONED = "æ¾æ£" |
QG_INCOMPLETE = "æªå®"; |
QG_ACTIVE = "é²è¡"; |
QG_ALT_STATUS_HEAD = "------------- å身è§è²ä»»åçæ³ -------------"; |
QG_GUILD_STATUS_HEAD = "------------- å ¬ææå¡ä»»åçæ³ -------------"; |
-- User Interface Elements |
QG_EXPAND_HEADERS = "æ¶èµ·/å±éæææ¨é¡"; |
QG_OPTIONS = "é¸é "; |
QG_SEARCH = "æå°: "; |
QG_CLEAR_ABANDON = "æ¸ é¤æ¾æ£ä»»åå表"; |
-- Tracker |
QG_TRACKER_SHOW = "顯示追蹤è¦çª"; |
QG_TRACKER_MINIMIZE = "縮å°è¿½è¹¤è¦çª"; |
QG_TRACKER_OPTIONS = "追蹤è¦çªè¨å®"; |
QG_TRACKER_TOGGLE = "é»æè½æä»»ååæ就追蹤. å³éµé»æåæ顯示è¦çª"; |
QG_TRACKER_QUESTS = "ä»»å"; |
QG_TRACKER_ACHIEVE = "æå°±"; |
QG_TRACKER_Q = "Q"; --Abbreviation for Quest for toggle button |
QG_TRACKER_A = "A"; --Abbreviation for Achievement for toggle button |
-- Options |
QG_OPT_TRACKER_DESC = "éäºé¸é å¯ä»¥æ¹è®è¿½è¹¤è¦çªçè¨å®."; |
QG_OPT_TRACKER_BORDER = "顯示追蹤è¦çªéæ¡"; |
QG_OPT_TRACKER_BORDER_DESC = "å¾é¸éåé ç®æå¨è¿½è¹¤è¦çªå¤å顯示éæ¡"; |
QG_OPT_TRACKER_ITEMICONS = "顯示任åç©åå示"; |
QG_OPT_TRACKER_ITEMICONS_DESC = "æºé¸éé 顯示ç¹æ®ä»»åç©åå示"; |
QG_OPT_TRACKER_CLICKTHROUGH = "é»é¸å¯ç©¿è¶è¿½è¹¤è¦çª"; |
QG_OPT_TRACKER_CLICKTHROUGH_DESC = "å¾é¸éé æ»é¼ çé»é¸å¯ä»¥ç©¿è¶è¿½è¹¤è¦çª"; |
QG_OPT_TRACKER_HEADERS = "顯示任ååé¡æ¨é¡"; |
QG_OPT_TRACKER_HEADERS_DESC = "å¾é¸éåé ç®å¨ä»»å追蹤è¦çªæ顯示任ååé¡çæ¨é¡"; |
QG_OPT_TRACKER_LEVELS = "顯示任åçç´"; |
QG_OPT_TRACKER_LEVELS_DESC = "å¾é¸éåé ç®å¨ä»»å追蹤è¦çªæ顯示任åçç´"; |
QG_OPT_TRACKER_QUEST_TOOLTIPS = "顯示任åæ示"; |
QG_OPT_TRACKER_QUEST_TOOLTIPS_DESC = "å¾é¸éåé ç®è®ä½ çæ»é¼ 游æ¨ç§»å°ä»»åä¸æå¯ä»¥çå°æ示"; |
QG_OPT_TRACKER_PARTY_TOOLTIPS = "顯示éä¼æ示"; |
QG_OPT_TRACKER_PARTY_TOOLTIPS_DESC = "å¾é¸éåé ç®æè®ä½ çæ»é¼ 游æ¨ç§»å°ä»»åä¸ææ顯示 éä¼/å身/å ¬æ çä»»åçæ³"; |
QG_OPT_TRACKER_PERCENT = "顯示任åå®ææ¯ä¾"; |
QG_OPT_TRACKER_PERCENT_DESC = "éåé¸é å¯ä»¥é¡¯ç¤ºä»»åçå®ææ¯ä¾"; |
QG_OPT_TRACKER_ANCHOR_BOTTOM = "åºå®åºé¨"; |
QG_OPT_TRACKER_ANCHOR_BOTTOM_DESC = "å¾é¸éåé ç®è¿½è¹¤è¦çªæ以åºé¨çºæºé²è¡ç¸®æ¾"; |
QG_OPT_TRACKER_PIN = "éå®è¿½è¹¤è¦çª"; |
QG_OPT_TRACKER_PIN_DESC = "å¾é¸éåé ç®å°éå®è¿½è¹¤è¦çªæ以ç¡æ³èªç±ç§»å."; |
QG_OPT_TRACKER_AUTOUNTRACK = "å®æä»»åèªå解é¤è¿½è¹¤"; |
QG_OPT_TRACKER_AUTOUNTRACK_DESC = "å¾é¸éåé ç®å¯ä»¥èªåå°å·²ç¶å®æçä»»åå¾è¿½è¹¤è¦çªä¸ç§»é¤"; |
QG_OPT_TRACKER_COMPLETE_OBJ = "顯示已å®æçä»»åé ç®"; |
QG_OPT_TRACKER_COMPLETE_OBJ_DESC = "åæ¶å¾é¸éé è®å·²ç¶å®æçä»»åé ç®å¾è¿½è¹¤è¦çªä¸æ¶å¤±"; |
QG_OPT_TRACKER_COLOR_OBJ = "ç¨é¡è²ä¾æ¨ç¤ºä»»åå®ææ¯ä¾"; |
QG_OPT_TRACKER_COLOR_OBJ_DESC = "å¾é¸éåé ç®å¯ä»¥è®ä½ ç¨é¡è²ä¾æ¨ç¤ºä»»åçå®ææ¯ä¾"; |
QG_OPT_TRACKER_OBJ_COLOR_0 = "è¨å®ä»»åé ç®å®ææ¯ä¾ 0% æçé¡è²"; |
QG_OPT_TRACKER_OBJ_COLOR_99 = "è¨å®ä»»åé ç®å®ææ¯ä¾ 99% æçé¡è²"; |
QG_OPT_TRACKER_OBJ_COLOR_COMPLETE = "è¨å®ä»»åé ç®å®æçé¡è²"; |
QG_OPT_TRACKER_SIZE = "追蹤è¦çªå°ºå¯¸"; |
QG_OPT_TRACKER_MAX_LINES = "追蹤è¦çªè¡æ¸:"; |
QG_OPT_TRACKER_ALPHA = "è¦çªèæ¯éæ度"; |
QG_OPT_TRACKER_BULLET = "ä»»åç®æ¨å置符è:"; |
-- Other strings that may or may not need localizing |
QG_ITEM_REQ_STR = "(.*):%s*([%d]+)%s*/%s*([%d]+)"; -- The format of the line when an item is required for a quest, an invalid format can cause many errors |
QG_DATETIME = "%m/%d/%Y %H:%M:%S"; -- The format that date/time values are stored and displayed for start/finish info |
end |