留言

Lucas · 2021-03-08 12:08:45

請問一下 這是哪裡有衝突到?

1x [ADDON_ACTION_BLOCKED] 插件 'WeakAuras' 嘗試調用保護功能 'AutoTankMisdirect:SetAttribute()'。
[string "@!BugGrabber\BugGrabber.lua"]:519: in function <!BugGrabber\BugGrabber.lua:519>
[string "=[C]"]: in function `SetAttribute'
[string "--[==[ Error in '自动嫁祸':'initialization' ]==] return function() --
-- Author: Chilly @ Draenor
-- Modified by: Abel.Wu HopeAsd
--

local a = aura_env
local spell = 57934 -- init var & magic var
local matter = a.config.matter 
local name = a.config.name
local btn = _G[name]
local _,classEn = UnitClass("player")


function a:UpdateTank()
    for unit in WA_IterateGroupMembers() do
        if UnitGroupRolesAssigned(unit) == "TANK" then
            self:UpdateMacro(unit)
            return
        end
    end
    a:UpdateMacro("pet")
end

function a:UpdateMacro(tank)
    if not UnitExists(tank) then return end
    if tank == "pet" and not UnitGUID(tank):find("Pet") then return end
    local spellName = GetSpellInfo(spell)
    if not spellName then print(aura_env.id,"Error","unkown spell ".. spell) end
    self.btn:SetAttribute("macrotext", string.format(matter,tank,spellName))
    
    if not self.btn.GUID or(self.btn.GUID and self.btn.GUID~=UnitGUID(tank)) then
        self.btn.GUID = UnitGUID(tank)
        print("["..aura_env.id.."] :","Select Target ("..spellName..")  -> "..GetUnitName(tank,true).."("..tank..")")
    end
    --SendChatMessage(), "SAY")
end

function a:onInit()
    if classEn == "HUNTER" then
        spell = 34477
    elseif classEn == "ROGUE" then
        spell = 57934
    end
    
    if not btn then 
        local region = WeakAuras.GetRegion(aura_env.id)
        btn = CreateFrame("Button", name, region, "SecureActionButtonTemplate")
        btn:SetAttribute("type", "macro")
        -- self.btn:SetAllPoints(region)
    end
    if not btn.lastSpell or (btn.lastSpell and btn.lastSpell ~= spell ) then 
        print("["..aura_env.id.."] :","Spell Change ("..GetSpellInfo(spell)..")" ) 
        btn.lastSpell = spell   
    end
    
    a.btn = btn
end

a:onInit()
a:UpdateTank()
 end"]:29: in function `UpdateMacro'
[string "--[==[ Error in '自动嫁祸':'initialization' ]==] return function() --
-- Author: Chilly @ Draenor
-- Modified by: Abel.Wu HopeAsd
--

local a = aura_env
local spell = 57934 -- init var & magic var
local matter = a.config.matter 
local name = a.config.name
local btn = _G[name]
local _,classEn = UnitClass("player")


function a:UpdateTank()
    for unit in WA_IterateGroupMembers() do
        if UnitGroupRolesAssigned(unit) == "TANK" then
            self:UpdateMacro(unit)
            return
        end
    end
    a:UpdateMacro("pet")
end

function a:UpdateMacro(tank)
    if not UnitExists(tank) then return end
    if tank == "pet" and not UnitGUID(tank):find("Pet") then return end
    local spellName = GetSpellInfo(spell)
    if not spellName then print(aura_env.id,"Error","unkown spell ".. spell) end
    self.btn:SetAttribute("macrotext", string.format(matter,tank,spellName))
    
    if not self.btn.GUID or(self.btn.GUID and self.btn.GUID~=UnitGUID(tank)) then
        self.btn.GUID = UnitGUID(tank)
        print("["..aura_env.id.."] :","Select Target ("..spellName..")  -> "..GetUnitName(tank,true).."("..tank..")")
    end
    --SendChatMessage(), "SAY")
end

function a:onInit()
    if classEn == "HUNTER" then
        spell = 34477
    elseif classEn == "ROGUE" then
        spell = 57934
    end
    
    if not btn then 
        local region = WeakAuras.GetRegion(aura_env.id)
        btn = CreateFrame("Button", name, region, "SecureActionButtonTemplate")
        btn:SetAttribute("type", "macro")
        -- self.btn:SetAllPoints(region)
    end
    if not btn.lastSpell or (btn.lastSpell and btn.lastSpell ~= spell ) then 
        print("["..aura_env.id.."] :","Spell Change ("..GetSpellInfo(spell)..")" ) 
        btn.lastSpell = spell   
    end
    
    a.btn = btn
end

a:onInit()
a:UpdateTank()
 end"]:17: in function `UpdateTank'
[string "--[==[ Error in '自动嫁祸' ]==] return --
-- Author: Chilly @ Draenor
-- Modified by: Abel.Wu
--
function(e)
    if e == "GROUP_ROSTER_UPDATE" then
        if InCombatLockdown() then
            aura_env.needUpdate = true
        else
            aura_env:UpdateTank()
        end
    elseif aura_env.needUpdate then
        aura_env:UpdateTank()
        aura_env.needUpdate = false
    end
end"]:13: in function <[string "--[==[ Error in '自动嫁祸' ]==] return ..."]:5>
[string "=[C]"]: in function `xpcall'
[string "@WeakAuras\GenericTrigger.lua"]:600: in function <WeakAuras\GenericTrigger.lua:536>
[string "@WeakAuras\GenericTrigger.lua"]:732: in function `ScanEventsInternal'
[string "@WeakAuras\GenericTrigger.lua"]:693: in function `ScanEvents'
[string "@WeakAuras\GenericTrigger.lua"]:1403: in function <WeakAuras\GenericTrigger.lua:1401>

Dololo · 2021-03-08 12:39:19

"嘗試調用保護功能" 的錯誤表示插件執行了一個不允許執行的動作(通常是因為戰鬥中的關係),戰鬥中有很多功能暴雪都不允許插件執行。

而你貼的這個錯誤是由 WA 裡面名稱為 "自动嫁祸" 的提醒效果產生的,它只發生一次,看起來是沒關係的,重新載入介面應該就可以了。如果仍然持續一直發生相同的錯誤,建議刪除這個提醒效果,然後重新匯入修正過的最新版本。