LUA - OnUpdate shift修饰符

时间:2014-10-03 22:33:36

标签: lua shift modifier

我在用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的东西,只复制粘贴它从另一个插件粘贴我做的很好。 它正好直接=假,这只是发生我认为,因为它是默认值。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

  

正确它直接= = false,这只是发生我认为,因为它是默认值。

不,if语句中没有“默认”分支。要使控件进入then分支,必须将条件评估为true。您需要检查逻辑,但如果脚本执行cfg.aura.onlyShowPlayer = false,则表示IsShiftKeyDown()被评估为true