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

📄 titanpvpinfo.lua

📁 时间太紧了
💻 LUA
📖 第 1 页 / 共 2 页
字号:
TITAN_PVPINFO_ID = "PVPinfo";
TITAN_PVPINFO_STATE = TITAN_PVPINFO_STATE_INACTIVE;
TITAN_PVPINFO_STATE_TEXT = TITAN_PVPINFO_STATE_INACTIVE;
TITAN_PVPINFO_PVP_FLAG = TITAN_PVPINFO_FLAG_OFF;
TITAN_PVPINFO_JUSTACTIVE = nil;

TITAN_PVPINFO_PVP_FLAG_TIME = 0;
TITAN_PVPINFO_COOLDOWN_TIME = 300;
TITAN_PVPINFO_REMAINING_TIME = 0;
TITAN_PVPINFO_ELAPSED_TIME = 0;
TITAN_PVPINFO_SESSION_TIME = 0;
TITAN_PVPINFO_ACTIVATE_TIME = 0;
TITAN_PVPINFO_FREQUENCY = 1;

TITAN_PVPINFO_STATE_ACTIVERED = TitanUtils_GetRedText(TITAN_PVPINFO_STATE_ACTIVE)
TITAN_PVPINFO_STATE_ACTIVEGREEN = TitanUtils_GetGreenText(TITAN_PVPINFO_STATE_ACTIVE)
TITAN_PVPINFO_STATE_ACTIVEWHITE = TitanUtils_GetHighlightText(TITAN_PVPINFO_STATE_ACTIVE)
TITAN_PVPINFO_STATE_INACTIVERED = TitanUtils_GetRedText(TITAN_PVPINFO_STATE_INACTIVE)
TITAN_PVPINFO_STATE_INACTIVEGREEN = TitanUtils_GetGreenText(TITAN_PVPINFO_STATE_INACTIVE)
TITAN_PVPINFO_STATE_INACTIVEWHITE = TitanUtils_GetHighlightText(TITAN_PVPINFO_STATE_INACTIVE)
TITAN_PVPINFO_STATE_INACTIVEYELLOW = TitanUtils_GetNormalText(TITAN_PVPINFO_STATE_INACTIVE)
TITAN_PVPINFO_STATE_ONRED = TitanUtils_GetRedText(TITAN_PVPINFO_STATE_ON)
TITAN_PVPINFO_STATE_ONGREEN = TitanUtils_GetGreenText(TITAN_PVPINFO_STATE_ON)
TITAN_PVPINFO_STATE_ONWHITE = TitanUtils_GetHighlightText(TITAN_PVPINFO_STATE_ON)
TITAN_PVPINFO_STATE_OFFRED = TitanUtils_GetRedText(TITAN_PVPINFO_STATE_OFF)
TITAN_PVPINFO_STATE_OFFGREEN = TitanUtils_GetGreenText(TITAN_PVPINFO_STATE_OFF)
TITAN_PVPINFO_STATE_OFFWHITE = TitanUtils_GetHighlightText(TITAN_PVPINFO_STATE_OFF)
TITAN_PVPINFO_STATE_OFFYELLOW = TitanUtils_GetNormalText(TITAN_PVPINFO_STATE_OFF)

TITAN_PVPINFO_DEBUGCOUNT = 1;

function TitanPanelPVPinfoButton_OnLoad()
	this.registry = { 
		id = TITAN_PVPINFO_ID,
		builtIn_c = 1,
		menuText = TITAN_PVPINFO_MENU_TEXT, 
		buttonTextFunction = "TitanPanelPVPinfoButton_GetButtonText", 
		tooltipTitle = TITAN_PVPINFO_TOOLTIP,
		tooltipTextFunction = "TitanPanelPVPinfoButton_GetTooltipText",
		frequency = TITAN_PVPINFO_FREQUENCY,
		savedVariables = {
			PVPActivateTime = 0,
			PVPInCooldown = 0,
			PVPTimerColour = TITAN_NIL,
			PVPStateColour = TITAN_NIL,
			PVPShortTxt = TITAN_NIL,
			PVPCollapse = TITAN_NIL,
			PVPShiftClick = TITAN_NIL,
			ShowLabelText = 1,
		}
	};
	
	this:RegisterEvent("UNIT_PVP_UPDATE");
	this:RegisterEvent("CHAT_MSG_SYSTEM");
	
	if (UnitIsPVP("player")==1) then
		TITAN_PVPINFO_STATE=TITAN_PVPINFO_STATE_ACTIVE;
	end
end

function TitanPanelPVPinfoButton_OnEvent(event)
	if (event == "UNIT_PVP_UPDATE") then
		if (arg1 == "player") then
			if UnitIsPVP("player") then
				TitanPanelPVPinfoButton_PVPActivate();
				if ((UnitIsPVP("target")) and (UnitFactionGroup("target")~=UnitFactionGroup("player"))) then
					TitanPanelPVPinfoButton_PVPCooldownStart();
				end
			else
				TitanPanelPVPinfoButton_PVPDeactivate();
			end
		end
	elseif ((event == "CHAT_MSG_SYSTEM") and (string.find(arg1, TITAN_PVPINFO_OFF_SEARCH))) then
		TitanPanelPVPinfoButton_PVPCooldownStart();
	elseif ((event == "CHAT_MSG_SYSTEM") and (string.find(arg1, TITAN_PVPINFO_ON_SEARCH))) then
		TitanPanelPVPinfoButton_PVPRestart();
	end
end

function TitanPanelPVPinfoButton_PVPActivate()
	TITAN_PVPINFO_STATE=TITAN_PVPINFO_STATE_ACTIVE;
	TITAN_PVPINFO_PVP_FLAG=TITAN_PVPINFO_FLAG_OFF;
	TITAN_PVPINFO_REMAINING_TIME = 0;
	TITAN_PVPINFO_ELAPSED_TIME = 0;
	TITAN_PVPINFO_ACTIVATE_TIME = TitanUtils_GetTotalTime();
	if (TITAN_PVPINFO_ACTIVATE_TIME) then
		TitanSetVar(TITAN_PVPINFO_ID, "PVPActivateTime", TITAN_PVPINFO_ACTIVATE_TIME);
	end
end

function TitanPanelPVPinfoButton_PVPCooldownStart()
	if (TITAN_PVPINFO_STATE == TITAN_PVPINFO_STATE_ACTIVE) then
		TITAN_PVPINFO_PVP_FLAG = TITAN_PVPINFO_FLAG_ON;
		TITAN_PVPINFO_REMAINING_TIME = TITAN_PVPINFO_COOLDOWN_TIME;
		TITAN_PVPINFO_PVP_FLAG_TIME = TitanUtils_GetTotalTime();
		TitanSetVar(TITAN_PVPINFO_ID, "PVPInCooldown", TITAN_PVPINFO_PVP_FLAG_TIME);
		TitanSetVar(TITAN_PVPINFO_ID, "PVPActivateTime", TITAN_PVPINFO_ACTIVATE_TIME);
	end
end

function TitanPanelPVPinfoButton_PVPRestart()
	TITAN_PVPINFO_STATE=TITAN_PVPINFO_STATE_ACTIVE;
	TITAN_PVPINFO_PVP_FLAG=TITAN_PVPINFO_FLAG_OFF;
	TITAN_PVPINFO_REMAINING_TIME = 0;
	TitanSetVar(TITAN_PVPINFO_ID, "PVPInCooldown", nil);
end
	
	
function TitanPanelPVPinfoButton_PVPDeactivate()
	TITAN_PVPINFO_STATE=TITAN_PVPINFO_STATE_INACTIVE;
	TITAN_PVPINFO_PVP_FLAG=TITAN_PVPINFO_FLAG_OFF;
	TITAN_PVPINFO_REMAINING_TIME = 0;
	TITAN_PVPINFO_SESSION_TIME = TITAN_PVPINFO_SESSION_TIME + TITAN_PVPINFO_ELAPSED_TIME;
	TITAN_PVPINFO_ELAPSED_TIME = 0;
	TITAN_PVPINFO_ACTIVATE_TIME = 0;
	TitanSetVar(TITAN_PVPINFO_ID, "PVPActivateTime", nil);
	TitanSetVar(TITAN_PVPINFO_ID, "PVPInCooldown", nil);
end


function TitanPanelPVPinfoButton_OnUpdate()
	if (UnitIsPVP("player")==1) then
		TITAN_PVPINFO_STATE=TITAN_PVPINFO_STATE_ACTIVE;
	end

	if TitanGetVar(TITAN_PVPINFO_ID, "PVPInCooldown") then
		TITAN_PVPINFO_PVP_FLAG_TIME = TitanGetVar(TITAN_PVPINFO_ID, "PVPInCooldown");
		TITAN_PVPINFO_PVP_FLAG = TITAN_PVPINFO_FLAG_ON;
		TITAN_PVPINFO_ACTIVATE_TIME = TitanGetVar(TITAN_PVPINFO_ID, "PVPActivateTime");
	end

	if (TitanUtils_GetTotalTime() and TitanGetVar(TITAN_PVPINFO_ID, "PVPActivateTime")) then
		if (TITAN_PVPINFO_PVP_FLAG == TITAN_PVPINFO_FLAG_ON) then
			TITAN_PVPINFO_REMAINING_TIME = TITAN_PVPINFO_COOLDOWN_TIME - (TitanUtils_GetTotalTime() - TITAN_PVPINFO_PVP_FLAG_TIME);
			if (TITAN_PVPINFO_REMAINING_TIME < 0) then
				TITAN_PVPINFO_REMAINING_TIME = 0;
			end
		end
		if (TITAN_PVPINFO_STATE == TITAN_PVPINFO_STATE_ACTIVE) then
			TITAN_PVPINFO_ELAPSED_TIME = TitanUtils_GetTotalTime() - TitanGetVar(TITAN_PVPINFO_ID, "PVPActivateTime");
		end
	end
