⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 titandamagemeters.lua

📁 时间太紧了
💻 LUA
📖 第 1 页 / 共 2 页
字号:
					UIDropDownMenu_AddButton(info,UIDROPDOWNMENU_MENU_LEVEL);
				end
			end

			if (UIDROPDOWNMENU_MENU_VALUE == "Ranks") then
				local quant;
				for quant = 1, DamageMeters_Quantity_MAX do
					info = {};
					info.text = DamageMeters_GetQuantityString(quant, true);
					info.value = quant;
					info.func = TitanPanelDamageMeters_SetRankOption;
					info.checked = TitanPanelDamageMeters_IsRankShown(quant);
					info.keepShownOnClick = 1;
					UIDropDownMenu_AddButton(info,UIDROPDOWNMENU_MENU_LEVEL);
				end
			end

			if (UIDROPDOWNMENU_MENU_VALUE == "Leaders") then
				local quant;
				for quant = 1, DamageMeters_Quantity_MAX do
					info = {};
					info.text = DamageMeters_GetQuantityString(quant, true);
					info.value = quant;
					info.func = TitanPanelDamageMeters_SetLeaderOption;
					info.checked = TitanPanelDamageMeters_IsLeaderShown(quant);
					info.keepShownOnClick = 1;
					UIDropDownMenu_AddButton(info,UIDROPDOWNMENU_MENU_LEVEL);
				end
			end
		else
			-- Menu title
			TitanPanelRightClickMenu_AddTitle(TITAN_DAMAGEMETERS_MENU_TEXT);
			TitanPanelRightClickMenu_AddCommand("Reset Window Position",TITAN_DAMAGEMETERS_ID, "DamageMeters_ResetPos");
			TitanPanelRightClickMenu_AddCommand("Clear List",TITAN_DAMAGEMETERS_ID, "DamageMeters_Clear");

			-- 	A blank line in the menu
			TitanPanelRightClickMenu_AddSpacer();

			-- 	Generic function to toggle icon
			TitanPanelRightClickMenu_AddToggleIcon(TITAN_DAMAGEMETERS_ID);
			-- 	Generic function to toggle label text
			TitanPanelRightClickMenu_AddToggleLabelText(TITAN_DAMAGEMETERS_ID);

			-- 	A blank line in the menu
			TitanPanelRightClickMenu_AddSpacer();

			-- Value menu
			info = {};
			info.text = "Values";
			info.hasArrow = 1;
			UIDropDownMenu_AddButton(info);

			-- Rank menu
			info = {};
			info.text = "Ranks";
			info.hasArrow = 1;
			UIDropDownMenu_AddButton(info);

			-- Leaders menu
			info = {};
			info.text = "Leaders";
			info.hasArrow = 1;
			UIDropDownMenu_AddButton(info);

			-- 	A blank line in the menu
			TitanPanelRightClickMenu_AddSpacer();

			-- 	Generic function to hide the plugin
			TitanPanelRightClickMenu_AddCommand(TITAN_PANEL_MENU_HIDE, TITAN_DAMAGEMETERS_ID, TITAN_PANEL_MENU_FUNC_HIDE);
		end
	end
end

-- Setup Right Click Menu For Right Side Button

function TitanPanelRightClickMenu_PrepareDamageMetersRightMenu()
	if (TITAN_AND_DAMAGEMETERS_LOADED == 2) then
		TitanPanelRightClickMenu_AddTitle(TITAN_DAMAGEMETERSRIGHT_MENU_TEXT);	

		TitanPanelRightClickMenu_AddCommand("Reset Window Position",TITAN_DAMAGEMETERS_ID, "DamageMeters_ResetPos");
		TitanPanelRightClickMenu_AddCommand("Clear List",TITAN_DAMAGEMETERS_ID, "DamageMeters_Clear");

		-- 	Generic function to hide the plugin
		TitanPanelRightClickMenu_AddCommand(TITAN_PANEL_MENU_HIDE, TITAN_DAMAGEMETERSRIGHT_ID, TITAN_PANEL_MENU_FUNC_HIDE);
	end
end


-- Glue

function TitanDMPrintD(msg)
	DEFAULT_CHAT_FRAME:AddMessage(msg,0.50,0.50,1.00);
end

function IsDMLoaded()	-- Renamed from GetStatus() to prevent possible conflicts with Titan Mod Support Project Core Functions

	local name, title, notes, enabled, loadable, reason, security = GetAddOnInfo("DamageMeters")
	local _, _, _, titanEnabled, _, _, _ = GetAddOnInfo("Titan")

	-- Dand: Some mod called Bhaldie Infobar actually defines this function. :|
	-- Seems generally better to use the GetAddOnInfo function anyway.
	--if not TitanPanelButton_UpdateButton then	-- If Titan is not running
	if not titanEnabled then	-- If Titan is not running
		if not (enabled == 1) then						-- If DamageMeters is not running
			TitanDMPrintD("DamageMeters: DamageMeters Not Loaded.");	-- Print in the chat channel
			TitanDMPrintD("DamageMeters: Titan Not Loaded.");		-- for both mods
			return 0;							-- Return 0
		else
			TitanDMPrintD("DamageMeters: Titan Not Loaded.");		-- Otherwise just let us know that Titan is not running
			TitanDMPrintD("DamageMeters: Titan Plugin Not Available");	-- the plugin will not be available
			TitanDMPrintD("DamageMeters: DamageMeters Loaded OK.");		-- but that DamageMeters loaded ok,
			return 1;							-- and return 1
		end

	elseif (enabled == 1) then			-- Otherwise Titan is running, so check DamageMeters
	--	TitanDMPrintD("DamageMeters: Titan Loaded OK.");		-- and if its running print in the chat channel
	--	TitanDMPrintD("DamageMeters: Titan Plugin Available");		-- for the plugin
	--	TitanDMPrintD("DamageMeters: DamageMeters Loaded OK.");		-- and for both mods
		return 2;							-- return 2
	else						-- otherwise Titan is running but DamageMeters is not
		TitanDMPrintD("DamageMeters: DamageMetersNot Loaded.");		-- so let us know
		return 3;							-- and return 3
	end
end

-- Utility functions

function TitanPanelDamageMeters_SetValueOption()
	if (TITAN_AND_DAMAGEMETERS_LOADED == 2) then
		shownValues = TitanGetVar(TITAN_DAMAGEMETERS_ID, "shownValues");
		if (shownValues) then
			if (nil ~= shownValues[this.value]) then
				shownValues[this.value] = not shownValues[this.value];
			else
				shownValues[this.value] = true;
			end
		end	
	end
end

function TitanPanelDamageMeters_SetRankOption()
	if (TITAN_AND_DAMAGEMETERS_LOADED == 2) then
		shownRanks = TitanGetVar(TITAN_DAMAGEMETERS_ID, "shownRanks");
		if (shownRanks) then
			if (nil ~= shownRanks[this.value]) then
				shownRanks[this.value] = not shownRanks[this.value];
			else
				shownRanks[this.value] = true;
			end
		end	
	end
end

function TitanPanelDamageMeters_SetLeaderOption()
	if (TITAN_AND_DAMAGEMETERS_LOADED == 2) then
		shownLeaders = TitanGetVar(TITAN_DAMAGEMETERS_ID, "shownLeaders");
		if (shownLeaders) then
			if (nil ~= shownLeaders[this.value]) then
				shownLeaders[this.value] = not shownLeaders[this.value];
			else
				shownLeaders[this.value] = true;
			end
		end	
	end
end

function TitanPanelDamageMeters_IsValueShown(quant)
	if (TITAN_AND_DAMAGEMETERS_LOADED == 2) then
		shownValues = TitanGetVar(TITAN_DAMAGEMETERS_ID, "shownValues");
		if (shownValues) then
			if (shownValues[quant]) then
				return shownValues[quant];
			end
		end
	
		return false;
	end
end

function TitanPanelDamageMeters_IsRankShown(quant)
	if (TITAN_AND_DAMAGEMETERS_LOADED == 2) then
		shownRanks = TitanGetVar(TITAN_DAMAGEMETERS_ID, "shownRanks");
		if (shownRanks) then
			if (shownRanks[quant]) then
				return shownRanks[quant];
			end
		end
	
		return false;
	end
end

function TitanPanelDamageMeters_IsLeaderShown(quant)
	if (TITAN_AND_DAMAGEMETERS_LOADED == 2) then
		shownLeaders = TitanGetVar(TITAN_DAMAGEMETERS_ID, "shownLeaders");
		if (shownLeaders) then
			if (shownLeaders[quant]) then
				return shownLeaders[quant];
			end
		end
	
		return false;
	end
end

function TitanPanelDamageMeters_GetValue(quantity)
	if (TITAN_AND_DAMAGEMETERS_LOADED == 2) then
		return DamageMeters_GetQuantityValueString(quantity, UnitName("Player"));
	end
end

function TitanPanelDamageMeters_GetLeaderName(quant)
	if (TITAN_AND_DAMAGEMETERS_LOADED == 2) then
		for player, struct in DamageMeters_rankTables[DMT_ACTIVE] do
			if (struct[quant] == 1) then
				return player;
			end
		end

		return "-";
	end
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -