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

请求优化Unified Remote Lua脚本:解决鼠标事件未闭合问题

Unified Remote Lua脚本优化方案

原代码用二元布尔变量切换状态,没法适配三步循环操作的需求,导致鼠标右键抬起事件(ms.up)延迟触发。以下是优化后的脚本,完美实现三步操作且确保所有键鼠事件正确闭合:

--@help 电梯控制(三步循环:上升→停止→返回地面)
actions.command7 = function ()
    -- 初始化状态变量,1=准备上升,2=准备停止,3=准备返回地面
    if not state then state = 1 end

    if state == 1 then
        -- 步骤1:启用电梯,按住E+右键启动上升
        kb.stroke("f5")  -- 按下并松开F5启用电梯
        kb.down("e")     -- 按住E键
        ms.down(UseButton)  -- 按住鼠标右键
        state = 2  -- 切换到下一步状态
    elseif state == 2 then
        -- 步骤2:停止电梯,松开E和右键
        ms.up(UseButton)    -- 松开鼠标右键
        kb.up("e")          -- 松开E键
        kb.stroke("f5")     -- 按下并松开F5停止电梯
        state = 3  -- 切换到下一步状态
    else  -- state == 3
        -- 步骤3:触发返回地面,完成后禁用电梯
        kb.down("e")     -- 按住E键
        ms.down(UseButton)  -- 按住鼠标右键
        -- 短暂延迟确保指令生效(可根据实际情况调整时长)
        util.delay(100)
        -- 松开按键
        ms.up(UseButton)
        kb.up("e")
        kb.stroke("f5")  -- 按下并松开F5禁用电梯
        state = 1  -- 重置状态,准备下一轮循环
    end
end

关键优化说明

  • 用state变量追踪当前操作步骤,实现1→2→3→1的循环逻辑,完全匹配三步操作需求
  • 每个kb.down/ms.down都对应了kb.up/ms.up,彻底解决鼠标事件未闭合的问题
  • 步骤3中加入短暂延迟util.delay(100),确保返回地面的指令被正确识别(可根据实际应用的响应速度调整数值,单位为毫秒)
  • 用kb.stroke替代原代码中单独的kb.down(原代码第一步只按下F5没松开,这也是问题之一),stroke会自动执行按下+松开的完整操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 13:42:10