와우(wow) 리치왕의 분노 (3.3.5) 흑마법사 일몰 애드온

고통 흑마법사가 부패를 사용할 때,
일몰(어둠의 무아지경)이 발생하면 플레이어 머리 위에 아이콘이 나타나도록 하는 애드온입니다.
ShadowTranceAlert.toc
## Interface: 30305
## Title: ShadowTranceAlert
## Notes: 고통 흑마법사 일몰 애드온
## Author: Soulowner
## Version: 1.0
ShadowTranceAlert.lua
ShadowTranceAlert.lua
-- 프레임 생성: 화면에 아이콘을 표시할 프레임
local f = CreateFrame("Frame", "ShadowTranceAlert", UIParent)
f:SetSize(35, 35) -- 아이콘 크기 설정
f:SetPoint("CENTER", UIParent, "CENTER", 0, 100) -- 화면 중앙에서 위로 100픽셀
f:SetFrameStrata("HIGH") -- 다른 UI 위에 표시되도록 설정
f:Hide() -- 초기에는 숨김 상태
-- 텍스처 생성: 아이콘 이미지 설정
local icon = f:CreateTexture(nil, "ARTWORK")
icon:SetTexture("Interface\\Icons\\Spell_Shadow_ShadowBolt") -- 어둠의 무아지경 아이콘
icon:SetAllPoints(f) -- 텍스처를 프레임 전체에 맞춤
-- 이벤트 등록: 플레이어의 버프 변화 감지
f:RegisterEvent("UNIT_AURA")
-- 이벤트 처리 함수: 버프 감지 및 아이콘 표시/숨김
f:SetScript("OnEvent", function(_, _, unit)
-- 플레이어 버프만 감지
if unit ~= "player" then return end
local found = false -- 버프 감지 여부
-- 최대 40개의 버프를 순회하며 확인
for i = 1, 40 do
local name = UnitBuff("player", i)
-- 어둠의 무아지경 버프가 있으면 표시
if name == "어둠의 무아지경" then
found = true
break
end
end
-- 버프가 있으면 아이콘 표시, 없으면 숨김
if found then
f:Show()
else
f:Hide()
end
end)
local f = CreateFrame("Frame", "ShadowTranceAlert", UIParent)
if name == "어둠의 무아지경" then
위에 적은 2개의 코드를 아래 코드로 바꾸시면 도적의 반격으로 사용하실 수 있습니다.
local f = CreateFrame("Frame", "RiposteAlert", UIParent)
if name == "반격" then
설명 :
항목 기존 변경 후
프레임 이름 "ShadowTranceAlert" "RiposteAlert"
버프 이름 비교 "어둠의 무아지경" "반격"
CreateFrame("Frame", "RiposteAlert", UIParent)
→ 이건 프레임의 내부 식별자로, 기능에는 영향 없지만 클래스별로 구분하거나 유지보수 시 유용합니다.
if name == "반격" then → 이 부분은 실제 버프 감지에 직접적으로 영향을 주는 핵심 조건입니다.
→ 한글 클라이언트 기준 "반격"이 정확한 버프 이름이라면, 이 비교는 반드시 바꿔야 합니다.
한글 클라이언트 기준이며, 영어 클라이언트라면 "Riposte"로 바꿔야 합니다.