📄 tipbuddy.lua
字号:
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 + -