-- Buff Filter
buff={126700,53365,125489};bVal={85,-30,25,5};nBuff=5;
f=CreateFrame("frame");f:SetAllPoints();function checkBuff(unit,id) return UnitBuff(unit,GetSpellInfo(id)) end;
function mString(name,size) f.s=f:CreateFontString(name,"BORDER");f.s:SetFont("Fonts//2002B.TTF",size,0); return f.s;end;
function mFrame(name,size) f.t=f:CreateTexture("F"..name,"BORDER") f.t:SetSize(size,size) f.c=mString("S"..name,15);f.c:SetPoint("Bottom",f.t,"Top",0,0);f.c=mString("C"..name,14);f.c:SetPoint("Topleft",f.t,"Bottom",-3,13);end;
function Act(name,id,count)_G["F"..name]:SetTexture(GetSpellTexture(id));if(count>1)then _G["C"..name]:SetText(count);else _G["C"..name]:SetText("");end;end;
function MakeFrame(name,num,val)local x=val[1];for i=1,num do mFrame(name..i,val[3]);_G["F"..name..i]:SetPoint("Center", x,val[2]);x=x+val[3]+val[4]end;end;
function Buff(s,e, unit) if(unit=="player")then local num=1;for i=1,#buff do a={checkBuff(unit,buff[i])};if(a[1])then Act("B"..num,buff[i],a[4]);num=num+1;end;end;for i=num,nBuff do _G["FB"..i]:SetTexture("");_G["CB"..i]:SetText("");end;end;end;
function BuffStr() num=1;for i=1,#buff do a={checkBuff("player",buff[i])};if(a[1])then _G["SB"..num]:SetText(floor(a[7]-GetTime()));num=num+1;end;end;for i=num,nBuff do _G["SB"..i]:SetText("");end;end;
MakeFrame("B", nBuff, bVal);f:SetScript("OnEvent",Buff) f:RegisterEvent("UNIT_AURA");f:SetScript("OnUpdate", BuffStr);
-- Buff Filter
buff={126700,53365,125489};bVal={50,-20,35,5};
function checkBuff(unit,id) return UnitBuff(unit,GetSpellInfo(id)) end;
function mFrame(id) f=CreateFrame("frame") f:SetSize(bVal[3],bVal[3]) f.t=f:CreateTexture(nil,"BORDER") f.t:SetAllPoints() f.t:SetTexture(GetSpellTexture(id)) return f;end;
bFrame = {}; for i=1,#buff do bFrame[i] = mFrame(buff[i]) bFrame[i]:Hide() end ;
function Act(frame, offset, val) frame:Show();frame:SetPoint("CENTER",offset+val[1],val[2]);end;
function Buff(self,e, unit) if(unit=="player")then for i=1,#buff do bFrame[i]:Hide();end;local x=bVal[1];for i=1,#buff do if(checkBuff(unit,buff[i]))then Act(bFrame[i],x,bVal) x=x+bVal[3]+bVal[4]end;end;end;end;
f=CreateFrame("frame")
f:SetScript("OnEvent",Buff) f:RegisterEvent("UNIT_AURA")
function BuffStr() num=1;for i=1,#buff do a={checkBuff("player",buff[i])};if(a[1])then _G["SB"..num]:SetText(floor(a[7]-GetTime()));num=num+1;end;end;for i=num,nBuff do _G["SB"..i]:SetText("");end;end;
옛 고대인님께서 올려주신 버프필터 매크로애드온 입니다.
위에꺼는 버프시간이 나타나고 아래꺼는 안되는 건데요..
위에껄 쓰고싶지만 써보니 메모리 상승압박이 장난아니더군요.. 아래꺼는 메모리 고정이구요
혹시 아래매크로에 버프시간이 나타나게 할수있을지요?
아니면 위매크로 메모리압박의 문제가 뭔지좀 알고싶습니다..