end

function TitanPanelPVPinfoButton_OnLeftClick(button)
	if TitanGetVar(TITAN_PVPINFO_ID, "PVPShiftClick") then
		if (IsShiftKeyDown()) then
			TogglePVP();
		end
	else
		TogglePVP();
	end
end

function TitanPanelPVPinfoButton_debug(msg)
	DEFAULT_CHAT_FRAME:AddMessage("Titan[PVPinfo]debug-------> ".. msg);
end

function TitanPanelPVPinfoButton_ConvertTime(time)
	local hTemp = 0;
	local mTemp = 0;
	local sTemp = 0;
	if (time > 3599) then
		hTemp = floor(time/3600);
		mTemp = floor((time/60) - (hTemp*60))
		sTemp = (time - (hTemp*3600) - (mTemp*60));
		if (mTemp < 10) then
			mTemp = "0"..mTemp;
		end
		if (sTemp < 10) then
			sTemp = "0"..sTemp;
		end
		return hTemp..":"..mTemp..":"..sTemp;
	else
		mTemp = floor(time/60);
		sTemp = (time - (mTemp*60));
		if (sTemp < 10) then
			sTemp = "0"..sTemp;
		end
		return mTemp..":"..sTemp;
	end
end

function TitanPanelPVPinfoButton_GetButtonText(id)
	local button, id = TitanUtils_GetButton(id, true);
	local buttonRichText;
	
	if (TITAN_PVPINFO_PVP_FLAG == TITAN_PVPINFO_FLAG_ON) then
		PVPINFO_TIME=TitanPanelPVPinfoButton_ConvertTime(ceil(TITAN_PVPINFO_REMAINING_TIME));
		if (TitanGetVar(TITAN_PVPINFO_ID, "PVPTimerColour")=="Green") then
			buttonRichText = TitanUtils_GetGreenText(PVPINFO_TIME);
		elseif (TitanGetVar(TITAN_PVPINFO_ID, "PVPTimerColour")=="White") then
			buttonRichText = TitanUtils_GetHighlightText(PVPINFO_TIME);
		elseif (TitanGetVar(TITAN_PVPINFO_ID, "PVPTimerColour")=="Yellow") then
			buttonRichText = TitanUtils_GetNormalText(PVPINFO_TIME);
		else
			buttonRichText = TitanUtils_GetRedText(PVPINFO_TIME);
		end
	else
		if (UnitIsPVP("player")==1) then
			TITAN_PVPINFO_STATE=TITAN_PVPINFO_STATE_ACTIVE;
			if TitanGetVar(TITAN_PVPINFO_ID, "PVPShortTxt") then
				TITAN_PVPINFO_STATE_TEXT=TITAN_PVPINFO_STATE_ON;
			else
				TITAN_PVPINFO_STATE_TEXT=TITAN_PVPINFO_STATE_ACTIVE;
			end
				if (TitanGetVar(TITAN_PVPINFO_ID, "PVPStateColour")=="greenyellow") then
					buttonRichText = TitanUtils_GetGreenText(TITAN_PVPINFO_STATE_TEXT);
				elseif (TitanGetVar(TITAN_PVPINFO_ID, "PVPStateColour")=="redgreen") then
					buttonRichText = TitanUtils_GetRedText(TITAN_PVPINFO_STATE_TEXT);
				else -- TitanGetVar(TITAN_PVPINFO_ID, "PVPStateColour")=="whitegreen" or "whitewhite"
					buttonRichText = TitanUtils_GetHighlightText(TITAN_PVPINFO_STATE_TEXT);
				end
		else
			TITAN_PVPINFO_STATE=TITAN_PVPINFO_STATE_INACTIVE;
			TitanSetVar(TITAN_PVPINFO_ID, "PVPInCooldown", nil);
			if TitanGetVar(TITAN_PVPINFO_ID, "PVPCollapse") then
				return "o";

⌨️ 快捷键说明

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