드군까지 인벤 레이드 프레임을 사용하다가 소군단 되면서 기본UI가 괜찮아 보여서 쓰기 시작했는데요. 기본UI 공격대창을 사용하면서 물약 사용에 대한 체크를 못하는 부분이 아쉬웠습니다. 그냥 지나쳐 오다가 이번 참에 찾아봤는데 결과물이 괜찮은 것 같아서 공유하고자 올립니다.

  출처를 참조했습니다. 애드온으로 쓰실 분은 첨부파일을 받으세요.

-- ■■  기본UI 공격대창에서 군단 물약 사용 확인
local indicators, buffs = {}, {
["굽히지 않는 자의 물약"] = "추가 방어도 3500(25초)",
["옛 전쟁의 물약"] = "근접 공격 유령 소환",
["치명적인 은총의 물약"] = "일정 확률 마력 방출",
["지맥격류 물약"] = "최대 240,000 마나 회복(10초)",
["지속되는 힘의 물약"] = "모든 능력치 2500(60초)",
}

local function getIndicator(frame)
local indicator = indicators[frame:GetName()]
if (not indicator) then
indicator = CreateFrame("Button", nil, frame, "CompactAuraTemplate")
indicator:ClearAllPoints()
indicator:SetPoint("TOPLEFT", frame, "TOPLEFT")
indicator:SetSize(20, 20)
indicators[frame:GetName()] = indicator
indicator.cooldown:SetHideCountdownNumbers(false)
end
return indicator
end

local function updateBuffs(frame)
if not frame:IsVisible() then return end
local indicator = getIndicator(frame)
for i = 1, 40 do
local buffName = UnitBuff(frame.displayedUnit, i)
if (not buffName) then break end
if (buffs[buffName]) then
CompactUnitFrame_UtilSetBuff(indicator, frame.displayedUnit, i, nil)
indicator:SetScript("OnEnter", function(self)
GameTooltip:SetOwner(self, "ANCHOR_CURSOR")
local link = select(2, GetItemInfo(buffName)) or GetSpellLink(buffName)
if (link) then GameTooltip:SetHyperlink(link) end
GameTooltip:Show()
end)
indicator:SetScript("OnLeave", function(self) GameTooltip:Hide() end)
return
end
end
indicator:Hide()
end

hooksecurefunc("CompactUnitFrame_UpdateBuffs", updateBuffs)