취미/게임

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

soulowner 2025. 8. 22. 23:53
반응형

 

고통 흑마법사가 부패를 사용할 때,
일몰(어둠의 무아지경)이 발생하면 플레이어 머리 위에 아이콘이 나타나도록 하는 애드온입니다.


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"로 바꿔야 합니다.

반응형