📄 ct_ramenu.lua
字号:
function CT_RAMenuBuffs_OnEvent(event)
local changed;
for k, v in CT_RAMenu_Options do
if ( v["WindowPositions"] and v["WindowPositions"]["CT_RA_EmergencyFrame"] ) then
CT_RAMenu_Options[k]["WindowPositions"]["CT_RA_EmergencyFrame"] = nil;
changed = 1;
end
end
if ( changed ) then
CT_RAMenu_SaveWindowPositions();
CT_RAMenu_UpdateWindowPositions();
end
if ( not CT_RA_ModVersion or CT_RA_ModVersion ~= CT_RA_VersionNumber ) then
if ( not CT_RA_ModVersion or CT_RA_ModVersion < 1.465 ) then
CT_RA_UpdateFrame.showDialog = 5;
end
if ( not CT_RA_ModVersion or CT_RA_ModVersion < 1.165 ) then
DEFAULT_CHAT_FRAME:AddMessage("<团队助手> 所有的选项被重置为新格式。我们对此非常抱歉。", 1, 1, 0);
CT_RA_ResetOptions();
end
CT_RA_ModVersion = CT_RA_VersionNumber;
end
if ( not CT_RAMenu_Options["temp"] or CT_RAMenu_Options["temp"]["unchanged"] ) then
CT_RAMenu_Options["temp"] = { };
for k, v in CT_RAMenu_Options[CT_RAMenu_CurrSet] do
CT_RAMenu_Options["temp"][k] = v;
end
CT_RAMenu_Options["temp"]["unchanged"] = nil;
end
CT_RAMenu_UpdateMenu();
CT_RASets_Button:SetPoint("TOPLEFT", "Minimap", "TOPLEFT", 52 - (80 * cos(CT_RASets_ButtonPosition)), (80 * sin(CT_RASets_ButtonPosition)) - 52);
if ( CT_RAMenu_Locked == 0 ) then
CT_RAMenuFrameHomeLock:SetText("锁定");
end
if ( CT_RAMenu_Options["temp"]["ShowMonitor"] and GetNumRaidMembers() > 0 ) then
CT_RA_ResFrame:Show();
end
CT_RA_UpdateRaidGroup(0);
end
function CT_RAMenuNotify_SetChecked()
if ( this == CT_RAMenuFrameBuffsNotifyDebuffs ) then
CT_RAMenu_Options["temp"]["NotifyDebuffs"]["main"] = this:GetChecked();
else
CT_RAMenu_Options["temp"]["NotifyDebuffs"]["hidebuffs"] = not this:GetChecked();
end
for i = 1, 8, 1 do
if ( not CT_RAMenu_Options["temp"]["NotifyDebuffs"]["main"] and CT_RAMenu_Options["temp"]["NotifyDebuffs"]["hidebuffs"] ) then
getglobal("CT_RAMenuFrameBuffsNotifyDebuffsGroup" .. i .. "Text"):SetTextColor(0.3, 0.3, 0.3);
getglobal("CT_RAMenuFrameBuffsNotifyDebuffsGroup" .. i .. "CheckButton"):Disable();
getglobal("CT_RAMenuFrameBuffsNotifyDebuffsClass" .. i .. "Text"):SetTextColor(0.3, 0.3, 0.3);
getglobal("CT_RAMenuFrameBuffsNotifyDebuffsClass" .. i .. "CheckButton"):Disable();
else
getglobal("CT_RAMenuFrameBuffsNotifyDebuffsGroup" .. i .. "Text"):SetTextColor(1, 1, 1);
getglobal("CT_RAMenuFrameBuffsNotifyDebuffsGroup" .. i .. "CheckButton"):Enable();
getglobal("CT_RAMenuFrameBuffsNotifyDebuffsClass" .. i .. "Text"):SetTextColor(1, 1, 1);
getglobal("CT_RAMenuFrameBuffsNotifyDebuffsClass" .. i .. "CheckButton"):Enable();
end
end
end
function CT_RAMenuGeneralMisc_AddMTs()
local new = ( CT_RAMenu_Options["temp"]["ShowNumMTs"] or 9 ) + 1;
if ( new == 10 ) then
this:Disable();
end
CT_RAMenuFrameGeneralMTsSubtract:Enable();
CT_RAMenu_Options["temp"]["ShowNumMTs"] = new;
CT_RAMenuFrameGeneralMTsNum:SetText(new);
end
function CT_RAMenuGeneralMisc_SubtractMTs()
local new = ( CT_RAMenu_Options["temp"]["ShowNumMTs"] or 10 ) - 1;
if ( new == 1 ) then
this:Disable();
end
CT_RAMenuFrameGeneralMTsAdd:Enable();
CT_RAMenu_Options["temp"]["ShowNumMTs"] = new;
CT_RAMenuFrameGeneralMTsNum:SetText(new);
end
function CT_RAMenuNotifyGroup_SetChecked()
CT_RAMenu_Options["temp"]["NotifyDebuffs"][this:GetParent():GetID()] = this:GetChecked();
end
function CT_RAMenuNotifyClass_SetChecked()
CT_RAMenu_Options["temp"]["NotifyDebuffsClass"][this:GetParent():GetID()] = this:GetChecked();
end
function CT_RAMenuDebuff_OnClick()
local frame = this:GetParent();
local type = getglobal(this:GetParent():GetName() .. "Text"):GetText();
type = gsub(type, " ", "");
frame.r = CT_RAMenu_Options["temp"]["DebuffColors"][frame:GetID()]["r"];
frame.g = CT_RAMenu_Options["temp"]["DebuffColors"][frame:GetID()]["g"];
frame.b = CT_RAMenu_Options["temp"]["DebuffColors"][frame:GetID()]["b"];
frame.opacity = CT_RAMenu_Options["temp"]["DebuffColors"][frame:GetID()]["a"];
frame.opacityFunc = CT_RAMenuDebuff_SetColor;
frame.swatchFunc = CT_RAMenuDebuff_SetOpacity;
frame.hasOpacity = 1;
ColorPickerFrame.frame = frame;
CloseMenus();
UIDropDownMenuButton_OpenColorPicker(frame);
end
function CT_RAMenuDebuff_SetColor()
local type = getglobal(ColorPickerFrame.frame:GetName() .. "Text"):GetText();
local r, g, b = ColorPickerFrame:GetColorRGB();
CT_RAMenu_Options["temp"]["DebuffColors"][ColorPickerFrame.frame:GetID()]["r"] = r;
CT_RAMenu_Options["temp"]["DebuffColors"][ColorPickerFrame.frame:GetID()]["g"] = g;
CT_RAMenu_Options["temp"]["DebuffColors"][ColorPickerFrame.frame:GetID()]["b"] = b;
getglobal(ColorPickerFrame.frame:GetName() .. "SwatchNormalTexture"):SetVertexColor(r, g, b);
end
function CT_RAMenuDebuff_SetOpacity()
local type = getglobal(ColorPickerFrame.frame:GetName() .. "Text"):GetText();
local a = OpacitySliderFrame:GetValue();
CT_RAMenu_Options["temp"]["DebuffColors"][ColorPickerFrame.frame:GetID()]["a"] = a;
end
function CT_RAMenuBuff_Move(move)
if ( string.find(this:GetParent():GetName(), "Debuff") ) then
-- Debuff
if ( not getglobal("CT_RAMenuFrameBuffsDebuff" .. (this:GetParent():GetID()+move) .. "Text") ) then return; end
local temp = getglobal("CT_RAMenuFrameBuffsDebuff" .. (this:GetParent():GetID()+move) .. "Text"):GetText();
local temp2 = getglobal(this:GetParent():GetName() .. "Text"):GetText();
getglobal("CT_RAMenuFrameBuffsDebuff" .. (this:GetParent():GetID()+move) .. "Text"):SetText(temp2);
getglobal(this:GetParent():GetName() .. "Text"):SetText(temp);
local temparr = CT_RAMenu_Options["temp"]["DebuffColors"][this:GetParent():GetID()];
local temparr2 = CT_RAMenu_Options["temp"]["DebuffColors"][this:GetParent():GetID()+move];
CT_RAMenu_Options["temp"]["DebuffColors"][this:GetParent():GetID()] = temparr2;
CT_RAMenu_Options["temp"]["DebuffColors"][this:GetParent():GetID()+move] = temparr;
getglobal("CT_RAMenuFrameBuffsDebuff" .. this:GetParent():GetID()+move .. "SwatchNormalTexture"):SetVertexColor(temparr.r, temparr.g, temparr.b);
getglobal("CT_RAMenuFrameBuffsDebuff" .. this:GetParent():GetID() .. "SwatchNormalTexture"):SetVertexColor(temparr2.r, temparr2.g, temparr2.b);
if ( temparr2["id"] ~= -1 ) then
getglobal(this:GetParent():GetName() .. "CheckButton"):SetChecked(1);
getglobal(this:GetParent():GetName() .. "Text"):SetTextColor(1, 1, 1);
else
getglobal(this:GetParent():GetName() .. "Text"):SetTextColor(0.3, 0.3, 0.3);
getglobal(this:GetParent():GetName() .. "CheckButton"):SetChecked(nil);
end
if ( temparr["id"] ~= -1 ) then
getglobal("CT_RAMenuFrameBuffsDebuff" .. (this:GetParent():GetID()+move) .. "CheckButton"):SetChecked(1);
getglobal("CT_RAMenuFrameBuffsDebuff" .. (this:GetParent():GetID()+move) .. "Text"):SetTextColor(1, 1, 1);
else
getglobal("CT_RAMenuFrameBuffsDebuff" .. (this:GetParent():GetID()+move) .. "Text"):SetTextColor(0.3, 0.3, 0.3);
getglobal("CT_RAMenuFrameBuffsDebuff" .. (this:GetParent():GetID()+move) .. "CheckButton"):SetChecked(nil);
end
else
-- Buff
if ( not getglobal("CT_RAMenuFrameBuffsBuff" .. (this:GetParent():GetID()+move) .. "Text") ) then return; end
local temp = getglobal("CT_RAMenuFrameBuffsBuff" .. (this:GetParent():GetID()+move) .. "Text"):GetText();
local temp2 = getglobal(this:GetParent():GetName() .. "Text"):GetText();
getglobal("CT_RAMenuFrameBuffsBuff" .. (this:GetParent():GetID()+move) .. "Text"):SetText(temp2);
getglobal(this:GetParent():GetName() .. "Text"):SetText(temp);
local temparr = CT_RAMenu_Options["temp"]["BuffArray"][this:GetParent():GetID()];
local temparr2 = CT_RAMenu_Options["temp"]["BuffArray"][this:GetParent():GetID()+move];
CT_RAMenu_Options["temp"]["BuffArray"][this:GetParent():GetID()] = temparr2;
CT_RAMenu_Options["temp"]["BuffArray"][this:GetParent():GetID()+move] = temparr;
if ( temparr2["show"] ~= -1 ) then
getglobal(this:GetParent():GetName() .. "CheckButton"):SetChecked(1);
getglobal(this:GetParent():GetName() .. "Text"):SetTextColor(1, 1, 1);
else
getglobal(this:GetParent():GetName() .. "Text"):SetTextColor(0.3, 0.3, 0.3);
getglobal(this:GetParent():GetName() .. "CheckButton"):SetChecked(nil);
end
if ( temparr["show"] ~= -1 ) then
getglobal("CT_RAMenuFrameBuffsBuff" .. (this:GetParent():GetID()+move) .. "CheckButton"):SetChecked(1);
getglobal("CT_RAMenuFrameBuffsBuff" .. (this:GetParent():GetID()+move) .. "Text"):SetTextColor(1, 1, 1);
else
getglobal("CT_RAMenuFrameBuffsBuff" .. (this:GetParent():GetID()+move) .. "Text"):SetTextColor(0.3, 0.3, 0.3);
getglobal("CT_RAMenuFrameBuffsBuff" .. (this:GetParent():GetID()+move) .. "CheckButton"):SetChecked(nil);
end
end
CT_RA_UpdateRaidGroup(2);
end
function CT_RAMenuBuff_ShowToggle()
local newid;
if ( this:GetChecked() ) then
newid = this:GetParent():GetID();
getglobal(this:GetParent():GetName() .. "Text"):SetTextColor(1, 1, 1);
else
getglobal(this:GetParent():GetName() .. "Text"):SetTextColor(0.3, 0.3, 0.3);
newid = -1;
end
local type = getglobal(this:GetParent():GetName() .. "Text"):GetText();
if ( string.find(this:GetParent():GetName(), "Debuff") ) then
-- Debuff
CT_RAMenu_Options["temp"]["DebuffColors"][this:GetParent():GetID()].id = newid;
else
-- Buff
if ( this:GetChecked() ) then
CT_RAMenu_Options["temp"]["BuffArray"][this:GetParent():GetID()]["show"] = 1;
else
CT_RAMenu_Options["temp"]["BuffArray"][this:GetParent():GetID()]["show"] = -1;
end
end
CT_RA_UpdateRaidGroup(2);
end
function CT_RAMenuDisplay_ShowMP()
CT_RAMenu_Options["temp"]["HideMP"] = this:GetChecked();
CT_RA_UpdateRaidGroup(0);
CT_RA_UpdateMTs();
end
function CT_RAMenuDisplay_ShowRP()
CT_RAMenu_Options["temp"]["HideRP"] = this:GetChecked();
CT_RA_UpdateRaidGroup(0);
CT_RA_UpdateMTs();
end
function CT_RAMenuDisplay_ShowHealth()
if ( not this:GetChecked() ) then
CT_RAMenu_Options["temp"]["MemberHeight"] = CT_RAMenu_Options["temp"]["MemberHeight"]+8;
else
CT_RAMenu_Options["temp"]["MemberHeight"] = CT_RAMenu_Options["temp"]["MemberHeight"]-8;
end
CT_RA_UpdateRaidGroup(0);
CT_RA_UpdateMTs();
end
function CT_RAMenuDisplay_ShowHP()
if ( this:GetChecked() ) then
if ( CT_RAMenuFrameGeneralDisplayShowHPPercentCB:GetChecked() ) then
CT_RAMenu_Options["temp"]["ShowHP"] = 2;
else
CT_RAMenu_Options["temp"]["ShowHP"] = 1;
end
else
CT_RAMenu_Options["temp"]["ShowHP"] = nil;
end
if ( this:GetChecked() ) then
CT_RAMenuFrameGeneralDisplayHealthPercentsText:SetTextColor(1, 1, 1);
CT_RAMenuFrameGeneralDisplayShowHPPercentCB:Enable();
CT_RAMenuFrameGeneralDisplayShowHPSwatchNormalTexture:SetVertexColor(CT_RAMenu_Options["temp"]["PercentColor"].r, CT_RAMenu_Options["temp"]["PercentColor"].g, CT_RAMenu_Options["temp"]["PercentColor"].b);
CT_RAMenuFrameGeneralDisplayShowHPSwatchBG:SetVertexColor(1, 1, 1);
else
CT_RAMenuFrameGeneralDisplayHealthPercentsText:SetTextColor(0.3, 0.3, 0.3);
CT_RAMenuFrameGeneralDisplayShowHPPercentCB:Disable();
CT_RAMenuFrameGeneralDisplayShowHPSwatchNormalTexture:SetVertexColor(0.3, 0.3, 0.3);
CT_RAMenuFrameGeneralDisplayShowHPSwatchBG:SetVertexColor(0.3, 0.3, 0.3);
end
for i = 1, GetNumRaidMembers(), 1 do
if ( CT_RA_Stats[UnitName("raid" .. i)] ) then
CT_RA_UpdateUnitHealth(getglobal("CT_RAMember" .. i), CT_RA_Stats[UnitName("raid" .. i)]["Health"], CT_RA_Stats[UnitName("raid" .. i)]["Healthmax"]);
end
end
CT_RA_UpdateMTs();
end
function CT_RAMenuDisplay_ShowHPPercents()
if ( this:GetChecked() ) then
CT_RAMenu_Options["temp"]["ShowHP"] = 2;
else
CT_RAMenu_Options["temp"]["ShowHP"] = 1;
end
for i = 1, GetNumRaidMembers(), 1 do
if ( CT_RA_Stats[UnitName("raid" .. i)] ) then
CT_RA_UpdateUnitHealth(getglobal("CT_RAMember" .. i), CT_RA_Stats[UnitName("raid" .. i)]["Health"], CT_RA_Stats[UnitName("raid" .. i)]["Healthmax"]);
end
end
end
function CT_RAMenuDisplay_ShowGroupNames()
CT_RAMenu_Options["temp"]["HideNames"] = not this:GetChecked();
CT_RA_UpdateVisibility();
end
function CT_RAMenuDisplay_ChangeWC()
local frame = this:GetParent();
frame.r = CT_RAMenu_Options["temp"]["DefaultColor"]["r"];
frame.g = CT_RAMenu_Options["temp"]["DefaultColor"]["g"];
frame.b = CT_RAMenu_Options["temp"]["DefaultColor"]["b"];
frame.opacity = CT_RAMenu_Options["temp"]["DefaultColor"]["a"];
frame.opacityFunc = CT_RAMenuDisplay_SetOpacity;
frame.swatchFunc = CT_RAMenuDisplay_SetColor;
frame.cancelFunc = CT_RAMenuDisplay_CancelColor;
frame.hasOpacity = 1;
CloseMenus();
UIDropDownMenuButton_OpenColorPicker(frame);
end
function CT_RAMenuDisplay_SetColor()
local r, g, b = ColorPickerFrame:GetColorRGB();
CT_RAMenu_Options["temp"]["DefaultColor"]["r"] = r;
CT_RAMenu_Options["temp"]["DefaultColor"]["g"] = g;
CT_RAMenu_Options["temp"]["DefaultColor"]["b"] = b;
CT_RAMenuFrameGeneralDisplayWindowColorSwatchNormalTexture:SetVertexColor(r, g, b);
CT_RA_UpdateRaidGroupColors();
end
function CT_RAMenuDisplay_SetOpacity()
CT_RAMenu_Options["temp"]["DefaultColor"]["a"] = OpacitySliderFrame:GetValue();
CT_RA_UpdateRaidGroupColors();
end
function CT_RAMenuDisplay_CancelColor(val)
CT_RAMenu_Options["temp"]["DefaultColor"]["r"] = val.r;
CT_RAMenu_Options["temp"]["DefaultColor"]["g"] = val.g;
CT_RAMenu_Options["temp"]["DefaultColor"]["b"] = val.b;
CT_RAMenu_Options["temp"]["DefaultColor"]["a"] = val.opacity;
CT_RAMenuFrameGeneralDisplayWindowColorSwatchNormalTexture:SetVertexColor(val.r, val.g, val.b);
CT_RA_UpdateRaidGroupColors();
end
function CT_RAMenuDisplay_LockGroups()
CT_RAMenu_Options["temp"]["LockGroups"] = this:GetChecked();
CT_RA_UpdateVisibility();
end
function CT_RAMenuFrameGeneralMiscDropDown_OnLoad()
UIDropDownMenu_Initialize(this, CT_RAMenuFrameGeneralMiscDropDown_Initialize);
UIDropDownMenu_SetWidth(130);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -