魔兽世界的Lua -改变框架:SetAttribute()



我正在为《魔兽世界》制作一个插件,它将彻底修改界面以适应我的游戏风格。

在这个插件中,我想有一个大的按钮,作为我的法师的"主要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语句的正确部分则不起作用。

任何想法吗?

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

你能做的最好的就是显示一个应该施放什么法术的视觉指示器,但依靠用户实际按下正确的按钮。

相关内容

  • 没有找到相关文章

最新更新