매크로 게시판

전체보기

모바일 상단 메뉴

본문 페이지

[공통] 패치후 최대시야 늘리는 매크로를 찾습니다

아이콘 Knight_Seven
댓글: 1 개
조회: 2837
2016-08-04 23:43:43

맥스캠이라는 애드온으로 최대 시야가 기존 수준으로 4.0 이상 늘리는게 가능하다고 하는데요
이 애드온이 작동된다면 애드온에 쓰인 걸 토대로 매크로화 할수는 없을까요

Lua 파일 내용이 아래와 같습니다

-- License: Public Domain

local NAME, S = ...
local L = S.L

local ACR = LibStub("AceConfigRegistry-3.0")
local ACD = LibStub("AceConfigDialog-3.0")
local db

local GetCameraZoom = GetCameraZoom
local target, isZoomIn

local defaults = {
db_version = 1.0,
increment = 4,
speed = 2,
distance = 50,
}

local options = {
type = "group",
name = format("%s |cffADFF2Fv%s|r", NAME, GetAddOnMetadata(NAME, "Version")),
args = {
group1 = {
type = "group", order = 1,
name = " ",
inline = true,
get = function(i) return db[i[#i]] end,
set = function(i,v) db[i[#i]] = v end,
args = {
increment = {
type = "range", order = 1,
width = "double", descStyle = "",
name = L.ZOOM_INCREMENT,
min = 1, max = 100, softMax = 10, step = .5,
},
spacing1 = {type = "description", order = 2, name = "n"},
speed = {
type = "range", order = 3,
width = "double", descStyle  = "",
name = L.ZOOM_SPEED,
min = 1, max = 50, softMax = 5, step = .5,
},
spacing2 = {type = "description", order = 4, name = "n"},
distance = {
type = "range", order = 5,
width = "double", desc = OPTION_TOOLTIP_MAX_FOLLOW_DIST,
name = MAX_FOLLOW_DIST,
min = 15, max = 1000, softMax = 50, step = 1,
},
},
},
info = {
type = "description", order = 2,
name = function() return format(" %s = |cffADFF2F%.1f|r", L.DISTANCE, GetCameraZoom()) end,
fontSize = "medium",
},
},
}

local f = CreateFrame("Frame")

function f:OnEvent(event, addon)
if addon == NAME then
if not MaxCamDB or MaxCamDB.db_version < defaults.db_version then
MaxCamDB = CopyTable(defaults)
end
db = MaxCamDB
ACR:RegisterOptionsTable(NAME, options)
ACD:AddToBlizOptions(NAME, NAME)
ACD:SetDefaultSize(NAME, 420, 320)
-- cameraDistanceMoveSpeed affects MoveView
C_Timer.After(2, function()
SetCVar("cameraDistanceMoveSpeed", GetCVarDefault("cameraDistanceMoveSpeed"))
end)
self:UnregisterEvent(event)
self:SetScript("OnUpdate", f.CameraZoom)
self:Hide()
end
end

function f:CameraZoom() -- OnUpdate
local zoom = GetCameraZoom()
if (isZoomIn and (zoom<target or zoom==0)) or (not isZoomIn and zoom>target) then
MoveViewInStop()
self:Hide()
if ACD.OpenFrames.MaxCam then
ACR:NotifyChange(NAME) -- show current distance
end
end
end

function CameraZoomIn()
target = min(GetCameraZoom()-db.increment, db.distance)
MoveViewInStart(db.speed)
isZoomIn = true
f:Show()
end

function CameraZoomOut()
target = min(GetCameraZoom()+db.increment, db.distance)
MoveViewInStart(-db.speed) -- bug
isZoomIn = false
f:Show()
end

f:RegisterEvent("ADDON_LOADED")
f:SetScript("OnEvent", f.OnEvent)

for i, v in pairs({"mc", "maxcam"}) do
_G["SLASH_MAXCAM"..i] = "/"..v
end

SlashCmdList.MAXCAM = function()
ACD:Open(NAME)
end

local dataobject = {
type = "launcher",
icon = "Interface\Icons\inv_misc_spyglass_03",
text = NAME,
OnClick = function()
ACD[ACD.OpenFrames.MaxCam and "Close" or "Open"](ACD, NAME)
end,
OnTooltipShow = function(tt)
tt:AddLine("|cffADFF2F"..NAME.."|r")
tt:AddDoubleLine(MAX_FOLLOW_DIST, format("%.1f", GetCameraZoom()))
end,
}

LibStub("LibDataBroker-1.1"):NewDataObject(NAME, dataobject)

초 인벤인

Lv90 Knight_Seven

모바일 게시판 하단버튼

댓글

새로고침
새로고침

모바일 게시판 하단버튼

지금 뜨는 인벤

더보기+

모바일 게시판 리스트

모바일 게시판 하단버튼

글쓰기

모바일 게시판 페이징

최근 HOT한 콘텐츠

  • 와우
  • 게임
  • IT
  • 유머
  • 연예
AD