解决GHub离线Lua宏问题:按下G9循环按空格,松开后仍无限循环
解决GHub Lua脚本松开G9后宏仍无限重复的问题
你的问题核心是循环内没有实时检测G9按键的当前状态:原代码中event是函数触发时的一次性参数,进入repeat-until循环后不会更新,导致until条件永远为假,宏无限重复。
修改方案
使用IsMouseButtonPressed(9)函数在循环内实时检测G9按键是否被按下,一旦松开就终止循环。同时可移除无用的计数变量i(如果不需要计数的话):
function OnEvent(event, arg) if event == "MOUSE_BUTTON_PRESSED" and arg == 9 then repeat PressKey("spacebar") Sleep(20) ReleaseKey("spacebar") -- 可适当增加额外Sleep,避免循环过于频繁占用资源 -- Sleep(100) until not IsMouseButtonPressed(9) end end
关键改动说明
- 替换
until条件:从依赖静态的event变量,改为实时调用IsMouseButtonPressed(9)获取当前按键状态 - 移除冗余变量:
i变量在原代码中未实际使用,可直接删除 - 可选优化:若需要降低循环频率,可在每次按键操作后增加额外的
Sleep时长,减少系统资源消耗
内容的提问来源于stack exchange,提问作者Office_Man
相关产品推荐
相关产品推荐

