📄 ct_ramenu.lua
字号:
tinsert(UISpecialFrames, "CT_RAMenuFrame");
CT_RA_Ressers = { };
CT_RAMenu_Locked = 1;
CT_RA_PartyMembers = { };
CT_RA_InCombat = nil;
function CT_RAMenu_OnLoad()
CT_RAMenuFrameHomeButton1Text:SetText("频道选项");
CT_RAMenuFrameHomeButton2Text:SetText("增益效果选项");
CT_RAMenuFrameHomeButton3Text:SetText("其它选项");
CT_RAMenuFrameHomeButton4Text:SetText("治疗者选项");
CT_RAMenuFrameHomeButton5Text:SetText("负面效果治疗");
CT_RAMenuFrameHomeButton6Text:SetText("选项设置");
CT_RAMenuFrameHomeButton1Description:SetText("改变团队频道和团队设置,例如是否显示小队阶面魔法条等等。");
CT_RAMenuFrameHomeButton2Description:SetText("设置你和团队增益效果和负面效果提示的方式。");
CT_RAMenuFrameHomeButton3Description:SetText("其他的选项在这里,例如OT提示等。");
CT_RAMenuFrameHomeButton4Description:SetText("设置治疗紧急情况监视器,小队阶面透明和缩放显示等等。");
CT_RAMenuFrameHomeButton5Description:SetText("设置一键解负面效果选项。(只须创建宏输入/racure)");
CT_RAMenuFrameHomeButton6Description:SetText("存储和载入设置的选项。");
end
function CT_RAMenu_OnShow()
CT_RAMenu_ShowHome();
if ( this:GetScale() <= 0.8 ) then
this:SetScale(0.8);
end
CT_RAMenuFrameHomeButton1:SetScale(this:GetScale()/1.09758);
CT_RAMenuFrameHomeButton2:SetScale(this:GetScale()/1.09758);
CT_RAMenuFrameHomeButton3:SetScale(this:GetScale()/1.09758);
CT_RAMenuFrameHomeButton4:SetScale(this:GetScale()/1.09758);
CT_RAMenuFrameHomeButton5:SetScale(this:GetScale()/1.09758);
CT_RAMenuFrameHomeButton6:SetScale(this:GetScale()/1.09758);
end
function CT_RAMenuButton_OnClick(id)
if ( not id ) then
id = this:GetID();
end
CT_RAMenuFrameHome:Hide();
if ( id == 1 ) then
CT_RAMenuFrameGeneral:Show();
elseif ( id == 2 ) then
CT_RAMenuFrameBuffs:Show();
elseif ( id == 3 ) then
CT_RAMenuFrameMisc:Show();
elseif ( id == 4 ) then
CT_RAMenuFrameAdditional:Show();
elseif ( id == 5 ) then
CT_RAMenuFrameDebuff:Show();
elseif ( id == 6 ) then
CT_RAMenuFrameOptionSets:Show();
end
end
function CT_RAMenu_ShowHome()
CT_RAMenuFrameHome:Show();
CT_RAMenuFrameGeneral:Hide();
CT_RAMenuFrameBuffs:Hide();
CT_RAMenuFrameMisc:Hide();
CT_RAMenuFrameAdditional:Hide();
CT_RAMenuFrameDebuff:Hide();
CT_RAMenuFrameOptionSets:Hide();
end
function CT_RAMenu_UpdateMenu()
local tempOptions = CT_RAMenu_Options["temp"];
local admiralsHat, foundDampen;
for k, v in tempOptions["BuffArray"] do
if ( v["name"] == CT_RA_DAMPENMAGIC ) then
foundDampen = k;
elseif ( v["name"] == CT_RA_ADMIRALSHAT ) then
admiralsHat = k;
elseif ( v["name"] == "Don du fauve" ) then
-- Change name of buffs.. Not a too great way of doing it, but it works (I'll fix this design as soon as possible, it's terrible I know)
tempOptions["BuffArray"][k]["name"] = CT_RA_MARKOFTHEWILD[2];
elseif ( v["name"] == "Marque du fauve" ) then
tempOptions["BuffArray"][k]["name"] = CT_RA_MARKOFTHEWILD[1];
elseif ( v["name"] == CT_RA_BLESSINGOFMIGHT[1] ) then
tempOptions["BuffArray"][k]["name"] = CT_RA_BLESSINGOFMIGHT;
elseif ( v["name"] == CT_RA_BLESSINGOFWISDOM[1] ) then
tempOptions["BuffArray"][k]["name"] = CT_RA_BLESSINGOFWISDOM;
elseif ( v["name"] == CT_RA_BLESSINGOFKINGS[1] ) then
tempOptions["BuffArray"][k]["name"] = CT_RA_BLESSINGOFKINGS;
elseif ( v["name"] == CT_RA_BLESSINGOFSALVATION[1] ) then
tempOptions["BuffArray"][k]["name"] = CT_RA_BLESSINGOFSALVATION;
elseif ( v["name"] == CT_RA_BLESSINGOFLIGHT[1] ) then
tempOptions["BuffArray"][k]["name"] = CT_RA_BLESSINGOFLIGHT;
elseif ( v["name"] == CT_RA_BLESSINGOFSANCTUARY[1] ) then
tempOptions["BuffArray"][k]["name"] = CT_RA_BLESSINGOFSANCTUARY;
elseif ( v["name"] == CT_RA_DIVINESPIRIT[1] ) then
tempOptions["BuffArray"][k]["name"] = CT_RA_DIVINESPIRIT;
elseif ( v["name"] == CT_RA_SHADOWPROTECTION[1] ) then
tempOptions["BuffArray"][k]["name"] = CT_RA_SHADOWPROTECTION;
end
end
if ( admiralsHat ) then
tremove(tempOptions["BuffArray"], admiralsHat);
end
if ( not foundDampen ) then
tinsert(tempOptions["BuffArray"], { ["show"] = -1, ["name"] = CT_RA_AMPLIFYMAGIC, ["index"] = 20 });
tinsert(tempOptions["BuffArray"], { ["show"] = -1, ["name"] = CT_RA_DAMPENMAGIC, ["index"] = 21 });
end
for i = 1, 6, 1 do
if ( type(tempOptions["DebuffColors"][i]["type"]) == "table" ) then
getglobal("CT_RAMenuFrameBuffsDebuff" .. i .. "Text"):SetText(string.gsub(tempOptions["DebuffColors"][i]["type"][CT_RA_GetLocale()], "_", " "));
else
getglobal("CT_RAMenuFrameBuffsDebuff" .. i .. "Text"):SetText(string.gsub(tempOptions["DebuffColors"][i]["type"], "_", " "));
end
local val = tempOptions["DebuffColors"][i];
getglobal("CT_RAMenuFrameBuffsDebuff" .. i .. "SwatchNormalTexture"):SetVertexColor(val.r, val.g, val.b);
if ( val["id"] ~= -1 ) then
getglobal("CT_RAMenuFrameBuffsDebuff" .. i .. "CheckButton"):SetChecked(1);
getglobal("CT_RAMenuFrameBuffsDebuff" .. i .. "Text"):SetTextColor(1, 1, 1);
else
getglobal("CT_RAMenuFrameBuffsDebuff" .. i .. "CheckButton"):SetChecked(nil);
getglobal("CT_RAMenuFrameBuffsDebuff" .. i .. "Text"):SetTextColor(0.3, 0.3, 0.3);
end
end
for key, val in tempOptions["BuffArray"] do
if ( val["show"] ~= -1 ) then
getglobal("CT_RAMenuFrameBuffsBuff" .. key .. "CheckButton"):SetChecked(1);
getglobal("CT_RAMenuFrameBuffsBuff" .. key .. "Text"):SetTextColor(1, 1, 1);
else
getglobal("CT_RAMenuFrameBuffsBuff" .. key .. "CheckButton"):SetChecked(nil);
getglobal("CT_RAMenuFrameBuffsBuff" .. key .. "Text"):SetTextColor(0.3, 0.3, 0.3);
end
local spell = val["name"];
if ( type(spell) == "table" ) then
getglobal("CT_RAMenuFrameBuffsBuff" .. key .. "Text"):SetText(spell[1]);
getglobal("CT_RAMenuFrameBuffsBuff" .. key).tooltip = spell[1] .. " & " .. spell[2];
else
getglobal("CT_RAMenuFrameBuffsBuff" .. key .. "Text"):SetText(spell);
getglobal("CT_RAMenuFrameBuffsBuff" .. key).tooltip = nil;
end
end
CT_RAMenuFrameBuffsNotifyDebuffs:SetChecked(tempOptions["NotifyDebuffs"]);
for i = 1, 8, 1 do
getglobal("CT_RAMenuFrameBuffsNotifyDebuffsGroup" .. i .. "Text"):SetText("小队 " .. i);
if ( not tempOptions["NotifyDebuffs"] or ( not tempOptions["NotifyDebuffs"]["main"] and tempOptions["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();
end
getglobal("CT_RAMenuFrameBuffsNotifyDebuffs"):SetChecked(tempOptions["NotifyDebuffs"]["main"]);
getglobal("CT_RAMenuFrameBuffsNotifyBuffs"):SetChecked(not tempOptions["NotifyDebuffs"]["hidebuffs"]);
getglobal("CT_RAMenuFrameBuffsNotifyDebuffsGroup" .. i .. "CheckButton"):SetChecked(tempOptions["NotifyDebuffs"][i]);
getglobal("CT_RAMenuFrameBuffsNotifyDebuffsClass" .. i .. "CheckButton"):SetChecked(tempOptions["NotifyDebuffsClass"][i]);
end
for k, v in CT_RA_ClassPositions do
if ( k ~= CT_RA_SHAMAN or ( UnitFactionGroup("player") and UnitFactionGroup("player") == "Horde" ) ) then
getglobal("CT_RAMenuFrameBuffsNotifyDebuffsClass" .. v .. "Text"):SetText(k);
end
end
CT_RAMenuFrameGeneralDisplayShowMPCB:SetChecked(tempOptions["HideMP"]);
CT_RAMenuFrameGeneralDisplayShowRPCB:SetChecked(tempOptions["HideRP"]);
if ( tempOptions["MemberHeight"] == 32 ) then
CT_RAMenuFrameGeneralDisplayShowHealthCB:SetChecked(1);
else
CT_RAMenuFrameGeneralDisplayShowHealthCB:SetChecked(nil);
end
CT_RAMenuFrameGeneralDisplayShowGroupsCB:SetChecked(not tempOptions["HideNames"]);
CT_RAMenuFrameGeneralDisplayLockGroupsCB:SetChecked(tempOptions["LockGroups"]);
CT_RAMenuFrameGeneralDisplayWindowColorSwatchNormalTexture:SetVertexColor(tempOptions["DefaultColor"].r, tempOptions["DefaultColor"].g, tempOptions["DefaultColor"].b);
CT_RAMenuFrameGeneralDisplayShowHPSwatchNormalTexture:SetVertexColor(tempOptions["PercentColor"].r, tempOptions["PercentColor"].g, tempOptions["PercentColor"].b);
CT_RAMenuFrameGeneralDisplayAlertColorSwatchNormalTexture:SetVertexColor(tempOptions["DefaultAlertColor"].r, tempOptions["DefaultAlertColor"].g, tempOptions["DefaultAlertColor"].b);
CT_RA_UpdateRaidGroupColors();
CT_RA_UpdateRaidMovability();
if ( tempOptions["ShowHP"] ) then
UIDropDownMenu_SetSelectedID(CT_RAMenuFrameGeneralDisplayHealthDropDown, tempOptions["ShowHP"]);
else
UIDropDownMenu_SetSelectedID(CT_RAMenuFrameGeneralDisplayHealthDropDown, 5);
end
if ( tempOptions["ShowDebuffs"] ) then
UIDropDownMenu_SetSelectedID(CT_RAMenuFrameBuffsBuffsDropDown, 2);
CT_RAMenuFrameBuffsBuffsDropDownText:SetText("显示负面效果");
elseif ( tempOptions["ShowBuffsDebuffed"] ) then
UIDropDownMenu_SetSelectedID(CT_RAMenuFrameBuffsBuffsDropDown, 3);
CT_RAMenuFrameBuffsBuffsDropDownText:SetText("显示增益效果除非存在负面效果");
else
UIDropDownMenu_SetSelectedID(CT_RAMenuFrameBuffsBuffsDropDown, 1);
CT_RAMenuFrameBuffsBuffsDropDownText:SetText("显示增益效果");
end
local num = 0;
if ( tempOptions["ShowGroups"] ) then
for k, v in tempOptions["ShowGroups"] do
num = num + 1;
getglobal("CT_RAOptionsGroupCB" .. k):SetChecked(1);
end
if ( num > 0 ) then
CT_RACheckAllGroups:SetChecked(1);
else
CT_RACheckAllGroups:SetChecked(nil);
end
else
for i = 1, 8, 1 do
getglobal("CT_RAOptionsGroupCB" .. i):SetChecked(nil);
end
end
CT_RAMenuFrameGeneralMiscHideOfflineCB:SetChecked(tempOptions["HideOffline"]);
CT_RAMenuFrameGeneralMiscSortAlphaCB:SetChecked(tempOptions["SubSortByName"]);
CT_RAMenuFrameGeneralMiscBorderCB:SetChecked(tempOptions["HideBorder"]);
CT_RAMenuFrameGeneralMiscRemoveSpacingCB:SetChecked(tempOptions["HideSpace"]);
CT_RAMenuFrameGeneralMiscShowHorizontalCB:SetChecked(tempOptions["ShowHorizontal"]);
CT_RAMenuFrameGeneralMiscShowReversedCB:SetChecked(tempOptions["ShowReversed"]);
CT_RAMenuFrameGeneralMiscShowMTsCB:SetChecked(not tempOptions["HideMTs"]);
CT_RAMenuFrameGeneralMiscShowMetersCB:SetChecked( (tempOptions["StatusMeters"] and tempOptions["StatusMeters"]["Show"] ) );
CT_RAMenuFrameMiscNotificationsShowTankDeathCB:SetChecked(not tempOptions["HideTankNotifications"]);
CT_RAMenuFrameMiscNotificationsPlayRSSoundCB:SetChecked(tempOptions["PlayRSSound"]);
CT_RAMenuFrameMiscNotificationsSendRARSCB:SetChecked(tempOptions["SendRARS"]);
CT_RAMenuFrameMiscDisplayShowAFKCB:SetChecked(tempOptions["ShowAFK"]);
CT_RAMenuFrameMiscDisplayShowTooltipCB:SetChecked(not tempOptions["HideTooltip"]);
CT_RAMenuFrameMiscNotificationsDisableQueryCB:SetChecked(tempOptions["DisableQuery"]);
CT_RAMenuFrameMiscNotificationsNotifyGroupChangeCB:SetChecked(tempOptions["NotifyGroupChange"]);
CT_RAMenuFrameMiscNotificationsNotifyGroupChangeCBSound:SetChecked(tempOptions["NotifyGroupChangeSound"]);
CT_RAMenuFrameMiscDisplayNoColorChangeCB:SetChecked(tempOptions["HideColorChange"]);
CT_RAMenuFrameMiscDisplayShowResMonitorCB:SetChecked(tempOptions["ShowMonitor"]);
CT_RAMenuFrameMiscDisplayHideButtonCB:SetChecked(tempOptions["HideButton"]);
CT_RAMenuFrameMiscDisplayShowPTTCB:SetChecked(tempOptions["ShowPTT"]);
CT_RAMenuFrameMiscDisplayShowMTTTCB:SetChecked(tempOptions["ShowMTTT"]);
CT_RAMenuFrameAdditionalEMShowCB:SetChecked(tempOptions["ShowEmergency"]);
CT_RAMenuFrameMiscNotificationsAggroNotifierCB:SetChecked(tempOptions["AggroNotifier"]);
CT_RAMenuFrameMiscNotificationsAggroNotifierSoundCB:SetChecked(tempOptions["AggroNotifierSound"]);
CT_RAMenuFrameMiscDisplayColorLeaderCB:SetChecked( ( not tempOptions["leaderColor"] or tempOptions["leaderColor"].enabled ) );
if ( tempOptions["leaderColor"] ) then
CT_RAMenuFrameMiscDisplayColorLeaderColorSwatchNormalTexture:SetVertexColor(tempOptions["leaderColor"].r, tempOptions["leaderColor"].g, tempOptions["leaderColor"].b);
else
CT_RAMenuFrameMiscDisplayColorLeaderColorSwatchNormalTexture:SetVertexColor(1, 1, 0);
end
if ( not tempOptions["HideBorder"] ) then
CT_RAMenuFrameGeneralMiscRemoveSpacingCB:Disable();
CT_RAMenuFrameGeneralMiscRemoveSpacingText:SetTextColor(0.3, 0.3, 0.3);
end
local numMts = tempOptions["ShowNumMTs"];
if ( numMts == 1 ) then
CT_RAMenuFrameGeneralMTsSubtract:Disable();
elseif ( numMts == 10 ) then
CT_RAMenuFrameGeneralMTsAdd:Disable();
end
CT_RAMenuFrameGeneralMTsNum:SetText(numMts or 10);
if ( not tempOptions["AggroNotifier"] ) then
CT_RAMenuFrameMiscNotificationsAggroNotifierSoundCB:Disable();
CT_RAMenuFrameMiscNotificationsAggroNotifierSound:SetTextColor(0.3, 0.3, 0.3);
end
if ( not tempOptions["ShowEmergency"] ) then
CT_RAMenuFrameAdditionalEMPartyCB:Disable();
CT_RAMenuFrameAdditionalEMPartyText:SetTextColor(0.3, 0.3, 0.3);
CT_RAMenuFrameAdditionalEMOutsideRaidCB:Disable();
CT_RAMenuFrameAdditionalEMOutsideRaidText:SetTextColor(0.3, 0.3, 0.3);
end
CT_RAMenuFrameAdditionalEMPartyCB:SetChecked(tempOptions["ShowEmergencyParty"]);
CT_RAMenuFrameAdditionalEMOutsideRaidCB:SetChecked(tempOptions["ShowEmergencyOutsideRaid"]);
--if ( tempOptions["HideButton"] ) then
CT_RASets_Button:Hide();
-- else
-- CT_RASets_Button:Show();
-- end
if ( not tempOptions["NotifyGroupChange"] ) then
CT_RAMenuFrameMiscNotificationsNotifyGroupChangeCBSound:Disable();
CT_RAMenuFrameMiscNotificationsNotifyGroupChangeSound:SetTextColor(0.3, 0.3, 0.3);
else
CT_RAMenuFrameMiscNotificationsNotifyGroupChangeCBSound:Enable();
CT_RAMenuFrameMiscNotificationsNotifyGroupChangeSound:SetTextColor(1, 1, 1);
end
if ( not tempOptions["ShowMTTT"] ) then
CT_RAMenuFrameMiscDisplayNoColorChangeCB:Disable();
CT_RAMenuFrameMiscDisplayNoColorChange:SetTextColor(0.3, 0.3, 0.3);
else
CT_RAMenuFrameMiscDisplayNoColorChangeCB:Enable();
CT_RAMenuFrameMiscDisplayNoColorChange:SetTextColor(1, 1, 1);
end
if ( tempOptions["WindowScaling"] ) then
CT_RAMenuGlobalFrame.scaleupdate = 0.1;
end
if ( tempOptions["SORTTYPE"] == "class" ) then
CT_RA_SetSortType("class");
elseif ( tempOptions["SORTTYPE"] == "custom" ) then
CT_RA_SetSortType("custom");
elseif ( tempOptions["SORTTYPE"] == "virtual" ) then
CT_RA_SetSortType("virtual");
else
CT_RA_SetSortType("group");
end
if ( tempOptions["StatusMeters"] ) then
if ( tempOptions["StatusMeters"]["Show"] ) then
CT_RARaidOverviewFrame:Show();
else
CT_RARaidOverviewFrame:Hide();
end
end
if ( tempOptions["EMBG"] ) then
CT_RA_EmergencyFrame:SetBackdropColor(tempOptions["EMBG"].r, tempOptions["EMBG"].g, tempOptions["EMBG"].b, tempOptions["EMBG"].a);
CT_RA_EmergencyFrame:SetBackdropBorderColor(1, 1, 1, tempOptions["EMBG"].a);
end
if ( tempOptions["RMBG"] ) then
CT_RA_ResFrame:SetBackdropColor(tempOptions["RMBG"].r, tempOptions["RMBG"].g, tempOptions["RMBG"].b, tempOptions["RMBG"].a);
CT_RA_ResFrame:SetBackdropBorderColor(1, 1, 1, tempOptions["RMBG"].a);
end
if ( tempOptions["ShowHP"] ) then
local table = { "显示数值", "显示百分比", "显示赤字", "仅显示MTT的血量百分比" };
UIDropDownMenu_SetSelectedID(CT_RAMenuFrameGeneralDisplayHealthDropDown, tempOptions["ShowHP"]);
CT_RAMenuFrameGeneralDisplayHealthDropDownText:SetText(table[tempOptions["ShowHP"]]);
else
UIDropDownMenu_SetSelectedID(CT_RAMenuFrameGeneralDisplayHealthDropDown, 5);
CT_RAMenuFrameGeneralDisplayHealthDropDownText:SetText("没显示");
end
CT_RAMenuAdditional_Scaling_OnShow(CT_RAMenuFrameAdditionalScalingSlider1);
CT_RAMenuAdditional_ScalingMT_OnShow(CT_RAMenuFrameAdditionalScalingSlider2);
CT_RAMenuAdditional_EM_OnShow(CT_RAMenuFrameAdditionalEMSlider);
CT_RAMenuAdditional_EM_OnShow(CT_RAMenuFrameAdditionalEMSlider2);
CT_RAMenuAdditional_BG_OnShow(CT_RAMenuFrameAdditionalBGSlider);
CT_RA_Emergency_UpdateHealth();
CT_RAMenu_UpdateWindowPositions();
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -