1

我正在为魔兽世界开发一个插件,它会彻底改变界面以适应我的游戏风格。

在这个插件中,我想要一个大按钮,作为我的法师的“主要 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

有什么想法吗?

4

1 回答 1

4

正如 Mud 所说,你不能再在战斗中重新绑定按钮了。暴雪做出这一改变是为了防止机器人能够自动战斗。值得注意的是,为了施展法术,您需要使用其中一个安全模板,而这些安全模板只允许修改控制它们在您不处于战斗中时的行为的属性。所以你不能在战斗中一键改变法术。同样,它们也会阻止您修改位置或可见性等属性,因此您也无法在鼠标下方移动按钮。

您可以做的最好的事情是显示应该施放什么法术的视觉指示器,但依赖于用户实际按下正确的按钮。

于 2013-04-05T08:21:13.933 回答