请求合并鼠标LMB与RMB关联的Spot和Recoil脚本
合并后的鼠标脚本实现
没问题,我帮你把两个脚本按你的需求整合好了,完全符合你要的按键交互逻辑,还优化了响应速度,避免切换不及时的情况:
EnablePrimaryMouseButtonEvents(true); function OnEvent(event, arg) -- 仅当CapsLock开启时触发脚本逻辑,避免日常误触 if IsKeyLockOn("capslock") then -- 按住鼠标右键(RMB)时进入主循环 while IsMouseButtonPressed(3) do -- 优先检测是否同时按住鼠标左键(LMB),触发后坐力控制 if IsMouseButtonPressed(1) then -- 持续执行鼠标向下微动,直到松开左键 repeat MoveMouseRelative(0, 1) Sleep(33) until not IsMouseButtonPressed(1) else -- 仅按住右键时,执行Spot脚本的Q键循环逻辑 PressKey("Q") Sleep(20) ReleaseKey("Q") -- 等待480ms,期间实时检测是否按住左键,确保能立刻切换到后坐力控制 local wait_end_time = GetRunningTime() + 480 while GetRunningTime() < wait_end_time and not IsMouseButtonPressed(1) do Sleep(10) -- 短间隔检测,保证按键响应灵敏 end end Sleep(10) -- 主循环的短间隔,让整体交互更流畅 end end end
核心逻辑说明
我把你的需求拆解成了清晰的执行流程:
- 仅当CapsLock处于开启状态时,脚本才会工作,避免平时使用鼠标时误触触发功能
- 按住RMB时,脚本会持续检测按键状态:
- 如果同时按住LMB,立刻停止Spot的Q键循环,转而运行Recoil的鼠标向下微动,直到松开LMB
- 松开LMB后,只要还按住RMB,脚本会自动回到Spot的Q键循环
- 单独按住RMB时,会每隔约500ms(20ms按住Q + 480ms等待)触发一次Q键,直到按下LMB或者松开RMB
- 不管什么时候松开RMB,所有脚本动作都会立刻停止
这个版本优化了原脚本的循环结构,在Q键的等待阶段也会实时检测左键状态,确保切换到后坐力控制的响应速度更快,不会出现延迟。
内容的提问来源于stack exchange,提问作者clueless
相关产品推荐
相关产品推荐

