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

罗技G910键盘G5键Lua脚本故障:释放后未执行后续坐标点击

解决罗技G910 G5键连点脚本无法执行收尾操作的问题

问题根源

原脚本的核心错误在于**repeat...until的条件逻辑完全失效**:

  • 在G_PRESSED事件的回调函数中,event和arg的值是固定的,不会随着按键释放自动更新
  • 原条件until "G_RELEASED" and arg ==5中,字符串"G_RELEASED"在Lua里会被判定为true,导致循环永远不会终止,后续的收尾移动点击代码根本没有机会执行
  • 若错误修改为until event == "G_RELEASED" and arg ==5,则这个条件永远无法满足(因为当前事件还是G_PRESSED),会出现连点停不下来的情况

此外,罗技G系列脚本是事件驱动的,不能在G_PRESSED回调里直接等待G_RELEASED事件,必须通过全局变量跟踪按键状态。

修正后的脚本

-- 全局变量:标记G5键是否处于按压状态
local g5IsHeld = false
-- 预定义目标坐标,方便后续修改
local pointFirst = { x = 52250, y = 46464 }
local pointSecond = { x = 51841, y = 48832 }

function OnEvent(event, arg)
    -- G5键按压且M键处于状态3时触发
    if event == "G_PRESSED" and arg == 5 and GetMKeyState("kb") == 3 then
        g5IsHeld = true
        
        -- 第一步:移动到第一个坐标并点击
        MoveMouseTo(pointFirst.x, pointFirst.y)
        Sleep(math.random(25, 40))
        PressMouseButton(1)
        ReleaseMouseButton(1)
        Sleep(math.random(25, 40))
        
        -- 移动到第二个坐标,准备连点
        MoveMouseTo(pointSecond.x, pointSecond.y)
        Sleep(360)
        
        -- 持续连点,直到G5键被释放
        while g5IsHeld do
            PressMouseButton(1)
            Sleep(math.random(25, 40))
            ReleaseMouseButton(1)
            Sleep(math.random(25, 40))
        end
    -- G5键释放时触发收尾操作
    elseif event == "G_RELEASED" and arg == 5 then
        g5IsHeld = false
        
        -- 收尾:移动到第一个坐标并点击
        Sleep(math.random(25, 40))
        MoveMouseTo(pointFirst.x, pointFirst.y)
        Sleep(math.random(25, 40))
        PressMouseButton(1)
        ReleaseMouseButton(1)
    end
end

关键修改说明

  1. 全局状态跟踪:用g5IsHeld布尔变量替代原脚本的错误条件,精准控制连点循环的启停
  2. 事件拆分处理:将G5键的按压和释放拆分为两个独立的事件分支,符合罗技脚本的事件驱动逻辑
  3. 可读性优化:把固定坐标抽成变量,后续调整更便捷
  4. 循环逻辑修复:用while g5IsHeld替代repeat...until,确保G5释放时能立即终止连点,执行收尾操作

内容的提问来源于stack exchange,提问作者Todd Harris

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 08:59:13