LUA-更新移位修饰符

LUA-更新移位修饰符,lua,shift,modifier,Lua,Shift,Modifier,我正在修改魔兽世界插件中的一些东西,这些插件是用Lua编写的。 有一个简单的布尔变量,它决定是显示一些“全部”帧还是只显示一个特定帧 因此,当=true时,它将仅显示特定帧 当=false时,它将显示所有帧 我想用shift键制作一个修改器,当按下shift键时显示所有帧,当按下shift键时再次隐藏它们 if IsShiftKeyDown() then cfg.aura.onlyShowPlayer = false else cfg.aura.onlyShowPlayer =

我正在修改魔兽世界插件中的一些东西,这些插件是用Lua编写的。 有一个简单的布尔变量,它决定是显示一些“全部”帧还是只显示一个特定帧

因此,当=true时,它将仅显示特定帧 当=false时,它将显示所有帧

我想用shift键制作一个修改器,当按下shift键时显示所有帧,当按下shift键时再次隐藏它们

if IsShiftKeyDown() then
    cfg.aura.onlyShowPlayer = false
else
    cfg.aura.onlyShowPlayer = true
end
这是我非常简单的解决方案。这里的问题是,它只在脚本开始时起作用。你可以在魔兽世界中看到,每次加载界面时,如果没有其他说明,它都会运行脚本。这不是很有效,因为我会将我的用户发送到加载屏幕

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的东西,只从我做的另一个插件上复制粘贴,效果很好。 对,它直接指向=false,我认为这只是因为它是默认值

谢谢你的帮助

对,它直接指向=false,我认为这只是因为它是默认值


否,
if
语句中没有“默认”分支。要使控件到达
然后
分支,必须将条件评估为
true
。您需要检查逻辑,但是如果脚本执行了
cfg.aura.onlyShowPlayer=false
,这意味着
IsShiftKeyDown()
被评估为
true

我没有告诉您脚本的其余部分,所以是的,它实际上是默认值。因为它会检查cfg.aura.onlyShowPlayer是否为真/假,并执行另一个if/else操作。就像我说的,我只是编辑这个插件,所以我不想直接修改。