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