我在用Lua编写的魔兽世界中改变了一些东西。 有一个简单的布尔变量,用于确定是显示某些“所有”帧还是仅显示特定帧。
所以当= true时,它只会显示特定的帧 when = false时会显示所有帧
我想使用shift键创建一个修改器,以便在按下shift键时显示所有帧,并在移动时重新隐藏它们。
if IsShiftKeyDown() then
cfg.aura.onlyShowPlayer = false
else
cfg.aura.onlyShowPlayer = true
end
这是我非常简单的解决方案。这里的问题是它只适用于启动脚本。你在每次界面加载时都会在WoW中看到,如果没有另外说明,它将运行脚本。这不是很有效,因为我会将我的用户发送到加载屏幕。
OnUpdate应该解决我的问题,每次渲染帧时都会运行这个特定的代码,这非常方便,也是我想要完成的。
所以这就是我所做的
local function onUpdate(self,elapsed)
if IsShiftKeyDown() then
cfg.aura.onlyShowPlayer = false
else
cfg.aura.onlyShowPlayer = true
end
end
local shiftdebuffs = CreateFrame("frame")
shiftdebuffs:SetScript("OnUpdate", onUpdate)
我现在的问题是它不起作用。我刚接触onUpdate的东西,只复制粘贴它从另一个插件粘贴我做的很好。 它正好直接=假,这只是发生我认为,因为它是默认值。
感谢您的帮助
答案 0 :(得分:0)
正确它直接= = false,这只是发生我认为,因为它是默认值。
不,if
语句中没有“默认”分支。要使控件进入then
分支,必须将条件评估为true
。您需要检查逻辑,但如果脚本执行cfg.aura.onlyShowPlayer = false
,则表示IsShiftKeyDown()
被评估为true
。