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

如何解决Lua游戏连点脚本松开按键后repeat循环不停止的问题?

问题根因

偶发松开左键后脚本仍继续运行的核心原因有两个:

  • 原有逻辑中单次Sleep时长最长达60ms,用户松开左键的动作如果刚好发生在Sleep周期内,脚本无法及时检测到按键状态变化
  • IsMouseButtonPressed(1) 会同时识别物理按键按下和脚本模拟触发的按键按下,当检测时机刚好落在脚本模拟按下左键的窗口时,即使用户已经松开物理按键,也会被误判为仍处于按下状态,导致循环无法退出
修复后完整代码
EnablePrimaryMouseButtonEvents(true);

-- 封装统一的停止条件检测逻辑
local function CheckStop()
    -- 停止触发条件:松开左键/按下Shift/按下R键
    return not IsMouseButtonPressed(1) or IsModifierPressed("shift") or IsKeyPressed("r")
end

function OnEvent(event, arg)
    if IsKeyLockOn("capslock") then
        if IsMouseButtonPressed(1) then
            repeat
                -- 每次操作前先检测停止条件
                if CheckStop() then
                    break
                end
                -- 把长Sleep拆分为10ms小段,每段结束都检测状态,最长10ms即可响应停止操作
                for i = 1, math.random(3,6) do
                    Sleep(10)
                    if CheckStop() then
                        break
                    end
                end
                if CheckStop() then
                    break
                end
                
                PressMouseButton(1)
                
                for i = 1, math.random(3,6) do
                    Sleep(10)
                    if CheckStop() then
                        ReleaseMouseButton(1)
                        break
                    end
                end
                if CheckStop() then
                    ReleaseMouseButton(1)
                    break
                end
                
                ReleaseMouseButton(1)
            until CheckStop()
            -- 退出循环后强制释放左键,避免卡按键
            ReleaseMouseButton(1)
        end
    end
end
改动说明
  • 新增统一的停止判断函数,同时覆盖松开左键、按下Shift、按下R键三个退出场景
  • 所有长Sleep都拆分为10ms的小片段,避免长Sleep期间漏检测按键变化
  • 循环每个关键节点都加了停止判断,触发停止时会强制释放左键,不会出现模拟按键卡住的问题
  • 如果R键检测无响应,可将IsKeyPressed("r")替换为IsKeyPressed(0x52)使用虚拟键码检测

内容的提问来源于stack exchange,提问作者AAAa aA

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 03:27:02