- 와우 나이 30넘으면 걍 죽어야함 [77]
- 디아4 벼락불 변환 첫트 [40]
- 리니지M 5월 5주차 업데이트 [7]
- 나혼렙 ssr무기 없는데 이륙가능? [1]
- 걸그룹 엔믹스 설윤 [5]
- 나혼렙 내일 나오는 성진우 신규 무기 '스카디' 영상 [2]
▶ Lua Script ◀ 사용법 및 공유 Ⅱ
1. 첫번째 방법 : 보통의 월드오브워크레프트 설치 시 위치
C: / Program Files (x86) / World of Warcraft / Interface / AddOns / 로 가셔서
본인이 필수적으로 사용 하고있는 애드온 폴더의 파일들 중에 확장자 또는 유형이 Lua 로 지정되어있는
파일을 메모장으로 열기 후, 아래의 루아 스크립트 중 필요한 부분을 복사 붙여 넣기 하시고 저장 하시면 됩니다.
2. 두번째 방법 : 첨부 파일의 폴더 World 라는 영문명을 본인이 희망하는 동일명으로 수정하여
보통의 월드오브워크레프트 설치 시 위치
C: / Program Files (x86) / World of Warcraft / Interface / AddOns / 안에 넣어 주시면 작동 합니다.
(다운로드 받은 파일 그대로 스크립트만 추가 해서 사용하셔도 정상 작동 합니다)
World 라는 영문 명은 총 5군데 이며
1. 폴더명, 2. 파일2개 명, 3. TOC 확장자 또는 유형 파일을 메모장으로 열면,
## Title: World 와 World.lua 명 으로 명시되어있습니다.
원하는 루아 스크립트(Lua Script)를 복사 붙여넣기 하시고 저장 하시면 작동 합니다.
3. 삭제 방법 : 기존의 애드온을 삭제 하듯이 폴더 자체를 삭제 하시거나, 스크립트 내용 중에 불필요한
부분을 삭제 후 저장 하시고 /reload 를 채팅창 입력 후 엔터 또는 클라이언트 재접속을 하시면 삭제 됩니다.
채팅창에 /fstack 또는 /프레임구성 을 입력 후 엔터 를 치시면,
마우스오버 위치에 있는 창 또는 프레임의 구성요소 이름들을 툴팁으로 알 수 있습니다.
해당 위치에 마우스오버 한 채 Alt 키를 클릭 해보시면 프레임 구성요소들의 이름을, 영역 지정하여 알려줍니다.
또한 채팅창에 /reload 을 입력 후 엔터를 치시면, 본인이 입력하고 저장 한 스크립트를 바로 볼 수 있습니다.
1. 프레임의 크기를 조정 해봅시다.
모든 프레임의 기본 Scale 값은 1 =100% 이며, 1.5 = 150%, 2 = 200%, 2.5 = 250% 라고 표현합니다.
framename:SetScale(1.1) -- 수정 및 저장
프레임이름:SetScale(1.1), 프레임이름:SetScale(1.5), 프레임이름:SetScale(2), 프레임이름:SetScale(2.5)
등 원하는 크기로 수정이 가능합니다.
2. 프레임의 위치를 이동 시켜 봅시다.
framename:ClearAllPoints() -- 위치 값 초기화
framename:SetPoint("CENTER", X, Y) -- 위치 값 지정
framename.SetPoint = function() end -- 위치 값 고정
프레임이름:ClearAllPoints()
프레임이름:SetPoint("CENTER", X, Y) -- ("CENTER", X좌표 = 가로 값의 위치, Y좌표 = 세로 값의 위치)
프레임이름.SetPoint = function() end
X좌표 값과 Y의 좌표 값은 + 는 표기를 하지 않고, - 만 표기를 합니다. ex : ("CENTER", X, -Y)
DEFAULT_CHATFRAME_ALPHA = 0 --- 배경 투명도 설정
CHAT_FRAME_TAB_SELECTED_MOUSEOVER_ALPHA = 1; --- 탭 투명도 설정
CHAT_FRAME_TAB_SELECTED_NOMOUSE_ALPHA = 0;
CHAT_FRAME_TAB_ALERTING_MOUSEOVER_ALPHA = 0;
CHAT_FRAME_TAB_ALERTING_NOMOUSE_ALPHA = 0;
CHAT_FRAME_TAB_NORMAL_MOUSEOVER_ALPHA = 0;
CHAT_FRAME_TAB_NORMAL_NOMOUSE_ALPHA = 0;
CHAT_TAB_SHOW_DELAY = 1;
CHAT_TAB_HIDE_DELAY = 0;
CHAT_FRAME_FADE_TIME = 0;
CHAT_FRAME_FADE_OUT_TIME = 0;
for i = 1, 7 do
local chat = _G["ChatFrame"..i]
local font, size = chat:GetFont()
chat:SetFont(font, 11, "OUTLINE") --- 채팅
chat:SetShadowOffset(0, 0)
chat:SetShadowColor(0, 0, 0, 0)
CHAT_FONT_HEIGHTS = {13,12,11,10,9,8} --- 채팅창 글씨 크기 크기 설정 새 값으로 지정
QuestFont:SetFont(STANDARD_TEXT_FONT, 11) --- 퀘스트 창
QuestFontNormalSmall:SetFont(STANDARD_TEXT_FONT, 11, "THICKOUTLINE")
ItemTextFontNormal:SetFont(STANDARD_TEXT_FONT, 11, "THICKOUTLINE") --- 아이템 툴팁
GameTooltipText:SetFont(STANDARD_TEXT_FONT, 11, "THICKOUTLINE") --- 설명 툴팁
GameTooltipTextSmall:SetFont(STANDARD_TEXT_FONT, 11, "THICKOUTLINE")
GameTooltipHeaderText:SetFont(STANDARD_TEXT_FONT, 12, "THICKOUTLINE")
PlayerName:SetFont(STANDARD_TEXT_FONT, 11, "OUTLINE") --- 플레이어 유닛프레임 이름
CastingBarFrame.Text:SetFont(STANDARD_TEXT_FONT, 11, "OUTLINE") --- 캐스팅바 이름
TargetFrameTextureFrameName:SetFont(STANDARD_TEXT_FONT, 11, "OUTLINE") --- 타겟 유닛프레임 이름
TargetFrameSpellBar.Text:SetFont(STANDARD_TEXT_FONT, 11, "OUTLINE") --- 캐스팅바 이름
FocusFrameTextureFrameName:SetFont(STANDARD_TEXT_FONT, 11, "OUTLINE") --- 주시 유닛프레임 이름
FocusFrameSpellBar.Text:SetFont(STANDARD_TEXT_FONT, 11, "OUTLINE") --- 캐스팅바 이름
end
local f = CreateFrame("Frame") --- 이름표 위 이름 폰트
f:RegisterEvent("PLAYER_LOGIN")
f:SetScript("OnEvent", function(self, event, unit)
local function SetFont(obj, optSize)
local fontName= obj:GetFont()
obj:SetFont(STANDARD_TEXT_FONT,13,"OUTLINE") --- 글씨체, 크기, 아웃라인 유무
end
SetFont(SystemFont_LargeNamePlate,10)
SetFont(SystemFont_NamePlate,10)
SetFont(SystemFont_LargeNamePlateFixed,10)
SetFont(SystemFont_NamePlateFixed,10)
end)
local f = CreateFrame("Frame") --- 이름표 밑 시전바 폰트
f:RegisterEvent("NAME_PLATE_UNIT_ADDED")
f:SetScript("OnEvent", function(self, event, unit)
if self:IsForbidden() then return end
local p = C_NamePlate.GetNamePlateForUnit(unit).UnitFrame
local fontName, fontHeight, fontFlags = p.castBar.Text:GetFont()
p.castBar.Text:SetFont(STANDARD_TEXT_FONT,13,"OUTLINE") --- 글씨체, 크기, 아웃라인 유무
end)
hooksecurefunc("CompactUnitFrame_UpdateName", function(frame)
if not ShouldShowName(frame) then
frame.name:Hide()
else
frame.name:SetText(GetUnitName(frame.unit, true))
if CompactUnitFrame_IsTapDenied(frame) then
frame.name:SetVertexColor(0.5, 0.5, 0.5)
elseif frame.optionTable.colorNameBySelection then
if UnitIsPlayer(frame.unit) then
if UnitIsEnemy("player", frame.unit) then
frame.name:SetVertexColor(1,0,0) --- 적, 빨간색
else
frame.name:SetVertexColor(1,1,1) --- 아군, 하얀색
end
elseif frame.optionTable.considerSelectionInCombatAsHostile and CompactUnitFrame_IsOnThreatListWithPlayer(frame.displayedUnit) then
frame.name:SetVertexColor(1.0, 0.0, 0.0)
else
frame.name:SetVertexColor(UnitSelectionColor(frame.unit, frame.optionTable.colorNameWithExtendedColors))
end
end
frame.name:Show()
end
end)
DefaultCompactNamePlateFrameSetUpOptions.useLargeNameFont=false;
PlayerPVPIcon:SetAlpha(0)
TargetFrameTextureFramePVPIcon:SetAlpha(0)
FocusFrameTextureFramePVPIcon:SetAlpha(0)
hooksecurefunc("CompactUnitFrame_UpdateName",function(frame)
if frame and not frame:IsForbidden() then
local frame_name = frame:GetName()
if frame_name and frame_name:match("^CompactRaidFrame%d") and frame.unit and frame.name then
local unit_name = GetUnitName(frame.unit,true)
if unit_name then
frame.name:SetText(unit_name:match("[^-]+"))
frame.name:SetFont(STANDARD_TEXT_FONT , 9, "OUTLINE") --- 글씨체, 크기, 아웃라인 유무)
end
end
end
end)
hooksecurefunc("CompactUnitFrame_UpdateName", function(frame)
if ( string.match(frame.displayedUnit,"nameplate") ~= "nameplate") then return end
if ( not ShouldShowName(frame) ) then
frame.name:Hide()
else
local newName = GetUnitName(frame.displayedUnit, false) or UNKNOWN
frame.name:SetText(newName)
end
end)
for i=1, 12 do
_G["ActionButton"..i.."Name"]:SetAlpha(0) --- 메인
_G["MultiBarBottomRightButton"..i.."Name"]:SetAlpha(0) --- 아래 오른쪽
_G["MultiBarBottomLeftButton"..i.."Name"]:SetAlpha(0) --- 아래 왼쪽
_G["MultiBarRightButton"..i.."Name"]:SetAlpha(0) --- 오른쪽
_G["MultiBarLeftButton"..i.."Name"]:SetAlpha(0) --- 왼쪽
end
for i=1, 12 do
_G["ActionButton"..i.."HotKey"]:SetAlpha(0) --- 메인
_G["MultiBarBottomRightButton"..i.."HotKey"]:SetAlpha(0) --- 아래 오른쪽
_G["MultiBarBottomLeftButton"..i.."HotKey"]:SetAlpha(0) --- 아래 왼쪽
_G["MultiBarRightButton"..i.."HotKey"]:SetAlpha(0) --- 오른쪽
_G["MultiBarLeftButton"..i.."HotKey"]:SetAlpha(0) --- 왼쪽
end
PlayerFrameGroupIndicator.Show = function() return end
MainMenuMicroButton_SetAlertsEnabled(false)
CompactRaidFrameManager:Show() --- 레이드 프레임 매니저
CompactRaidFrameManager.Hide = function() end
CompactRaidFrameContainer:Show() --- 레이드 프레임 표시
CompactRaidFrameContainer.Hide = function() end
PlayerFrameBackground:SetColorTexture(0,0,0) --- 플레이어
TargetFrameNameBackground:SetColorTexture(0.4,0,0.4) --- 타겟
FocusFrameNameBackground:SetColorTexture(0.4,0,0.4) --- 주시
local LARGE_AURA_SIZE = 25 --- 내가걸은 버프&디버프 대상/주시, 기본 크기 21
local SMALL_AURA_SIZE = 21 --- 남이 걸은 버프&디버프 대상/주시, 기본 크기 17
local AURA_OFFSET_Y = 3
local NUM_TOT_AURA_ROWS = 3
local AURA_ROW_WIDTH = 126; --122
hooksecurefunc("TargetFrame_UpdateAuraPositions", function(self, auraName, numAuras, numOppositeAuras, largeAuraList, updateFunc, maxRowWidth, offsetX, mirrorAurasVertically)
--
maxRowWidth = AURA_ROW_WIDTH
local offsetX = 2
--
local size;
local offsetY = AURA_OFFSET_Y;
--
local rowWidth = 0;
local firstBuffOnRow = 1;
for i=1, numAuras do
--
if ( largeAuraList[i] ) then
size = LARGE_AURA_SIZE;
offsetY = AURA_OFFSET_Y + AURA_OFFSET_Y;
else
size = SMALL_AURA_SIZE;
end
--
if ( i == 1 ) then
rowWidth = size;
self.auraRows = self.auraRows + 1;
else
rowWidth = rowWidth + size + offsetX;
end
if ( rowWidth > maxRowWidth ) then
--
--
updateFunc(self, auraName, i, numOppositeAuras, firstBuffOnRow, size, offsetX, offsetY, mirrorAurasVertically);
rowWidth = size;
self.auraRows = self.auraRows + 1;
firstBuffOnRow = i;
offsetY = AURA_OFFSET_Y;
if ( self.auraRows > NUM_TOT_AURA_ROWS ) then
--
-- note: don't have to check if we have tot because AURA_ROW_WIDTH is the default anyway
maxRowWidth = AURA_ROW_WIDTH;
end
else
updateFunc(self, auraName, i, numOppositeAuras, i - 1, size, offsetX, offsetY, mirrorAurasVertically);
end
end
end)
GameTooltip:HookScript("OnTooltipSetUnit", function(GameTooltip)
--print("OnTooltipSetUnit")
local _, unit = GameTooltip:GetUnit()
--print(unit)
if UnitIsPlayer(unit) then
--print("UnitIsPlayer")
local _, class = UnitClass(unit)
--print(class)
local color = class and (CUSTOM_CLASS_COLORS or RAID_CLASS_COLORS)[class]
if color then
local text = GameTooltipTextLeft1:GetText()
--print(text)
GameTooltipTextLeft1:SetFormattedText("|cff%02x%02x%02x%s|r", color.r * 255, color.g * 255, color.b * 255, text:match("|cffxxxxxx(.+)|r") or text)
end
end
end)
local function OnEvent(self, event)
-- 자동 판매
totalPrice = 0
for myBags = 0,4 do
for bagSlots = 1, GetContainerNumSlots(myBags) do
CurrentItemLink = GetContainerItemLink(myBags, bagSlots)
if CurrentItemLink then
_, _, itemRarity, _, _, _, _, _, _, _, itemSellPrice = GetItemInfo(CurrentItemLink)
_, itemCount = GetContainerItemInfo(myBags, bagSlots)
if itemRarity == 0 and itemSellPrice ~= 0 then
totalPrice = totalPrice + (itemSellPrice * itemCount)
UseContainerItem(myBags, bagSlots)
end
end
end
end
if totalPrice ~= 0 then
DEFAULT_CHAT_FRAME:AddMessage("회색 아이템 판매로 벌어들인 금액: "..GetCoinTextureString(totalPrice), 255, 255, 255)
end
--- 자동 수리
if (CanMerchantRepair()) then
repairAllCost, canRepair = GetRepairAllCost();
if (canRepair and repairAllCost > 0) then
-- 길드 금고 금액 사용
guildRepairedItems = false
if (IsInGuild() and CanGuildBankRepair()) then
-- Checks if guild has enough money
local amount = GetGuildBankWithdrawMoney()
local guildBankMoney = GetGuildBankMoney()
amount = amount == -1 and guildBankMoney or min(amount, guildBankMoney)
if (amount >= repairAllCost) then
RepairAllItems(true);
guildRepairedItems = true
DEFAULT_CHAT_FRAME:AddMessage("Equipment has been repaired by your Guild", 255, 255, 255)
end
end
-- 내 금고 금액 사용
if (repairAllCost <= GetMoney() and not guildRepairedItems) then
RepairAllItems(false);
DEFAULT_CHAT_FRAME:AddMessage("장비 수리에 소모된 금액: "..GetCoinTextureString(repairAllCost), 255, 255, 255)
end
end
end
end
local f = CreateFrame("Frame")
f:SetScript("OnEvent", OnEvent);
f:RegisterEvent("MERCHANT_SHOW");
SLASH_EA1 = "/al" --- 채팅창 명령어
local f
SlashCmdList["EA"] = function()
if f then
f:Hide()
f = nil
else
f = CreateFrame('Frame', nil, UIParent)
f:SetAllPoints(UIParent)
local w = GetScreenWidth() / 64
local h = GetScreenHeight() / 36
for i = 0, 64 do
local t = f:CreateTexture(nil, 'BACKGROUND')
if i == 32 then
t:SetColorTexture(1, 1, 0, 0.5)
else
t:SetColorTexture(1, 1, 1, 0.15)
end
t:SetPoint('TOPLEFT', f, 'TOPLEFT', i * w - 1, 0)
t:SetPoint('BOTTOMRIGHT', f, 'BOTTOMLEFT', i * w + 1, 0)
end
for i = 0, 36 do
local t = f:CreateTexture(nil, 'BACKGROUND')
if i == 18 then
t:SetColorTexture(1, 1, 0, 0.5)
else
t:SetColorTexture(1, 1, 1, 0.15)
end
t:SetPoint('TOPLEFT', f, 'TOPLEFT', 0, -i * h + 1)
t:SetPoint('BOTTOMRIGHT', f, 'TOPRIGHT', 0, -i * h - 1)
end
end
end
SlashCmdList['RELOAD'] = function() ReloadUI() end
SLASH_RELOAD1 = '/rl' --- 채팅 창 명령어
local posX = 0 --- 위치 x
local posY = -37 --- 위치 y
local TimeToShow = 1 --- 표시할 시간
local FontSize = 15 --- 글자 크기
local addon = CreateFrame("frame")
local CombatStartStop = addon:CreateFontString()
CombatStartStop:SetFont(STANDARD_TEXT_FONT, FontSize,"OUTLINE")
CombatStartStop:SetVertexColor(1, 1, 1)
CombatStartStop:SetPoint("CENTER",nil,"CENTER",posX,posY)
local etime = 0
addon:RegisterEvent("PLAYER_REGEN_DISABLED")
addon:RegisterEvent("PLAYER_REGEN_ENABLED")
addon:SetScript("OnEvent",function(self,event)
local t = "전 투 종 료"
if event == "PLAYER_REGEN_DISABLED" then
t = "전 투 시 작"
end
etime = GetTime()+ TimeToShow
CombatStartStop:SetText(t)
CombatStartStop:Show()
addon:SetScript("OnUpdate",function()
if GetTime() > etime then
CombatStartStop:Hide()
addon:SetScript("OnUpdate",nil)
end
end)
end)
local Frame = CreateFrame("Frame")
Frame:RegisterEvent("PLAYER_LOGIN")
Frame:SetScript("OnEvent", function(...)
SetCVar("nameplateMaxDistance", 40) --- 이름표 사거리 40m 고정
SetCVar("showArenaEnemyFrames", 1) --- 투기장 적 프레임 숨김
SetCVar("nameplateShowSelf", 1) --- 플레이어 자원 표시
SetCVar("nameplateShowAll", 1) --- 항상 이름표 표시
SetCVar("nameplatePersonalShowAlways", 1) --- 개인자원 항상 표시
SetCVar ("nameplateSelfTopInset", .51) --- 개인자원 표시 고정
SetCVar ("nameplateSelfBottomInset", .43)
SetCVar("WorldTextScale", 1.25) --- 데미지 폰트 크기 조정
SetCVar ("nameplateSelfScale", 0.9) --- 플레이어(본인) 이름표 크기
SetCVar ("nameplateSelfAlpha", 1) --- 플레이어(본인) 이름표 투명도
SetCVar ("nameplateSelectedScale", 0.8) --- 선택 이름표 크기
SetCVar ("nameplateSelectedAlpha", 1) --- 선택 이름표 투명도
SetCVar ("nameplateMinScale", 0.8) --- 비 선택 이름표 크기
SetCVar ("nameplateMaxScale", 0.8)
SetCVar("nameplateMinAlpha", 0.6) --- 비 선택 이름표 투명도
SetCVar("nameplateMaxAlpha", 0.6)
SetCVar("cameraDistanceMaxZoomFactor", 2.6) --- 화면 시야 최대로 확장
SetCVar("ShowClassColorInNameplate", 1) --- 적군 이름표 직업 색상
SetCVar("ShowClassColorInFriendlyNameplate", 1) --- 아군 이름표 직업 색상
SetCVar("nameplateOtherTopInset", -1) --- 이름표 화면 밖으로 고정
SetCVar("nameplateOtherBottomInset", -1)
end)
local CDText={};
local function OnUpdate(self)
local ptr=CDText[self];
if ptr then
local now,start,duration=GetTime(),self:GetCooldownTimes();
start,duration=start/1000,duration/1000;
--Calculate needed values
local elapsed=now-start;
local remain=math.max(0,duration-elapsed);
--Colorize text
if elapsed<0 then
elseif remain>=600 then ptr:SetTextColor(1,1,1,0.5); --- 10분 이상 투명
elseif remain>=60 then ptr:SetTextColor(1,1,1,0.9); --- 61초 이상 흰색
elseif remain>=5 then ptr:SetTextColor(1,1,0); --- 6초 이상 노란색
elseptr:SetTextColor(1,0,0); --- 1초 이상 빨간색
end
end
end
hooksecurefunc(getmetatable(CreateFrame("Cooldown")).__index,"SetCooldown",function(self,start,duration,enabled)
if CDText[self]==nil then
self:SetHideCountdownNumbers(false);
local txt=self:GetRegions();
if txt then
txt:ClearAllPoints();
txt:SetPoint("Center", 1,0); --- 폰트 위치(중간기준, X,Y)
txt:SetFontObject("NumberFontNormalSmall"); --- 폰트 크기(작게 Small, 크게 Large)
--Color Manager
self:HookScript("OnUpdate",OnUpdate);
end
CDText[self]=txt or false;
end
end)
hooksecurefunc("ActionButton_UpdateCooldown", function(btn) local cdt = _G[btn:GetName().."Cooldown"] cdt:SetScale(1.7)end) --- 크기
http://www.inven.co.kr/board/wow/17/28424?name=subject&keyword=lua
Lorti Ui ( 각종 기본 프레임 테두리 색상을 검정색으로 변경 )
https://mods.curse.com/addons/wow/lorti_ui
OmniCC ( 각종 스킬 및 버프 디버프 쿨 타임 시간을 표시{ 현재 블리자드의 고의적인 패치로 오류} )
https://www.curseforge.com/wow/addons/omni-cc
OmniBar ( 상대 차단 스킬 쿨타임 표시 )
https://www.curseforge.com/wow/addons/omnibar
Foglight ( 월드맵 안개 지움 )
https://www.curseforge.com/wow/addons/foglight
Flyplatebuff ( 이름표 위 적 버프 또는 디버프 표시 )
https://www.curseforge.com/wow/addons/flyplatebuffs
Bigdebuffs ( 레이드 프레임에 적 주요 cc기 표시 )
https://www.curseforge.com/wow/addons/bigdebuffs
Deadly Boss Mods ( 던전 및 레이드 각종 알림 필수 애드온 )
https://www.curseforge.com/wow/addons/deadly-boss-mods -- 메인 (필수)
https://www.curseforge.com/wow/addons/deadly-boss-mods-wod -- 드레노어의 전쟁군주 (플러그인)
https://www.curseforge.com/wow/addons/deadly-boss-mods-mop -- 판다리아의 안개 (플러그인)
https://www.curseforge.com/wow/addons/deadly-boss-mods-cataclysm-mods -- 대격변 (플러그인)
https://www.curseforge.com/wow/addons/deadly-boss-mods-wotlk -- 리치왕의 분노 (플러그인)
https://www.curseforge.com/wow/addons/dbm-bc -- 불타는 성전 & 오리지널 (플러그인)
BigWigs ( 던전 및 레이드 각종 알림 필수 애드온 )
https://www.curseforge.com/wow/addons/big-wigs -- 메인 (필수)
https://www.curseforge.com/wow/addons/little-wigs -- 5인 던전 (BigWigs 메인과 함께 필수 설치)
https://www.curseforge.com/wow/addons/bigwigs_warlordsofdraenor -- 드레노어의 전쟁군주 (플러그인)
https://www.curseforge.com/wow/addons/bigwigs_mistsofpandaria -- 판다리아의 안개 (플러그인)
https://www.curseforge.com/wow/addons/bigwigs_cataclysm --대격변 (플러그인)
https://www.curseforge.com/wow/addons/bigwigs_wrathofthelichking -- 리치왕의 분노 (플러그인)
https://www.curseforge.com/wow/addons/bigwigs_burningcrusade -- 불타는 성전 (플러그인)
https://www.curseforge.com/wow/addons/bigwigs_classic -- 오리지널 (플러그인)
MoveAnything ( 모든 알림 창 및 각종 프레임 위치, 크기 변경 및 숨김, 편리하지만 오류들이 많음 )
https://www.curseforge.com/wow/addons/move-anything
Recount ( DPS, HPS 등 각종 실시간 정보 수집 )
https://mods.curse.com/addons/wow/recount
Skada Damage Meter ( DPS, HPS 등 각종 실시간 정보 수집 )
https://mods.curse.com/addons/wow/skada
Details! ( DPS, HPS 등 각종 실시간 정보 수집 )
https://mods.curse.com/addons/wow/details
WeakAuras ( 각종 스킬 또는 버프 디버프 알람 설정 )
https://mods.curse.com/addons/wow/weakauras-2
TellmeWhen ( 각종 스킬 또는 버프 디버프 알람 설정 )
https://mods.curse.com/addons/wow/tellmewhen
NpcScan ( 각종 희귀 몬스터들의 젠 장소 및 위치 표시 )
https://mods.curse.com/addons/wow/npcscan
NpcScanOverlay ( 각종 희귀 몬스터들의 젠 장소 및 위치 표시 )
https://mods.curse.com/addons/wow/npcscan-overlay
Gladius ( 투기장 적 직업 및 특성과 점감 상태 또는 계급장 사용 여부 표시 )
https://mods.curse.com/addons/wow/gladius
AdvancedinterfaceOption ( 군단 패치로 안보이는, 예전 인터페이스 설정을 손쉽게 할 수 있음 )
https://mods.curse.com/addons/wow/advancedinterfaceoptions
RangeDisplay ( 대상, 주시대상, 소환수, 마우스 오버 등 과의 사정거리를 숫자로 알림 )
https://mods.curse.com/addons/wow/range-display
Tidy Plates ( 이름표 애드온 )
https://www.curseforge.com/wow/addons/tidy-plates-threat-plates
좋은 정보글인데 원본글이 삭제되어 구글에서 복원하여 올렸습니다.