📄 monkeyquest.lua
字号:
if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowNoobTips == false) then
return;
end
-- put the tool tip in the default position
GameTooltip:SetOwner(this, "ANCHOR_TOPRIGHT");
-- set the tool tip text
GameTooltip:SetText(MONKEYQUEST_NOOBTIP_HEADER, TOOLTIP_DEFAULT_COLOR.r, TOOLTIP_DEFAULT_COLOR.g, TOOLTIP_DEFAULT_COLOR.b, 1);
if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bMinimized) then
GameTooltip:AddLine(MONKEYQUEST_NOOBTIP_RESTORE, NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b, 1);
else
GameTooltip:AddLine(MONKEYQUEST_NOOBTIP_MINIMIZE, NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b, 1);
end
GameTooltip:Show();
end
function MonkeyQuestShowHiddenCheckButton_OnClick()
-- if not loaded yet then get out
if (MonkeyQuest.m_bLoaded == false) then
return;
end
if (this:GetChecked()) then
PlaySound("igMainMenuOptionCheckBoxOff");
MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowHidden = true;
else
PlaySound("igMainMenuOptionCheckBoxOn");
MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowHidden = false;
end
MonkeyQuest_Refresh();
end
function MonkeyQuestShowHiddenCheckButton_OnEnter()
-- no noob tip?
if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowNoobTips == false) then
return;
end
-- put the tool tip in the default position
GameTooltip:SetOwner(this, "ANCHOR_TOPRIGHT");
-- set the tool tip text
GameTooltip:SetText(MONKEYQUEST_NOOBTIP_HEADER, TOOLTIP_DEFAULT_COLOR.r, TOOLTIP_DEFAULT_COLOR.g, TOOLTIP_DEFAULT_COLOR.b, 1);
if (this:GetChecked()) then
GameTooltip:AddLine(MONKEYQUEST_NOOBTIP_HIDEALLHIDDEN, NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b, 1);
else
GameTooltip:AddLine(MONKEYQUEST_NOOBTIP_SHOWALLHIDDEN, NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b, 1);
end
GameTooltip:Show();
end
function MonkeyQuest_Show()
MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bDisplay = true;
MonkeyQuestFrame:Show();
MonkeyQuest_Refresh();
end
function MonkeyQuest_Hide()
MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bDisplay = false;
MonkeyQuestFrame:Hide();
end
function MonkeyQuest_SetAlpha(iAlpha)
MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iAlpha = iAlpha;
MonkeyQuestFrame:SetBackdropColor(TOOLTIP_DEFAULT_BACKGROUND_COLOR.r, TOOLTIP_DEFAULT_BACKGROUND_COLOR.g, TOOLTIP_DEFAULT_BACKGROUND_COLOR.b, iAlpha);
--MonkeyQuestFrame:SetAlpha(0.5);
end
function MonkeyQuest_SetFrameAlpha(iAlpha)
MonkeyQuestFrame:SetAlpha(iAlpha);
end
function MonkeyQuest_Refresh()
-- if not loaded yet, get outta here
if (MonkeyQuest.m_bLoaded == false) then
return;
end
-- set the check state of the MonkeyQuestShowHiddenCheckButton
if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowHidden == true) then
MonkeyQuestShowHiddenCheckButton:SetChecked(1);
else
MonkeyQuestShowHiddenCheckButton:SetChecked(0);
end
-- make sure the minimize button has the right texture
if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bMinimized == true) then
MonkeyQuestMinimizeButton:SetNormalTexture("Interface\\AddOns\\MonkeyLibrary\\Textures\\MinimizeButton-Down");
else
MonkeyQuestMinimizeButton:SetNormalTexture("Interface\\AddOns\\MonkeyLibrary\\Textures\\MinimizeButton-Up");
end
local strMonkeyQuestBody = "";
local colour;
local strTitleColor;
local iButtonId = 1;
local bNextHeader = false;
-- Remember the currently selected quest log entry
local tmpQuestLogSelection = GetQuestLogSelection();
local iNumEntries, iNumQuests = GetNumQuestLogEntries();
MonkeyQuestTitleText:SetTextHeight(MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFontHeight + 2);
-- set the title, with or without the number of quests
if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowNumQuests == true) then
if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bHideTitle == false) then
MonkeyQuestTitleText:SetText(MONKEYQUEST_TITLE .. " " .. iNumQuests .. "/" .. MAX_QUESTLOG_QUESTS);
else
MonkeyQuestTitleText:SetText(iNumQuests .. "/" .. MAX_QUESTLOG_QUESTS);
end
elseif (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bHideTitle == false) then
MonkeyQuestTitleText:SetText(MONKEYQUEST_TITLE);
else
MonkeyQuestTitleText:SetText("");
end
MonkeyQuest.m_iNumEntries = iNumEntries;
-- hide all the text buttons
for i = 1, MonkeyQuest.m_iNumQuestButtons, 1 do
getglobal("MonkeyQuestButton" .. i .. "Text"):SetText("");
getglobal("MonkeyQuestButton" .. i .. "Text"):Hide();
getglobal("MonkeyQuestButton" .. i):Hide();
getglobal("MonkeyQuestHideButton" .. i):Hide();
getglobal("MonkeyQuestButton" .. i .. "Text"):SetWidth(MonkeyQuestFrame:GetWidth() - MONKEYQUEST_PADDING - 8);
getglobal("MonkeyQuestButton" .. i .. "Text"):SetTextHeight(MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFontHeight);
end
MonkeyQuest_RefreshQuestItemList();
if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bMinimized == false) then
for i = 1, iNumEntries, 1 do
-- strQuestLogTitleText the title text of the quest, may be a header (ex. Wetlands)
-- strQuestLevel the level of the quest
-- strQuestTag the tag on the quest (ex. COMPLETED)
local strQuestLogTitleText, strQuestLevel, strQuestTag, isHeader, isCollapsed, isComplete = GetQuestLogTitle(i);
-- are we looking for the next header?
if (bNextHeader == true and isHeader) then
-- no longer skipping quests
bNextHeader = false;
end
if (bNextHeader == false) then
-- no longer looking for the next header
-- Select the quest log entry for other functions like GetNumQuestLeaderBoards()
SelectQuestLogEntry(i);
-- double check this quest is in the hidden list, if not, it's a new quest
if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_aQuestList[strQuestLogTitleText] == nil) then
MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_aQuestList[strQuestLogTitleText] = {};
MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_aQuestList[strQuestLogTitleText].m_bChecked = true;
end
if (isHeader) then
if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_aQuestList[strQuestLogTitleText].m_bChecked == true) then
if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bNoHeaders == false or
MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowHidden == true) then
strMonkeyQuestBody = strMonkeyQuestBody ..
format(MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strHeaderOpenColour .. "%s|r",
"- " .. strQuestLogTitleText) .. "\n";
getglobal("MonkeyQuestButton" .. iButtonId .. "Text"):SetText(strMonkeyQuestBody);
getglobal("MonkeyQuestButton" .. iButtonId .. "Text"):Show();
getglobal("MonkeyQuestButton" .. iButtonId):Show();
-- set the bg colour
getglobal("MonkeyQuestButton" .. iButtonId .. "Texture"):SetVertexColor(0.0, 0.0, 0.0, 0.0);
getglobal("MonkeyQuestButton" .. iButtonId).m_iQuestIndex = i;
getglobal("MonkeyQuestButton" .. iButtonId).id = iButtonId;
getglobal("MonkeyQuestHideButton" .. iButtonId):Hide();
getglobal("MonkeyQuestHideButton" .. iButtonId).m_strQuestLogTitleText = strQuestLogTitleText;
iButtonId = iButtonId + 1;
strMonkeyQuestBody = "";
end
else
if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowHidden == true) then
strMonkeyQuestBody = strMonkeyQuestBody ..
format(MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strHeaderClosedColour .. "%s|r",
"+ " .. strQuestLogTitleText) .. "\n";
getglobal("MonkeyQuestButton" .. iButtonId .. "Text"):SetText(strMonkeyQuestBody);
getglobal("MonkeyQuestButton" .. iButtonId .. "Text"):Show();
getglobal("MonkeyQuestButton" .. iButtonId):Show();
-- set the bg colour
getglobal("MonkeyQuestButton" .. iButtonId .. "Texture"):SetVertexColor(0.0, 0.0, 0.0, 0.0);
getglobal("MonkeyQuestButton" .. iButtonId).m_iQuestIndex = i;
getglobal("MonkeyQuestButton" .. iButtonId).id = iButtonId;
getglobal("MonkeyQuestHideButton" .. iButtonId):Hide();
getglobal("MonkeyQuestHideButton" .. iButtonId).m_strQuestLogTitleText = strQuestLogTitleText;
iButtonId = iButtonId + 1;
strMonkeyQuestBody = "";
end
-- keep looping through the list until we find the next header
bNextHeader = true;
end
else
-- check if the user even wants this displayed
if ((MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_aQuestList[strQuestLogTitleText].m_bChecked == true or
MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowHidden) and
(MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bHideCompletedQuests == false or
(MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bHideCompletedQuests == true and not isComplete) or
MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowHidden)) then
-- the user has this quest checked off or he's showing all quests anyways, so we show it
getglobal("MonkeyQuestHideButton" .. iButtonId):Show();
-- update hide quests buttons
if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_aQuestList[strQuestLogTitleText].m_bChecked == true) then
getglobal("MonkeyQuestHideButton" .. iButtonId):SetChecked(1);
else
getglobal("MonkeyQuestHideButton" .. iButtonId):SetChecked(0);
end
getglobal("MonkeyQuestHideButton" .. iButtonId).m_strQuestLogTitleText = strQuestLogTitleText;
colour = GetDifficultyColor(strQuestLevel);
-- Begin Pkp Changes
if(MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bColourTitle) then
strTitleColor = format("|c%02X%02X%02X%02X", 255, colour.r * 255, colour.g * 255, colour.b * 255);
else
strTitleColor = MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strQuestTitleColour;
end
if (strQuestTag == ELITE) then
strMonkeyQuestBody = strMonkeyQuestBody ..
format("|c%02X%02X%02X%02X%s|r", 255, colour.r * 255, colour.g * 255, colour.b * 255,
" [" .. strQuestLevel .. "+] ") ..
format(strTitleColor .. "%s|r",
strQuestLogTitleText);
elseif (strQuestTag == MONKEYQUEST_DUNGEON) then
strMonkeyQuestBody = strMonkeyQuestBody ..
format("|c%02X%02X%02X%02X%s|r", 255, colour.r * 255, colour.g * 255, colour.b * 255,
" [" .. strQuestLevel .. "d] ") ..
format(strTitleColor .. "%s|r",
strQuestLogTitleText);
elseif (strQuestTag == RAID) then
strMonkeyQuestBody = strMonkeyQuestBody ..
format("|c%02X%02X%02X%02X%s|r", 255, colour.r * 255, colour.g * 255, colour.b * 255,
" [" .. strQuestLevel .. "r] ") ..
format(strTitleColor .. "%s|r",
strQuestLogTitleText);
elseif (strQuestTag == MONKEYQUEST_PVP) then
strMonkeyQuestBody = strMonkeyQuestBody ..
format("|c%02X%02X%02X%02X%s|r", 255, colour.r * 255, colour.g * 255, colour.b * 255,
" [" .. strQuestLevel .. "p] ") ..
format(strTitleColor .. "%s|r",
strQuestLogTitleText);
else
strMonkeyQuestBody = strMonkeyQuestBody ..
format("|c%02X%02X%02X%02X%s|r", 255, colour.r * 255, colour.g * 255, colour.b * 255,
" [" .. strQuestLevel .. "] ") ..
format(strTitleColor .. "%s|r",
strQuestLogTitleText);
end
-- add the completed tag, if needed
if (isComplete) then
strMonkeyQuestBody = strMonkeyQuestBody .. " (" .. MONKEYQUEST_QUEST_DONE .. ")\n";
else
strMonkeyQuestBody = strMonkeyQuestBody .. "\n";
end
local strQuestDescription, strQuestObjectives = GetQuestLogQuestText();
if (GetNumQuestLeaderBoards() > 0) then
for ii=1, GetNumQuestLeaderBoards(), 1 do
--local string = getglobal("QuestLogObjective"..ii);
local strLeaderBoardText, strType, iFinished = GetQuestLogLeaderBoard(ii);
MonkeyQuest_AddQuestItemToList(strLeaderBoardText);
if (strLeaderBoardText) then
if (not iFinished) then
strMonkeyQuestBody = strMonkeyQuestBody .. " " .. MonkeyQuest_GetLeaderboardColorStr(strLeaderBoardText) ..
strLeaderBoardText .. "\n";
elseif (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bHideCompletedObjectives == false
or MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowHidden) then
strMonkeyQuestBody = strMonkeyQuestBody .. " " ..
MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strCompleteObjectiveColour ..
strLeaderBoardText .. "\n";
end
end
end
elseif (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bObjectives) then
-- this quest has no leaderboard so display the objective instead if the config is set
strMonkeyQuestBody = strMonkeyQuestBody .. " " ..
format(MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strOverviewColour .. "%s|r",
strQuestObjectives) .. "\n";
--format("|c%02X%02X%02X%02X%s|r", 255, GRAY_FONT_COLOR.r * 255, GRAY_FONT_COLOR.g * 255,
--GRAY_FONT_COLOR.b * 255, strQuestObjectives) .. "\n";
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -