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

📄 tipbuddy.lua

📁 时间太紧了
💻 LUA
📖 第 1 页 / 共 5 页
字号:
		targettype.bgbcolor.b = 0.9;
		targettype.bgbcolor.a = 1;	
	end

	--TB_AddMessage("NU: "..targettype.bgcolor.r.." - "..targettype.bgcolor.g.." - "..targettype.bgcolor.b.." - "..targettype.bgcolor.a);
	if (TipBuddy_SavedVars["general"].blizdefault == 1) then
		GameTooltip:SetBackdropColor(TOOLTIP_DEFAULT_BACKGROUND_COLOR.r, TOOLTIP_DEFAULT_BACKGROUND_COLOR.g, TOOLTIP_DEFAULT_BACKGROUND_COLOR.b, 1);
		GameTooltip:SetBackdropBorderColor(0.8, 0.8, 0.9, 1);
	else
		GameTooltip:SetBackdropColor( targettype.bgcolor.r, targettype.bgcolor.g, targettype.bgcolor.b, targettype.bgcolor.a );
		GameTooltip:SetBackdropBorderColor( targettype.bgbcolor.r, targettype.bgbcolor.g, targettype.bgbcolor.b, targettype.bgbcolor.a );
	end
end


--------------------------------------------------------------------------------------------------------------------------------------
-- VISIBILITY
--------------------------------------------------------------------------------------------------------------------------------------
-- Target Types are:
-- pc_friend
-- pc_party
-- pc_enemy
-- npc_friend
-- npc_neutral
-- npc_enemy
-- pet_friend
-- pet_enemy

function TipBuddy_CheckValid_TargetType( type, unit )
	if (not type) then
		TB_AddMessage("BUG! NO TYPE FOUND!");
		return 1;
	end

	local targettype = TipBuddy_SavedVars[type];
	
	if (not TipBuddy_SavedVars[type]) then
		TB_AddMessage("BUG! NO SAVED VARS FOR: "..type);
		TipBuddy_SetFrame_BackgroundColor( "corpse", unit );
		return 1;			
	end
end

function TipBuddy_SetFrame_Visibility( type, unit, refresh )
	if (not unit) then
		return;	
	end

	if (TipBuddy_CheckValid_TargetType( type, unit )) then
		return 1;	
	end

	local targettype = TipBuddy_SavedVars[type];
	if ( targettype.off == 1 ) then
		if (GameTooltip:IsVisible()) then
			GameTooltip:Hide();	
			TB_AddMessage("GTT Hiding (SetFrame_Visibility)");
		end

		TipBuddy_ForceHide(TipBuddy_Main_Frame);
		if (not TipBuddy_Main_Frame:IsVisible()) then		
			TipBuddy_Main_Frame:Show();
			TipBuddy_Main_Frame:SetAlpha(1);
		end
		TipBuddy_SetFrame_TargetType( type, unit, refresh );
	else
		TipBuddy_ForceHide( TipBuddy_Main_Frame );
		--/script TipBuddy_SavedVars["general"].blizdefault = 1;
		if (TipBuddy_SavedVars["general"].blizdefault == 1) then
			return;
		else
			TipBuddy_SetFrame_TargetType( type, unit, refresh );
		end		
	end
end

function TipBuddy_SetFrame_TargetType( type, unit, refresh )
	if (not unit 
	--or TipBuddy.unitname == getglobal("GameTooltipTextLeft1"):GetText() 
	or not UnitExists(unit)) then
		return;	
	end
	--TB_AddMessage(unit);
	--TipBuddy.uiScale = TipBuddy_GetUIScale();
	--TipBuddy.xpoint, TipBuddy.xpos, TipBuddy.ypos = TipBuddy_GetFrameCursorOffset();
	--TipBuddy.anchor, TipBuddy.fanchor, TipBuddy.offset = TipBuddy_GetFrameAnchorPos();			

	TipBuddy.reaction = TipBuddy_GetUnitReaction( unit );

	local targettype = TipBuddy_SavedVars[type];

	--/script TipBuddy.uiScale = TipBuddy_GetUIScale();TipBuddy.xpoint, TipBuddy.xpos, TipBuddy.ypos = TipBuddy_GetFrameCursorOffset();TipBuddy.anchor, TipBuddy.fanchor, TipBuddy.offset = TipBuddy_GetFrameAnchorPos();GameTooltip_SetDefaultAnchor(GameTooltip, UIParent);GameTooltip:SetUnit(PlayerFrame.unit); TB_AddMessage(PlayerFrame.unit);
	if (TipBuddy_SavedVars.debug == 1 and TipBuddy.unitname) then
		--TB_AddMessage(TipBuddy.unitname.." == TT: "..GameTooltipTextLeft1:GetText());	
	end

	--if (TipBuddy.unitname ~= nil and getglobal("GameTooltipTextLeft1"):GetText() ~= nil and
	--string.find(getglobal("GameTooltipTextLeft1"):GetText(), TipBuddy.gtt_name)) then
	if (refresh) then
		--TB_AddMessage("!! lastline: "..TipBuddy.gtt_lastline..", numlines (stored): "..TipBuddy.gtt_numlines..", numlines (real): "..GameTooltip:NumLines());
		TipBuddy.refresh = 1;
		TB_AddMessage("!! REFRESH");
	else
		TB_AddMessage("!! CLEARING ALL DATA");
		TipBuddy.refresh = nil;
		TipBuddy.gtt_numlines = GameTooltip:NumLines();
		TipBuddy.gtt_lastline = 1;
		TipBuddy.gtt_xtra = nil;
		TipBuddy.gtt_name = "";
		TipBuddy.gtt_target = "";
		TipBuddy.gtt_guild = "";
		TipBuddy.gtt_level = "";
		TipBuddy.gtt_race = "";
		TipBuddy.gtt_class = "";
		TipBuddy.gtt_cityfac = "";
	end

	if (not TipBuddy.gtt_numlines) then
		TipBuddy.gtt_numlines = 0;	
	end

	TipBuddy_TargetInfo_CheckName( type, unit );
	TipBuddy_TargetInfo_TargetsTarget( type, unit );
	TipBuddy_TargetInfo_GetGuild( type, unit );
	TipBuddy_TargetInfo_GetClass( type, unit );
	TipBuddy_TargetInfo_GetLevel( type, unit );
	if (TipBuddy.refresh ~= 1) then
		TipBuddy_TargetInfo_ShowCityFaction( type, unit );
		--TipBuddy.gtt_civ = UnitIsCivilian(unit);
		TipBuddy_ConfirmLastLine(unit);
		if ( targettype.off ~= 1 ) then
			TipBuddy_GTT_GetExtraLines(TipBuddy.gtt_numlines);
		end
	end

	TipBuddy.unitname = (TipBuddy.gtt_namecolor..TipBuddy.gtt_name..TipBuddy.gtt_target);

	if ( targettype.off == 1 ) then
		TipBuddy_TargetName_Text:SetText(TipBuddy.gtt_namecolor..TipBuddy.gtt_name..TipBuddy.gtt_target);
		TipBuddy_TargetName_Text:Show();

		if ( targettype.gld == 1 ) then
			if (TipBuddy.gtt_guildcolor and TipBuddy.gtt_guild and TipBuddy.gtt_guild ~= "" ) then
				--TB_AddMessage(TB_RED_TXT.."Guild text = "..TB_YLW_TXT..TipBuddy.gtt_guild);
				TipBuddy_TargetGuild_Text:SetText(TipBuddy.gtt_guildcolor.."<"..TipBuddy.gtt_guild..TipBuddy.gtt_guildcolor..">");
				TipBuddy_TargetGuild_Text:Show();				
			else
				TipBuddy_TargetGuild_Text:Hide();
			end
		else
			TipBuddy_TargetGuild_Text:Hide();
		end
		if ( targettype.hth == 1 ) then
			TipBuddy_TargetFrameHealthBar:Show();
			--TB_AddMessage(unit);
			if (UnitMana( unit ) > 0) then
				TipBuddy_TargetFrameManaBar:Show();
			else
				TipBuddy_TargetFrameManaBar:Hide();
			end
			TipBuddy_UnitFrame_UpdateHealth( unit );
			TipBuddy_UnitFrame_UpdateMana( unit );
			TipBuddy_UpdateHealthText( TipBuddy_HealthText, type, unit );
			TipBuddy_UpdateManaText( TipBuddy_ManaText, type, unit );
		else
			TipBuddy_TargetFrameHealthBar:Hide();
			TipBuddy_TargetFrameManaBar:Hide();
		end
		if ( targettype.cfc == 1 and TipBuddy.gtt_cityfac ~= "" ) then
			TipBuddy_TargetCityFac_Text:SetText(tbcolor_cityfac..TipBuddy.gtt_cityfac);
			TipBuddy_TargetCityFac_Text:Show();
		else
			TipBuddy_TargetCityFac_Text:Hide();
		end
		if ( targettype.cls == 1 ) then
			if (TipBuddy.gtt_class == "" and TipBuddy.gtt_level == "") then
				TipBuddy_TargetClass_Text:Hide();
				TipBuddy_TargetLevel_Text:Hide();				
			elseif (TipBuddy.gtt_class and TipBuddy.gtt_class ~= "" ) then
				TipBuddy_TargetClass_Text:SetText(TipBuddy.gtt_race..TipBuddy.gtt_classcolor..TipBuddy.gtt_classlvlcolor..TipBuddy.gtt_class..TipBuddy.gtt_classcorpse);		
				TipBuddy_TargetClass_Text:Show();			
			else
				TipBuddy_TargetClass_Text:Hide();
				TipBuddy_TargetLevel_Text:Hide();			
			end

			TipBuddy_TargetLevel_Text:Show();
		else
			TipBuddy_TargetClass_Text:Hide();
			TipBuddy_TargetLevel_Text:Hide();
		end
		TipBuddy_TargetInfo_FindExtras();

		TipBuddy_FrameHeights_Initialize(type);
		TipBuddy_SetFrame_Width();
	else
		--/script TB_AddMessage(GameTooltipTextLeft1:GetHeight());
		--if (TipBuddy_SavedVars.debug == 1) then
		--	for i=1, 12, 1 do
		--		if (getglobal("GameTooltipTextLeft"..i):GetText()) then
		--			TB_AddMessage(TB_WHT_TXT..getglobal("GameTooltipTextLeft"..i):GetText())
		--		else
		--			TB_AddMessage(TB_BLE_TXT..i..": no")
		--		end			
		--	end			
		--end

		if (TipBuddy.refresh ~= 1) then
			--if (targettype.off == 2) then
				--GameTooltip:SetText(" ");
			--else
				for i=2, TipBuddy.gtt_numlines, 1 do
					local line = getglobal("GameTooltipTextLeft"..i);
					--local liner = getglobal("GameTooltipTextRight"..i);
					line:SetText("");
					line:Hide();
					--liner:SetText("");
					--liner:Hide();
				end
			--end
		end
		
		--/script TB_AddMessage(getglobal("GameTooltipTextLeft2"):GetText());

		local tipnum = 2;
		local tip = getglobal("GameTooltipTextLeft"..tipnum);

		--/script TipBuddy_SavedVars.npc_friend.off = 2
		if (targettype.off == 2) then
			GameTooltip.variables1 = {};
			GameTooltip.variables2 = {};
			if (not targettype.ebx1) then
				targettype.ebx1 = "";	
			end
			if (not targettype.ebx2) then
				targettype.ebx2 = "";	
			end
			local ebtext1 = targettype.ebx1;
			local ebtext2 = targettype.ebx2;
			for variable, value in TB_VARIABLE_FUNCTIONS do
				if (string.find(ebtext1, variable)) then
					GameTooltip.variables1[variable] = true;			
				end
				if (string.find(ebtext2, variable)) then
					GameTooltip.variables2[variable] = true;			
				end
			end
			
			local maxchar = 256;
			GameTooltipTextLeft1:SetTextColor(1, 1, 1);
			if ((not ebtext1) or ebtext1 == "") then 
				GameTooltipTextLeft1:SetText(" ");
				--GameTooltipTextLeft1:Show();
			else
				for var in GameTooltip.variables1 do
					ebtext1 = TB_VARIABLE_FUNCTIONS[var].func(ebtext1, unit);
				end
				if (maxchar and string.len(ebtext1) > maxchar) then
					ebtext1 = string.sub(ebtext1, 1, maxchar);
				end
				GameTooltipTextLeft1:SetText(ebtext1);	
				--GameTooltipTextLeft1:Show();
			end

			maxchar = 2048;
			if ((not ebtext2) or ebtext2 == "") then 
				--GameTooltipTextLeft2:SetText(" ");
				--GameTooltipTextLeft1:Show();
			else
				for var in GameTooltip.variables2 do
					ebtext2 = TB_VARIABLE_FUNCTIONS[var].func(ebtext2, unit);
				end
				if (maxchar and string.len(ebtext2) > maxchar) then
					ebtext2 = string.sub(ebtext2, 1, maxchar);
				end

				--strip out the empty lines
				ebtext2 = string.gsub(ebtext2, "|r\n|r\n", "|r\n");
				ebtext2 = string.gsub(ebtext2, "^|r\n", "");

				GameTooltipTextLeft2:SetText(ebtext2);	
				GameTooltipTextLeft2:Show();
				tipnum = tipnum + 1;
			end
		else

			GameTooltipTextLeft1:SetText(TipBuddy.gtt_namecolor..TipBuddy.gtt_name..TipBuddy.gtt_target);

			if ( targettype.gld == 1 and TipBuddy.gtt_guild and TipBuddy.gtt_guild ~= "" ) then
				if (TipBuddy.gtt_guild == nil) then
					return;	
				end
				tip = getglobal("GameTooltipTextLeft"..tipnum);
				if (tipnum > TipBuddy.gtt_numlines) then
					GameTooltip:AddLine(TipBuddy.gtt_guildcolor.."<"..TipBuddy.gtt_guild..TipBuddy.gtt_guildcolor..">".."|r");
				else
					tip:SetText(TipBuddy.gtt_guildcolor.."<"..TipBuddy.gtt_guild..TipBuddy.gtt_guildcolor..">".."|r");
				end
				tip:Show();
				tipnum = tipnum + 1;

			end
			if ( targettype.cls == 1 ) then
				tip = getglobal("GameTooltipTextLeft"..tipnum);
				if (TipBuddy.gtt_class == nil) then
					TipBuddy.gtt_class = "";	
				end
				if (TipBuddy.gtt_class == "" and TipBuddy.gtt_level == "") then
					
				else
					if (tipnum > TipBuddy.gtt_numlines) then
						GameTooltip:AddLine(TipBuddy.gtt_level.."|r  "..TipBuddy.gtt_race..TipBuddy.gtt_classcolor..TipBuddy.gtt_classlvlcolor..TipBuddy.gtt_class..TipBuddy.gtt_classcorpse.."|r");
					else
						tip:SetText(TipBuddy.gtt_level.."|r  "..TipBuddy.gtt_race..TipBuddy.gtt_classcolor..TipBuddy.gtt_classlvlcolor..TipBuddy.gtt_class..TipBuddy.gtt_classcorpse.."|r");
					end				
					tip:Show();
					tipnum = tipnum + 1;
				end

			end
			if ( targettype.cfc == 1 and TipBuddy.gtt_cityfac ~= "" ) then
				tip = getglobal("GameTooltipTextLeft"..tipnum);
				if (tipnum > TipBuddy.gtt_numlines) then
					GameTooltip:AddLine(TipBuddy.gtt_cityfac.."|r");
				else
					tip:SetText(TipBuddy.gtt_cityfac.."|r");	
				end
				tip:Show();
				tipnum = tipnum + 1;

			end
		end

		if (TipBuddy.gtt_xtra) then
			for i=1, table.getn(TipBuddy.gtt_xtra), 1 do
				tip = getglobal("GameTooltipTextLeft"..tipnum);
				tipR = getglobal("GameTooltipTextRight"..tipnum);
				--TB_AddMessage(TipBuddy.gtt_xtra[i])
				if (not tip) then
					return;
				end
				if (tipnum > TipBuddy.gtt_numlines) then
					if (TipBuddy.gtt_xtraR) then
						GameTooltip:AddDoubleLine(TipBuddy.gtt_xtra[i], TipBuddy.gtt_xtraR[i]);
					else
						GameTooltip:AddLine(TipBuddy.gtt_xtra[i]);
					end	
				else
						
					if (TipBuddy.gtt_xtraR) then
						tip:SetText(TipBuddy.gtt_xtra[i]);
						tipR:SetText(T

⌨️ 快捷键说明

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