You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

解决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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 19:57:38