📄 titanguild.lua
字号:
local id = TitanUtils_GetButton(id, true);
local NumGuild = 0;
local guild_name = "";
local guild_rank = "";
local guild_rankIndex = "";
local guild_level = "";
local guild_class = "";
local guild_zone = " . ";
local guild_group = "";
local guild_note = "";
local guild_officernote = "";
local guild_online = "";
local guildIndex;
local buttonRichText = "";
if (IsInGuild()) then
NumGuild = GetNumGuildMembers();
-- create string for Titan bar display
if (GetGuildRosterShowOffline()) then
if (numGuildOnlineFiltered > 0) then
buttonRichText = format(TITAN_GUILD_BUTTON_TEXT_FILTERED, TitanUtils_GetGreenText(numGuildOnline), TitanUtils_GetNormalText(numGuildOnlineFiltered), TitanUtils_GetHighlightText(NumGuild));
else
buttonRichText = format(TITAN_GUILD_BUTTON_TEXT, TitanUtils_GetGreenText(numGuildOnline), TitanUtils_GetHighlightText(NumGuild));
end
else
if (numGuildOnlineFiltered > 0) then
buttonRichText = format(TITAN_GUILD_BUTTON_TEXT, TitanUtils_GetGreenText(numGuildOnline), TitanUtils_GetNormalText(numGuildOnlineFiltered));
else
buttonRichText = format(TITAN_GUILD_BUTTON_TEXT_ONLINEONLY_FORMAT, TitanUtils_GetGreenText(numGuildOnline));
end
end
-- return button text
return TITAN_GUILD_BUTTON_LABEL, buttonRichText;
else
return TITAN_GUILD_BUTTON_LABEL, TITAN_GUILD_NOT_IN_GUILD;
end
end
----------------------------------------------------------------------
-- TitanPanelGuildButton_GetTooltipText()
----------------------------------------------------------------------
function TitanPanelGuildButton_GetTooltipText()
local NumGuild = 0;
local tooltipRichText = "";
local guild_name = "";
local guild_rank = "";
local guild_rankIndex = "";
local guild_level = "";
local guild_class = "";
local guild_zone = "";
local guild_group = "";
local guild_note = "";
local guild_officernote = "";
local guild_online = "";
local guildIndex;
local richRankText = " ";
local showWarning = 0;
local rowCount = 0;
-- player is in a guild, construct the tooltip text
if (IsInGuild()) then
tooltipRichText = TitanUtils_GetNormalText(GetGuildInfo("player"));
tooltipRichText = tooltipRichText.."\t"..TitanUtils_GetGreenText(TITAN_GUILD_TOOLTIP_HINT_TEXT); -- add hint
--if (TitanGetVar(TITAN_GUILD_ID, "SortByValue")) then
-- tooltipRichText = tooltipRichText.."\t".."Sorted by: "..TitanGetVar(TITAN_GUILD_ID, "SortByValue").."\n";
--else
tooltipRichText = tooltipRichText.."\n";
--end
-- display current filters
if (TitanGetVar(TITAN_GUILD_ID, "FilterMyZone")) then
tooltipRichText = tooltipRichText..TITAN_GUILD_MENU_FILTER_MYZONE..": "..GetZoneText().."\n";
end
if (TitanGetVar(TITAN_GUILD_ID, "FilterMyLevel")) then
tooltipRichText = tooltipRichText..TITAN_GUILD_MENU_FILTER_MYLEVEL..": "..TitanPanelGuildButton_GetMinLevel().."-"..TitanPanelGuildButton_GetMaxLevel().."\n";
end
if (TitanGetVar(TITAN_GUILD_ID, "FilterClasses")) then
tooltipRichText = tooltipRichText..TITAN_GUILD_MENU_FILTER_CLASS..": "..TitanGetVar(TITAN_GUILD_ID, "FilterClasses").."\n";
end
NumGuild = GetNumGuildMembers();
for guildIndex=1, NumGuild do
guild_name, guild_rank, guild_rankIndex, guild_level, guild_class, guild_zone, guild_group, guild_note, guild_officernote, guild_online = GetGuildRosterInfo(guildIndex);
richRankText = TitanPanelGuildButton_ColorRankNameText(guild_rankIndex, guild_rank);
-- on game load, the zone info is sometimes unknown
if (not guild_zone) then
guild_zone = " . ";
end
if ( guild_online ) then -- EMERALD: Changed colors and whatnot here
-- check for player zone and level filters
if TitanPanelGuildButton_IsPassFilter(guild_zone, guild_level, guild_class) then
if (TitanGetVar(TITAN_GUILD_ID, "ShowTooltipName")) then
tooltipRichText = tooltipRichText..TitanUtils_GetColoredText(guild_name, TG.Color["yellow"]);
end
if (TitanGetVar(TITAN_GUILD_ID, "ShowTooltipNote")) then
if (guild_note ~= "") then
tooltipRichText = tooltipRichText..TitanUtils_GetColoredText(" ("..guild_note..")", TG.Color["gray"]).."\t";
else
tooltipRichText = tooltipRichText.."\t";
end
else
tooltipRichText = tooltipRichText.."\t";
end
if (TitanGetVar(TITAN_GUILD_ID, "ShowTooltipZone")) then
tooltipRichText = tooltipRichText.." "..TitanUtils_GetColoredText(guild_zone, TG.Color["cyan"]);
end
if (TitanGetVar(TITAN_GUILD_ID, "ShowTooltipLevel")) then
tooltipRichText = tooltipRichText.." "..TitanUtils_GetColoredText(guild_level, TG.Color["orange"]);
end
if (TitanGetVar(TITAN_GUILD_ID, "ShowTooltipClass")) then
tooltipRichText = tooltipRichText.." "..TitanUtils_GetColoredText(guild_class, TG.Color["white"]);
end
if (TitanGetVar(TITAN_GUILD_ID, "ShowTooltipRank")) then
tooltipRichText = tooltipRichText.." "..richRankText;
end
tooltipRichText = tooltipRichText.."\n";
rowCount = rowCount+1
end
end
-- if the tooltip limit is going to be exceeded, stop
if (rowCount == TITAN_GUILD_TOOLTIP_THRESHOLD) then
showWarning = 1
break;
end
end
-- add warning if too large
if (showWarning == 1) then
tooltipRichText = tooltipRichText.."\n"..TitanUtils_GetRedText(TITAN_GUILD_TOOLTIP_WARNING);
end
return tooltipRichText;
else
-- show a default message if the player is not in a guild
return TitanUtils_GetNormalText(TITAN_GUILD_NOT_IN_GUILD);
end
end
----------------------------------------------------------------------
-- Utility functions
----------------------------------------------------------------------
TG = {};
TG.Color = {};
TG.Color["red"] = { r = 1.0, g = 0.0, b = 0.0 } TG.Color["green"] = { r = 0.0, g = 1.0, b = 0.0 } TG.Color["blue"] = { r = 0.0, g = 0.0, b = 1.0 } TG.Color["white"] = { r = 1.0, g = 1.0, b = 1.0 } TG.Color["magenta"] = { r = 1.0, g = 0.0, b = 1.0 } TG.Color["yellow"] = { r = 1.0, g = 1.0, b = 0.0 } TG.Color["cyan"] = { r = 0.0, g = 1.0, b = 1.0 } TG.Color["gray"] = { r = 0.7, g = 0.7, b = 0.7 } TG.Color["orange"] = { r = 1.0, g = 0.6, b = 0.0 }
----------------------------------------------------------------------
-- TitanPanelGuildButton_SortGuildRoster()
-- executes the SortGuildRoster function and updates the button
----------------------------------------------------------------------
function TitanPanelGuildButton_SortGuildRoster()
-- if a stored sort value exists, then sort
--guildPrintDebugMessage(TitanGetVar(TITAN_GUILD_ID, "SortByValue"));
if (TitanGetVar(TITAN_GUILD_ID, "SortByValue")) then
SortGuildRoster(string.lower(TitanGetVar(TITAN_GUILD_ID, "SortByValue")));
end
--guildPrintDebugMessage("Done sorting");
end
----------------------------------------------------------------------
-- TitanPanelGuildButton_SetSortByValue()
-- persist the user's sort selection
----------------------------------------------------------------------
function TitanPanelGuildButton_SetSortByValue()
TitanSetVar(TITAN_GUILD_ID, "SortByValue", this.value);
-- conduct the sort
TitanPanelGuildButton_SortGuildRoster()
TitanPanelGuildButton_CloseMenu();
TitanPanelGuildButton_ListInitMaster();
TitanPanelButton_UpdateButton(TITAN_GUILD_ID);
TitanPanelButton_UpdateTooltip();
end
----------------------------------------------------------------------
-- TitanPanelGuildButton_SetTooltipChoice()
-- used to config the tooltip output
----------------------------------------------------------------------
function TitanPanelGuildButton_SetTooltipChoice()
local tooltipConfigVar = "ShowTooltip"..this.value;
TitanToggleVar(TITAN_GUILD_ID, tooltipConfigVar);
end
----------------------------------------------------------------------
-- TitanPanelGuildButton_CloseMenu()
----------------------------------------------------------------------
function TitanPanelGuildButton_CloseMenu()
TitanPanelRightClickMenu_Close()
end
-- toggle the advanced menuing
function TitanPanelGuildButton_ToggleAdvancedMenus()
TitanToggleVar(TITAN_GUILD_ID, "ShowAdvancedMenus");
TitanPanelGuildButton_ListInitMaster()
TitanPanelButton_UpdateButton(TITAN_GUILD_ID);
end
-- toggle the advanced menuing
function TitanPanelGuildButton_ToggleShowMenuOptions()
TitanToggleVar(TITAN_GUILD_ID, "ShowMenuOptions");
TitanPanelGuildButton_ListInitMaster();
TitanPanelButton_UpdateButton(TITAN_GUILD_ID);
end
-- toggle filter on player level menuing
function TitanPanelGuildButton_ToggleFilterMyLevel()
TitanToggleVar(TITAN_GUILD_ID, "FilterMyLevel");
TitanPanelGuildButton_CloseMenu();
TitanPanelGuildButton_ListInitMaster();
TitanPanelButton_UpdateButton(TITAN_GUILD_ID);
end
-- toggle filter on player zone advanced menuing
function TitanPanelGuildButton_ToggleFilterMyZone()
TitanToggleVar(TITAN_GUILD_ID, "FilterMyZone");
TitanPanelGuildButton_CloseMenu();
TitanPanelGuildButton_ListInitMaster();
TitanPanelButton_UpdateButton(TITAN_GUILD_ID);
end
-- toggle the roster updates
function TitanPanelGuildButton_ToggleRosterUpdates()
TitanToggleVar(TITAN_GUILD_ID, "DisableRosterUpdates");
TitanPanelGuildButton_ListInitMaster()
TitanPanelButton_UpdateButton(TITAN_GUILD_ID);
end
-- add class filters
function TitanPanelGuildButton_AddClassFilter()
--local lClasses = TitanGetVar(TITAN_GUILD_ID, "FilterClasses");
--table.insert(lClasses, classValue);
--TitanSetVar(TITAN_GUILD_ID, "FilterClasses", lClasses);
if (this.value == "All") then
TitanSetVar(TITAN_GUILD_ID, "FilterClasses", TITAN_NIL);
else
TitanSetVar(TITAN_GUILD_ID, "FilterClasses", this.value);
end
TitanPanelGuildButton_CloseMenu();
TitanPanelGuildButton_ListInitMaster();
TitanPanelButton_UpdateButton(TITAN_GUILD_ID);
end
-- send a /w chat command
function TitanPanelGuildButton_GuildWhisper()
if ( not ChatFrameEditBox:IsVisible() ) then
ChatFrame_OpenChat("/w".." "..this.value.." ");
else
ChatFrameEditBox:SetText("/w".." "..this.value.." ");
end
end
-- send a /g chat command
function TitanPanelGuildButton_OpenGuildChat()
if ( not ChatFrameEditBox:IsVisible() ) then
ChatFrame_OpenChat("/g");
else
ChatFrameEditBox:SetText("/g");
end
end
-- send a /o chat command
function TitanPanelGuildButton_OpenGuildOfficerChat()
if ( not ChatFrameEditBox:IsVisible() ) then
ChatFrame_OpenChat("/o");
else
ChatFrameEditBox:SetText("/o");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -