제작자는 고대인님이시구요

/run GRA_MAP={}GRA_MAP[1]={2812,1833,408,12809,46968,853,85388,44572,5211,30283,89766,9005,22570,47481,88625,90337,91797}GRA_MAP[2]={118,82691,49203,6770,1499,20066,51514}GRA_MAP[3]={2094,5246,8122,5484,5782,6358,10326,676,51722}

/run GRA_MAP[4]={28730,18498,47476,34490,1330,55021,24259,15487}function sG(n,s,k)if not gradual[n]then gradual[n]={}end;if not gradual[n][k]then gradual[n][k]=cG(k..n)end;_G[k..n]:SetTexture(GetSpellTexture(s))rfc(_G[k..n].c,GetTime(),22,1)end

/run function cG(n)f.t=f:CreateTexture(n,"BORDER")f.t:SetSize(gs,gs)f.t:SetPoint("Top",0,100)f.t.c=cf("Cooldown",n.."C")f.t.c:SetAllPoints(f.t)return f.t;end

/run function fP(n)for i=1,WorldFrame:GetNumChildren()do local fr=select(i,WorldFrame:GetChildren())if(fr:GetName() and (fr:GetName()):find("NamePlate")and n==select(4,fr:GetRegions()):GetText()and fr:IsVisible())then return fr;end;end;end

/run function pG()for n,tb in pairs(gradual)do local pl=fP(n)if(pl)then if(n==UnitName("target"))then bG(pl,tb,1)else bG(pl,tb,0.6)end;else for _,fr in pairs(tb)do fr:ClearAllPoints()fr:SetPoint("Top",UIParent,"Top",0,100)end;end;end;end

/run function bG(pt,tb,ap)local gn=0;for _,fr in pairs(tb)do fr:ClearAllPoints()if(fr.c:IsVisible())then fr:SetAlpha(ap)fr:SetPoint("BOTTOMLEFT",pt,"TOPRIGHT",30+gs*floor(gn/2),-25-gs*(gn%2))gn=gn+1;else fr:SetPoint("Top",UIParent,"Top",0,100)end;end;end

/run function kG(_,e,...)if(e==e6)then _,eT,_,_,_,_,_,_,n,fl,_,s,_,_,_=...;if(bit.band(fl,64)==64 and eT=="SPELL_AURA_APPLIED")then n=strmatch(n,"[%P]+")for k,tb in pairs(GRA_MAP) do for _,id in pairs(tb) do if(id==s)then sG(n,s,k)end;end;end;end;end;end

/run gs=25;cf=CreateFrame;rfc=CooldownFrame_SetTimer;e6="COMBAT_LOG_EVENT_UNFILTERED";gradual={}f=cf("frame")f:SetAllPoints()f:SetScript("OnEvent",kG)f:RegisterEvent(e6)f:SetScript("OnUpdate",pG)



1줄씩 복사해서 매크로로 만드시고 1번부터 8번까지 누르시면됩니다