【发布时间】:2014-10-03 22:33:36
【问题描述】:
我正在修改一个用 Lua 编写的魔兽世界插件。 有一个简单的布尔变量,它确定是显示某些“所有”帧还是仅显示特定帧。
所以当 = true 时它只会显示特定的帧 当 = false 时,它将显示所有帧
我想用 shift 键制作一个修饰符,以便在按下 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 的新手,只从我做的另一个插件复制粘贴它,效果很好。 是的,它直接变为 = false,我认为这只会发生,因为它是默认值。
感谢您的帮助
【问题讨论】: