Lua的魔兽世界 - 更改相框:的setAttribute()(World of Warcraft

2019-09-28 07:12发布

我正在为魔兽世界的插件完全检修接口,以适应我的打法。

在这个插件,我想有一个大按钮充当“主力DPS旋转”为我的法师。 我想它改变了什么法术它转换基于什么是在任何给定时间最优。 它不会自动施法,它只是呈现给用户的一个最好的选择。

这是我到目前为止的代码:

print "Interface Overhaul : LOADED"
heatingUpIsActive = false
print(heatingUpIsActive)

local Button = CreateFrame("Button", "MyButton", UIParent,"SecureActionButtonTemplate")
Button:SetWidth(256)
Button:SetHeight(256)
Button:SetFrameStrata("HIGH")
Button:SetPoint("LEFT")
Button:SetText("Main Rotation")
Button:RegisterForClicks("AnyUp")
Button:SetAttribute("type", "spell")
Button:SetAttribute("spell", "Fireball")

Button:RegisterEvent("UNIT_AURA");
local function auraGained(self, event, ...)

    if (UnitAura("player", "Heating Up")) then
             if (heatingUpIsActive == false) then
             heatingUpIsActive = true
             print (heatingUpIsActive)
             print ("Heating Up is active!")
             Button:SetAttribute("spell", "Inferno Blast")
             end
            else
             heatingUpIsActive = false
             print("Heating Up is NOT active.")
             print(heatingUpIsActive)
    end
end
Button:SetScript("OnEvent", auraGained);

local tex = Button:CreateTexture("ARTWORK");
tex:SetPoint("LEFT")
tex:SetWidth(256)
tex:SetHeight(256)
tex:SetTexture("Interface\\AddOns\\InterfaceOverhaul\\Button2")

如果heatingUpIsActive == true ,我想按钮投票("spell", "Inferno Blast")而不是("spell", "Fireball")但它并没有,如果我地方进入的正确部分工作在if语句。

有什么想法吗?

Answer 1:

泥说,你不能重新绑定在战斗按钮了。 暴雪做出这种改变,以防止机器人从能够自动战斗。 值得注意的是,为了施展法术,你需要使用的安全模板之一,而这些安全模板,只允许控制,当你在战斗不是他们做了什么属性的修改。 所以,你不能有一个按钮改变法术中旬战斗。 同样,他们也阻止您喜欢修改其位置或可见性属性,所以你不能在鼠标下移到按钮无论是。

你能做的最好的是显示的应该投什么法术视觉指示器,而是依赖于用户实际按下正确的按钮。



文章来源: World of Warcraft Lua - Changing frame:SetAttribute()