Logitech Lua脚本故障:Caps Lock切换双功能失效及侧键替换需求
解决方案
首先,重构脚本逻辑,用鼠标侧键(4/5键)直接切换后坐力控制模式,同时修复原脚本中分支无法触发的问题。以下是修改后的完整代码:
EnablePrimaryMouseButtonEvents(true); local active_mode = nil -- 1=第一种后坐力控制, 2=第二种后坐力控制, nil=关闭 function OnEvent(event, arg) -- 鼠标侧键切换模式 if event == "MOUSE_BUTTON_PRESSED" then if arg == 4 then active_mode = active_mode ~= 1 and 1 or nil -- 按鼠标4键切换模式1(开/关) elseif arg == 5 then active_mode = active_mode ~= 2 and 2 or nil -- 按鼠标5键切换模式2(开/关) end end -- 执行后坐力控制逻辑 if EnableRCS ~= false and active_mode then if IsMouseButtonPressed(3) then repeat if IsMouseButtonPressed(1) then repeat if active_mode == 1 then -- 原Caps Lock开启时的后坐力补偿逻辑 MoveMouseRelative(-1, RecoilControlStrength) Sleep(DelayRate) MoveMouseRelative(0, RecoilControlStrength) Sleep(DelayRate) MoveMouseRelative(-2, RecoilControlStrength) Sleep(DelayRate) MoveMouseRelative(0, RecoilControlStrength) Sleep(DelayRate) elseif active_mode == 2 then -- 原Caps Lock关闭时的后坐力补偿逻辑 MoveMouseRelative(0, RecoilControlStrength) Sleep(DelayRate) end until not IsMouseButtonPressed(1) end until not IsMouseButtonPressed(3) end end end
关键改动说明
- 模式切换逻辑:新增
active_mode变量跟踪当前激活的控制模式,按下鼠标4键切换到模式1(对应原Caps Lock开启的逻辑),按下鼠标5键切换到模式2(对应原Caps Lock关闭的逻辑),再次按下同一侧键可关闭对应模式。 - 逻辑结构优化:移除了原脚本中
RequireToggle的分支判断,将两种后坐力控制逻辑合并到同一分支下,通过active_mode变量选择执行代码,彻底解决原脚本中else分支无法触发的问题。 - 冗余代码消除:合并了重复的右键、左键按下判断,让代码结构更清晰,减少维护成本。
使用方式
- 按鼠标4键:激活第一种后坐力控制模式,再次按下关闭该模式。
- 按鼠标5键:激活第二种后坐力控制模式,再次按下关闭该模式。
- 按住鼠标右键(键3)+ 左键(键1):根据当前激活的模式执行对应的后坐力补偿操作。
内容的提问来源于stack exchange,提问作者Work Mail DataAnalysisBiz
相关产品推荐
相关产品推荐

