请求优化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
相关产品推荐
相关产品推荐

