罗技G-Hub Lua鼠标脚本问题:Mouse5启停Y键随机延迟循环
鼠标侧键5控制Y键循环启停的问题修复
原代码的核心问题在于循环内部无法响应新的鼠标按键事件:OnEvent函数仅在事件触发时执行,一旦进入for循环,event和arg的值就固定不变,导致循环里的break条件永远无法触发;同时原代码是固定循环10次,也不符合“无限循环直到再次按键停止”的需求。
修正后的代码
local running = false -- 全局变量标记循环运行状态 function OnEvent(event, arg) OutputLogMessage("event = %s, arg = %s\n", event, arg) -- 响应鼠标侧键5的按下事件 if event == "MOUSE_BUTTON_PRESSED" and arg == 5 then running = not running -- 切换运行状态:停止→启动,启动→停止 -- 若切换为启动状态,开始循环执行Y键操作 if running then while running do PressKey("y") Sleep(math.random(60, 130)) ReleaseKey("y") -- 短延迟确保脚本能及时处理新的按键事件 Sleep(10) end end end end
代码说明
local running = false:定义全局状态变量,初始为“未运行”状态。- 每次按下Mouse5时,通过
running = not running反转状态,实现一键启停。 while running do循环会持续执行Y键按压操作,直到running被改为false(再次按下Mouse5时触发)。- 额外的
Sleep(10)是为了给脚本留出处理新事件的时间,避免出现启停响应延迟。
内容的提问来源于stack exchange,提问作者prophetz2021
相关产品推荐
相关产品推荐

