📄 titanquests.lua
字号:
TitanSetVar(TITAN_QUESTS_ID, "ShowDungeon", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowRaid", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowPVP", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowRegular", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowCompleted", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowIncomplete", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowAll", nil);
end
DropDownList1:Hide();
end
function TitanPanelQuests_ShowDungeon()
if ( TitanGetVar(TITAN_QUESTS_ID, "ShowDungeon") ) then
TitanSetVar(TITAN_QUESTS_ID, "ShowDungeon", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowAll", 1);
else
TitanSetVar(TITAN_QUESTS_ID, "ShowDungeon", 1);
TitanSetVar(TITAN_QUESTS_ID, "ShowElite", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowRaid", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowPVP", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowRegular", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowCompleted", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowIncomplete", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowAll", nil);
end
DropDownList1:Hide();
end
function TitanPanelQuests_ShowRaid()
if ( TitanGetVar(TITAN_QUESTS_ID, "ShowRaid") ) then
TitanSetVar(TITAN_QUESTS_ID, "ShowRaid", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowAll", 1);
else
TitanSetVar(TITAN_QUESTS_ID, "ShowRaid", 1);
TitanSetVar(TITAN_QUESTS_ID, "ShowElite", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowDungeon", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowPVP", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowRegular", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowCompleted", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowIncomplete", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowAll", nil);
end
DropDownList1:Hide();
end
function TitanPanelQuests_ShowPVP()
if ( TitanGetVar(TITAN_QUESTS_ID, "ShowPVP") ) then
TitanSetVar(TITAN_QUESTS_ID, "ShowPVP", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowAll", 1);
else
TitanSetVar(TITAN_QUESTS_ID, "ShowPVP", 1);
TitanSetVar(TITAN_QUESTS_ID, "ShowElite", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowDungeon", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowRaid", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowRegular", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowCompleted", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowIncomplete", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowAll", nil);
end
DropDownList1:Hide();
end
function TitanPanelQuests_ShowRegular()
if ( TitanGetVar(TITAN_QUESTS_ID, "ShowRegular") ) then
TitanSetVar(TITAN_QUESTS_ID, "ShowRegular", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowAll", 1);
else
TitanSetVar(TITAN_QUESTS_ID, "ShowRegular", 1);
TitanSetVar(TITAN_QUESTS_ID, "ShowElite", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowDungeon", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowRaid", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowPVP", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowCompleted", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowIncomplete", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowAll", nil);
end
DropDownList1:Hide();
end
function TitanPanelQuests_ShowCompleted()
if ( TitanGetVar(TITAN_QUESTS_ID, "ShowCompleted") ) then
TitanSetVar(TITAN_QUESTS_ID, "ShowCompleted", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowAll", 1);
else
TitanSetVar(TITAN_QUESTS_ID, "ShowCompleted", 1);
TitanSetVar(TITAN_QUESTS_ID, "ShowIncomplete", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowElite", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowDungeon", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowRaid", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowPVP", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowRegular", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowAll", nil);
end
DropDownList1:Hide();
end
function TitanPanelQuests_ShowIncomplete()
if ( TitanGetVar(TITAN_QUESTS_ID, "ShowIncomplete") ) then
TitanSetVar(TITAN_QUESTS_ID, "ShowIncomplete", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowAll", 1);
else
TitanSetVar(TITAN_QUESTS_ID, "ShowIncomplete", 1);
TitanSetVar(TITAN_QUESTS_ID, "ShowCompleted", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowElite", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowDungeon", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowRaid", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowPVP", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowRegular", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowAll", nil);
end
DropDownList1:Hide();
end
function TitanPanelQuests_ShowAll()
TitanSetVar(TITAN_QUESTS_ID, "ShowAll", 1);
TitanSetVar(TITAN_QUESTS_ID, "ShowElite", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowDungeon", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowRaid", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowPVP", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowRegular", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowCompleted", nil);
TitanSetVar(TITAN_QUESTS_ID, "ShowIncomplete", nil);
DropDownList1:Hide();
end
--
-- Click Behavior toggle function
--
function TitanPanelQuests_ToggleClickBehavior()
TitanToggleVar(TITAN_QUESTS_ID, "ClickBehavior");
end
--
-- Group Behavior toggle function
--
function TitanPanelQuests_ToggleGroupBehavior()
TitanToggleVar(TITAN_QUESTS_ID, "GroupBehavior");
TitanPanelRightClickMenu_Close();
end
--
-- build quest list (returns table of current active quests)
--
function TitanPanelQuests_BuildQuestList()
local NumEntries, NumQuests;
local Title, Level, Tag, isHeader, isCollapsed, isComplete;
local questIndex;
local Location;
local useTag;
local completeTag;
local questWatched = "";
local diff;
local QuestList = { };
NumEntries, NumQuests = GetNumQuestLogEntries();
for questIndex=1, NumEntries do
Title, Level, Tag, isHeader, isCollapsed, isComplete = GetQuestLogTitle(questIndex);
if ( Level == 0 ) then
Location = Title;
else
local entry = { questID = questIndex, questTitle = Title, questLevel = Level, questTag = Tag, questisHeader = isHeader, questisComplete = isComplete, questLocation = Location };
table.insert(QuestList, entry);
end
end
return QuestList;
end
--
-- debug
--
function TitanPanelQuests_DisplayTheList(thelist)
local i = 0;
for i=1, table.getn(thelist) do
TitanPanelQuests_ChatPrint(i..":"..thelist[i].questLevel..":"..thelist[i].questTitle..":"..thelist[i].questLocation..":"..thelist[i].questID.."\n");
end
end
--
-- display quest details window
--
function TitanPanelQuests_DisplayQuest()
local questTitle, questLevel, questTag, questisHeader, questisCollapsed, questisComplete;
local questDescription = "";
local questObjectives = "";
local diff, useTag, completeTag;
local numObjectives = 0;
local ObjectivesText = "";
-- select the quest entry
SelectQuestLogEntry(this.value[2]);
QuestLog_SetSelection(this.value[2]);
questDescription, questObjectives = GetQuestLogQuestText();
questTitle, questLevel, questTag, questisHeader, questisCollapsed, questisComplete = GetQuestLogTitle(this.value[2]);
if ( questTag == ELITE ) then
useTag = "+"
elseif ( questTag == TITAN_QUESTS_DUNGEON ) then
useTag = "d";
elseif ( questTag == TITAN_QUESTS_RAID ) then
useTag = "r";
elseif ( questTag == TITAN_QUESTS_PVP ) then
useTag = "p";
else
useTag = "";
end
if ( questisComplete ) then
useTag = "C";
completeTag = "("..COMPLETE..")";
else
completeTag = "";
end
diff = GetDifficultyColor(questLevel);
-- find location
local qid = 0;
local questLocation = "";
qid = this.value[2] - 1;
for k = qid, 1, -1 do
local qtitle, qlevel, qtag, qisheader, qiscollapsed, qiscomplete = GetQuestLogTitle(k);
if ( qlevel == 0 ) then
questLocation = qtitle;
break;
end
end
-- end find location
-- set title
local newquestTitle = TitanUtils_GetColoredText("["..questLevel..useTag.."]",diff)..TitanUtils_GetHighlightText(questTitle);
TitanQuests_Details_Title:SetText(newquestTitle);
if ( IsCurrentQuestFailed() ) then
questTitle = questTitle.." - ("..TEXT(FAILED)..")";
end
TitanQuests_Details_ScrollChild_QuestTitle:SetText(questTitle);
-- add location to objectives
local newquestObjectives = LOCATION_COLON.." "..questLocation.."\n\n"..questObjectives;
TitanQuests_Details_ScrollChild_ObjectivesText:SetText(newquestObjectives);
-- display quest timer
local questTimer = GetQuestLogTimeLeft();
if ( questTimer ) then
TitanQuests_Details.hasTimer = 1;
TitanQuests_Details.timePassed = 0;
TitanQuests_Details_ScrollChild_TimerText:Show();
TitanQuests_Details_ScrollChild_TimerText:SetText(TEXT(TIME_REMAINING).." "..SecondsToTime(questTimer));
TitanQuests_Details_ScrollChild_Objective1:SetPoint("TOPLEFT", "TitanQuests_Details_ScrollChild_TimerText", "BOTTOMLEFT", 0, -10);
else
TitanQuests_Details.hasTimer = nil;
TitanQuests_Details_ScrollChild_TimerText:Hide();
TitanQuests_Details_ScrollChild_Objective1:SetPoint("TOPLEFT", "TitanQuests_Details_ScrollChild_ObjectivesText", "BOTTOMLEFT", 0, -10);
end
-- display objectives
numObjectives = GetNumQuestLeaderBoards();
for i=1, numObjectives, 1 do
local string = getglobal("TitanQuests_Details_ScrollChild_Objective"..i);
local text;
local type;
local finished;
text, type, finished = GetQuestLogLeaderBoard(i);
if ( not text or strlen(text) == 0 ) then
text = type;
end
if ( finished ) then
string:SetTextColor(0.2, 0.2, 0.2);
text = text.." ("..TEXT(COMPLETE)..")";
else
string:SetTextColor(0, 0, 0);
end
string:SetText(text);
string:Show();
QuestFrame_SetAsLastShown(string,TitanQuests_Details_ScrollChild_SpacerFrame);
end
for i=numObjectives + 1, MAX_OBJECTIVES, 1 do
getglobal("TitanQuests_Details_ScrollChild_Objective"..i):Hide();
end
-- If there's money required then anchor and display it
if ( GetQuestLogRequiredMoney() > 0 ) then
if ( numObjectives > 0 ) then
TitanQuests_Details_ScrollChild_RequiredMoneyText:SetPoint("TOPLEFT", "TitanQuests_Details_ScrollChild_Objective"..numObjectives, "BOTTOMLEFT", 0, -4);
else
TitanQuests_Details_ScrollChild_RequiredMoneyText:SetPoint("TOPLEFT", "TitanQuests_Details_ScrollChild_ObjectivesText", "BOTTOMLEFT", 0, -10);
end
MoneyFrame_Update("TitanQuests_Details_ScrollChild_RequiredMoneyFrame", GetQuestLogRequiredMoney());
if ( GetQuestLogRequiredMoney() > GetMoney() ) then
-- Not enough money
TitanQuests_Details_ScrollChild_RequiredMoneyText:SetTextColor(0, 0, 0);
SetMoneyFrameColor("UberQuest_Details_ScrollChild_RequiredMoneyFrame", 1.0, 0.1, 0.1);
else
TitanQuests_Details_ScrollChild_RequiredMoneyText:SetTextColor(0.2, 0.2, 0.2);
SetMoneyFrameColor("UberQuest_Details_ScrollChild_RequiredMoneyFrame", 1.0, 1.0, 1.0);
end
TitanQuests_Details_ScrollChild_RequiredMoneyText:Show();
TitanQuests_Details_ScrollChild_RequiredMoneyFrame:Show();
else
TitanQuests_Details_ScrollChild_RequiredMoneyText:Hide();
TitanQuests_Details_ScrollChild_RequiredMoneyFrame:Hide();
end
if ( GetQuestLogRequiredMoney() > 0 ) then
TitanQuests_Details_ScrollChild_DescriptionTitle:SetPoint("TOPLEFT", "TitanQuests_Details_ScrollChild_RequiredMoneyText", "BOTTOMLEFT", 0, -10);
elseif ( numObjectives > 0 ) then
TitanQuests_Details_ScrollChild_DescriptionTitle:SetPoint("TOPLEFT", "TitanQuests_Details_ScrollChild_Objective"..numObjectives, "BOTTOMLEFT", 0, -10);
else
if ( questTimer ) then
TitanQuests_Details_ScrollChild_DescriptionTitle:SetPoint("TOPLEFT", "TitanQuests_Details_ScrollChild_TimerText", "BOTTOMLEFT", 0, -10);
else
TitanQuests_Details_ScrollChild_DescriptionTitle:SetPoint("TOPLEFT", "TitanQuests_Details_ScrollChild_ObjectivesText", "BOTTOMLEFT", 0, -10);
end
end
if ( questDescription ) then
TitanQuests_Details_ScrollChild_QuestDescription:SetText(questDescription);
QuestFrame_SetAsLastShown(TitanQuests_Details_ScrollChild_QuestDescription,TitanQuests_Details_ScrollChild_SpacerFrame);
end
local numRewards = GetNumQuestLogRewards();
local numChoices = GetNumQuestLogChoices();
local money = GetQuestLogRewardMoney();
if ( (numRewards + numChoices + money) > 0 ) then
TitanQuests_Details_ScrollChild_RewardTitleText:Show();
QuestFrame_SetAsLastShown(TitanQuests_Details_ScrollChild_RewardTitleText,TitanQuests_Details_ScrollChild_SpacerFrame);
else
TitanQuests_Details_ScrollChild_RewardTitleText:Hide();
end
TitanQuests_Items_Update("TitanQuests_Details_ScrollChild_");
TitanQuests_Details_ScrollScrollBar:SetValue(0);
TitanQuests_Details_Scroll:UpdateScrollChildRect();
TitanQuests_Details_AbandonButton:SetText(ABANDON_QUEST);
if ( GetQuestLogPushable() ) then
TitanQuests_Details_ShareButton:Enable();
TitanQuests_Details_ShareButton:SetText(TITAN_QUESTS_DETAILS_SHARE_BUTTON_TEXT);
else
TitanQuests_Details_ShareButton:Disable();
TitanQuests_Details_ShareButton:SetText(TITAN_QUESTS_DETAILS_SHARE_BUTTON_TEXT);
end
-- Corgi: ATTN
if ( GetNumQuestLeaderBoards(this.value[2]) > 0) then
if ( IsQuestWatched(this.value[2]) ) then
TitanQuests_Details_WatchButton:Disable();
elseif ( GetNumQuestWatches() >= MAX_WATCHABLE_QUESTS ) then
TitanQuests_Details_WatchButton:Disable();
else
TitanQuests_Details_WatchButton:Enable();
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -