📄 en_buff.lua
字号:
EUF_MAX_PARTY_DEBUFFS = 16;
EUF_MAX_PARTY_BUFFS = 16;
local extraRefreshBuffs = RefreshBuffs;
function RefreshBuffs(frame, param2, param3)
if(frame == PetFrame) then
PetFrame_RefreshBuffs();
return;
end
if(frame == TargetofTargetFrame or frame == TargetFrame) then
return extraRefreshBuffs(frame, param2, param3);
end
if(frame ~= PartyMemberFrame1 and frame ~= PartyMemberFrame2 and frame ~= PartyMemberFrame3 and frame ~= PartyMemberFrame4) then
return;
end
local id;
local buffButtonName;
local buffImage;
local idx;
id = frame:GetID();
idx = 1;
for i=1, 16 do
if ( idx <= EUF_MAX_PARTY_BUFFS ) then
buffImage = UnitBuff("party"..id, i);
if ( buffImage ) then
buffButtonName = "EUF_PartyBuffFrame"..id.."Buff"..idx;
getglobal(buffButtonName.."Icon"):SetTexture(buffImage);
getglobal(buffButtonName):SetID(i);
getglobal(buffButtonName):Show();
idx = idx + 1;
end
end
end
for i=idx, EUF_MAX_PARTY_BUFFS do
getglobal("EUF_PartyBuffFrame"..id.."Buff"..i):Hide();
end
idx = 1;
for i=1, 16 do
if ( idx <= EUF_MAX_PARTY_DEBUFFS ) then
buffImage = UnitDebuff("party"..id, i);
if ( buffImage ) then
buffButtonName = "EUF_PartyBuffFrame"..id.."DeBuff"..idx;
getglobal(buffButtonName.."Icon"):SetTexture(buffImage);
getglobal(buffButtonName):SetID(i);
getglobal(buffButtonName):Show();
idx = idx + 1;
end
end
end
for i=idx, EUF_MAX_PARTY_DEBUFFS do
getglobal("EUF_PartyBuffFrame"..id.."DeBuff"..i):Hide();
end
end
function PetFrame_RefreshBuffs()
local buffButtonName;
local buffImage;
local idx;
idx = 1;
for i=1, 16 do
if ( idx <= EUF_MAX_PARTY_BUFFS ) then
buffImage = UnitBuff("pet", i);
if ( buffImage ) then
buffButtonName = "EUF_PetBuffFrameBuff"..idx;
getglobal(buffButtonName.."Icon"):SetTexture(buffImage);
getglobal(buffButtonName):SetID(i);
getglobal(buffButtonName):Show();
idx = idx + 1;
end
end
end
for i=idx, EUF_MAX_PARTY_BUFFS do
getglobal("EUF_PetBuffFrameBuff"..i):Hide();
end
idx = 1;
for i=1, 16 do
if ( idx <= EUF_MAX_PARTY_DEBUFFS ) then
buffImage = UnitDebuff("pet", i);
if ( buffImage ) then
buffButtonName = "EUF_PetBuffFrameDeBuff"..idx;
getglobal(buffButtonName.."Icon"):SetTexture(buffImage);
getglobal(buffButtonName):SetID(i);
getglobal(buffButtonName):Show();
idx = idx + 1;
end
end
end
for i=idx, EUF_MAX_PARTY_DEBUFFS do
getglobal("EUF_PetBuffFrameDeBuff"..i):Hide();
end
end
function PartyMemberFrame_RefreshPetBuffs(id)
local buffButtonName;
local buffImage;
local idx;
if ( not id ) then
id = this:GetID();
end
idx = 1;
for i=1, 16 do
if ( idx <= EUF_MAX_PARTY_BUFFS ) then
buffImage = UnitBuff("partypet"..id, i);
if ( buffImage ) then
buffButtonName = "EUF_PartyPetBuffFrame"..id.."Buff"..idx;
getglobal(buffButtonName.."Icon"):SetTexture(buffImage);
getglobal(buffButtonName):SetID(i);
getglobal(buffButtonName):Show();
idx = idx + 1;
end
end
end
for i=idx, EUF_MAX_PARTY_BUFFS do
getglobal("EUF_PartyPetBuffFrame"..id.."Buff"..i):Hide();
end
idx = 1;
for i=1, 16 do
if ( idx <= EUF_MAX_PARTY_DEBUFFS ) then
buffImage = UnitDebuff("partypet"..id, i);
if ( buffImage ) then
buffButtonName = "EUF_PartyPetBuffFrame"..id.."DeBuff"..idx;
getglobal(buffButtonName.."Icon"):SetTexture(buffImage);
getglobal(buffButtonName):SetID(i);
getglobal(buffButtonName):Show();
idx = idx + 1;
end
end
end
for i=idx, EUF_MAX_PARTY_DEBUFFS do
getglobal("EUF_PartyPetBuffFrame"..id.."DeBuff"..i):Hide();
end
end
function PartyMemberBuffTooltip_Update(isPet)
end
-- TargetFrameBuff --
function EUF_TargetDebuffButton_Update()
ORG_TargetDebuffButton_Update();
if EUF_CurrentOptions["TARGET16BUFFS"] ~= 1 then
return;
end;
local buff, buffButton;
local button;
local numBuffs = 0;
for i=1, MAX_PARTY_TOOLTIP_BUFFS do
buff = UnitBuff("target", i);
button = getglobal("TargetFrameBuff"..i);
if ( buff ) then
getglobal("TargetFrameBuff"..i.."Icon"):SetTexture(buff);
button:Show();
numBuffs = numBuffs + 1;
else
button:Hide();
end
button.id = i;
end
local limit;
if ( UnitIsFriend("player", "target") ) then
limit = 6;
TargetFrameBuff1:SetPoint("TOPLEFT", "TargetFrame", "BOTTOMLEFT", 5, 32);
if ( numBuffs >= 5 and numBuffs < 10 )then
if ( TargetofTargetFrame:IsShown() ) then
TargetFrameDebuff1:SetPoint("TOPLEFT", "TargetFrameBuff6", "BOTTOMLEFT", 0, -2);
else
TargetFrameDebuff1:SetPoint("TOPLEFT", "TargetFrameBuff7", "BOTTOMLEFT", 0, -2);
end
elseif ( TargetofTargetFrame:IsShown() and numBuffs >= 10 ) then
TargetFrameDebuff1:SetPoint("TOPLEFT", "TargetFrameBuff11", "BOTTOMLEFT", 0, -2);
else
TargetFrameDebuff1:SetPoint("TOPLEFT", "TargetFrameBuff1", "BOTTOMLEFT", 0, -2);
end
end
local buffWrap;
local buffSize;
buffSize = 21;
if ( TargetofTargetFrame:IsShown() ) then
if ( numBuffs > 5 ) then
buffSize = 17;
end
buffWrap = 5;
else
buffWrap = 6;
end
if ( numBuffs >= buffWrap ) then
buffSize = 17;
end
for i=1, 16 do
if ( UnitIsFriend("player", "target") ) then
button = getglobal("TargetFrameBuff"..i);
end
button:SetWidth(buffSize);
button:SetHeight(buffSize);
end
getglobal("TargetFrameBuff"..buffWrap):ClearAllPoints();
getglobal("TargetFrameBuff"..buffWrap):SetPoint("LEFT", getglobal("TargetFrameBuff"..(buffWrap - 1)), "RIGHT", 3, 0);
getglobal("TargetFrameBuff"..(buffWrap + 1)):ClearAllPoints();
getglobal("TargetFrameBuff"..(buffWrap + 1)):SetPoint("TOPLEFT", "TargetFrameBuff1", "BOTTOMLEFT", 0, -2);
getglobal("TargetFrameBuff"..(buffWrap + 2)):ClearAllPoints();
getglobal("TargetFrameBuff"..(buffWrap + 2)):SetPoint("LEFT", getglobal("TargetFrameBuff"..(buffWrap + 1)), "RIGHT", 3, 0);
if ( buffWrap == 5 ) then
TargetFrameBuff11:ClearAllPoints();
TargetFrameBuff11:SetPoint("TOPLEFT", "TargetFrameBuff6", "BOTTOMLEFT", 0, -2);
else
TargetFrameBuff11:ClearAllPoints();
TargetFrameBuff11:SetPoint("LEFT", "TargetFrameBuff10", "RIGHT", 3, 0);
end
end
ORG_TargetDebuffButton_Update = TargetDebuffButton_Update;
TargetDebuffButton_Update = EUF_TargetDebuffButton_Update;
function EUF_TargetFrame_OnHide()
ORG_TargetFrame_OnHide();
for i=1, MAX_PARTY_TOOLTIP_BUFFS do
getglobal("TargetFrameBuff"..i):Hide();
end
end;
ORG_TargetFrame_OnHide = TargetFrame_OnHide;
TargetFrame_OnHide = EUF_TargetFrame_OnHide;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -