我正在为《魔兽世界》制作一个插件,它将彻底修改界面以适应我的游戏风格。
在这个插件中,我想有一个大的按钮,作为我的法师的"主要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所说,你不能在战斗中重新绑定按钮了。暴雪做这个改动是为了防止机器人自动战斗。值得注意的是,为了施放一个咒语,你需要使用一个安全模板,而这些安全模板只允许在你不在战斗中时修改控制它们的属性。所以你不能让一个按钮在战斗中改变法术。类似地,它们还阻止您修改其位置或可见性等属性,因此您也不能在鼠标下移动按钮。
你能做的最好的就是显示一个应该施放什么法术的视觉指示器,但依靠用户实际按下正确的按钮。