|
2026-01-24 17:01
조회: 29
추천: 0
[애드온]센터바 중앙바 버튼이 동작이 안되는 문제안녕하세요
이번 한밤패치 후에 돌아왔는데 갑자기 잘되던 중앙 버튼이 뭘해도 뜨지않아서 이렇게 질문드립니다. ![]() 예전엔 저렇게 가운데 양옆에 6개씩 떴는데 지금은 보이지 않아서 게임이 너무 힘들어졌어요 아침부터 일어나서 찾았는데 비슷한 애드온이 없네요.. 찾아본 애드온은 도미노/바텐더/OPIE? 등이 있는데 너무 달라서요.. 제가 메모장으로 들어가서 봤는데 어디를 건드려야 할지 몰라서 이렇게 도움을 구합니다. 도움 주시면 감사드리겠습니다. --------------------------------------- ---@diagnostic disable: undefined-field, redundant-parameter local addonname, addon = ... local ActionButton_UpdateState = ActionButton_UpdateState or function(self) self:UpdateState() end local ActionButton_SetTooltip = ActionButton_SetTooltip or function(self) self:SetTooltip() end local default = { x = { -14, -14, -14, -19, -19, -19, 14, 14, 14, 19, 19, 19 }, y = { -5, 0, 5, -7, -2, 3, -5, 0, 5, 3, -2, -7 }, scales = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, yOffset = 0, alpha = 1, scale = 1, hideTooltip = true, combat = false, mouseover = false, vehiclehide = false, step = 10, showgrid = true, page = 8, } addon = CreateFrame("checkbutton", addonname, UIParent, "SecureHandlerAttributeTemplate") addon:SetFrameStrata("BACKGROUND") addon:SetWidth(36) addon:SetHeight(36) addon:SetPoint("CENTER") addon:EnableMouse(false) addon:SetAttribute("_onattributechanged", [=[ if name == 'actionpage' then control:ChildUpdate('state') elseif name == "state-vehicle" then if value == "hide" then self:Hide() else self:Show() end end ]=]) addon.buttons = {} local buttons = addon.buttons -- eventhandler local events = {} addon:SetScript("OnEvent", function(self, event, ...) local callback = events[event] local types = type(callback) if (types == "string" and self[callback]) then self[callback](self, event, ...) elseif (types == "function") then callback(self, event, ...) elseif self[event] then self[event](self, event, ...) end end) hooksecurefunc(addon, "RegisterEvent", function(self, event, callback) events[event] = callback end) -- alpha local function OnUpdate(self, elapsed) self.update = self.update + elapsed if self.update >= 0.3 or self.startAlpha == self.endAlpha or self.db.alpha == 1 then self.update = 0 self:SetAlpha(self.endAlpha) self:SetScript("OnUpdate", nil) return end self:SetAlpha(self.startAlpha + (self.endAlpha - self.startAlpha) * (self.update / 0.3)) end local function SetAlpha(endalpha) addon.startAlpha = addon:GetAlpha() addon.endAlpha = endalpha addon.update = 0 addon:SetScript("OnUpdate", OnUpdate) end -- child script local function OnEnter(self) if not addon.db.hideTooltip then ActionButton_SetTooltip(self) end if addon.db.mouseover and addon.endAlpha ~= 1 then SetAlpha(1) end end local function OnLeave(self) GameTooltip:Hide() if addon.db.mouseover and not (addon.iscombat or addon.targetselect) then SetAlpha(addon.db.alpha) end end local function OAU(self) if self.action then ActionButton_UpdateState(self) end end -- binding local function UpdateBindings() for i, button in ipairs(buttons) do local name = button:GetName() local hotkey = _G[name .. "HotKey"] local key = GetBindingKey(name:upper()) local text = GetBindingText(key, "KEY_", 1) if text == "" then hotkey:SetText(RANGE_INDICATOR) hotkey:SetPoint("TOPLEFT", button, "TOPLEFT", 1, -2) hotkey:Hide() ClearOverrideBindings(button) else hotkey:SetText(text) hotkey:SetPoint("TOPLEFT", button, "TOPLEFT", -2, -2) hotkey:Show() SetOverrideBindingClick(button, true, key, button:GetName(), "LeftButton") end end end local function SetBindingText() BINDING_HEADER_CENTARBAR = "CentarBar" for i, button in ipairs(buttons) do _G["BINDING_NAME_" .. button:GetName():upper()] = "버튼 " .. i end UpdateBindings() end -- createbutton for i = 1, 12 do buttons[i] = CreateFrame("checkbutton", addonname .. "Button" .. i, addon, "ActionBarButtonTemplate") buttons[i]:SetID(i) buttons[i]:SetFrameStrata("MEDIUM") buttons[i]:SetFrameLevel(0) buttons[i]:HookScript("OnAttributeChanged", OAU) buttons[i]:SetAttribute("_childupdate-state", "self:SetAttribute('action', '$input')") buttons[i]:GetNormalTexture():SetAlpha(0.5) buttons[i]:SetScript("OnEnter", OnEnter) buttons[i]:SetScript("OnLeave", OnLeave) end function addon:Setup() self.combatlockdown = InCombatLockdown() if self.combatlockdown then return end local db = self.db UnregisterStateDriver(self, "vehicle") if db.vehiclehide then if db.mounthide then RegisterStateDriver(self, "vehicle", "[vehicleui][mounted]hide;show") else RegisterStateDriver(self, "vehicle", "[vehicleui]hide;show") end end self.targetselect = db.target and UnitExists("target") self:SetAlpha(db.alpha) self:SetScale(db.scale) self:SetPoint("CENTER", self:GetParent(), "CENTER", 0, db.yOffset * db.step) self:SetAttribute("actionpage", self.db.page) for i, button in ipairs(buttons) do if self.db.showgrid then button:SetAttribute("showgrid", 1) button:Show() button:GetNormalTexture():SetAlpha(0.5) else button:SetAttribute("showgrid", 0) end button:SetScale(db.scales[i]) button:SetPoint("CENTER", db.x[i] * db.step / db.scales[i], db.y[i] * db.step / db.scales[i]) end end function addon:InitDB(event) self:UnregisterEvent(event) local dbName = addonname .. "SaveData" _G[dbName] = _G[dbName] or default self.db = _G[dbName] for k, v in pairs(default) do if (type(v) == "table") then if type(v) ~= type(self.db[k]) then self.db[k] = v end end end self:Setup() end function addon:CombatEnd(event) self.iscombat = false if self.combatlockdown then self:Setup() end if not self.db.combat then return end SetAlpha(self.targetselect and 1 or self.db.alpha) end function addon:CombatStart(event) self.iscombat = true if not self.db.combat then return end SetAlpha(1) end function addon:PLAYER_TARGET_CHANGED(event) if not self.db.target or self.iscombat then self.targetselect = false return end self.targetselect = UnitExists("target") SetAlpha(self.targetselect and 1 or self.db.alpha) end addon:RegisterEvent("VARIABLES_LOADED", "InitDB") addon:RegisterEvent("PLAYER_REGEN_ENABLED", "CombatEnd") addon:RegisterEvent("PLAYER_REGEN_DISABLED", "CombatStart") addon:RegisterEvent("UPDATE_BINDINGS", UpdateBindings) addon:RegisterEvent("PLAYER_LOGIN", SetBindingText) addon:RegisterEvent("PLAYER_TARGET_CHANGED") SlashCmdList[addonname .. "Command"] = function(msg) if not _G[addonname .. "_Option"] then LoadAddOn(addonname .. "_Option") _G[addonname .. "_Option"] = _G[addonname .. "_Option"] or function() end end _G[addonname .. "_Option"]() end _G["SLASH_" .. addonname .. "Command1"] = "/cbo" _G["SLASH_" .. addonname .. "Command2"] = "/츄ㅐ" _G["SLASH_" .. addonname .. "Command3"] = "/센타" _G["SLASH_" .. addonname .. "Command4"] = "/중앙바"
EXP
127,831
(71%)
/ 135,001
회드임니당
|

잔인한아가씨