如何在Logitech Gaming Software Lua脚本中实现左右键同按触发功能
修改后的Logitech Lua脚本(左右键同时按住激活)
以下是调整后的脚本,实现同时按住鼠标左右键时激活脚本,松开任意一键即停用的逻辑:
local function OutputLogs(s) OutputLogMessage(s.."\n") OutputDebugMessage(s.."\n") end local Recoil_Activator = false local last_state = false -- 记录上一次激活状态,避免重复输出日志 function OnEvent(event, arg) if event == "PROFILE_ACTIVATED" then EnablePrimaryMouseButtonEvents(true) elseif event == "MOUSE_BUTTON_PRESSED" or event == "MOUSE_BUTTON_RELEASED" then -- 检查是否同时按住左右键 local current_state = IsMouseButtonPressed(1) and IsMouseButtonPressed(2) if current_state ~= last_state then Recoil_Activator = current_state last_state = current_state OutputLogs(Recoil_Activator and "ON_Macro" or "OFF_Macro") end elseif event == "MOUSE_BUTTON_PRESSED" and arg == 1 and Recoil_Activator then MoveMouseRelative(2, -2) repeat MoveMouseRelative(-4, 4) Sleep(3) MoveMouseRelative(4, -4) Sleep(3) until not IsMouseButtonPressed(1) end end
关键修改说明
- 移除滚轮激活逻辑:删除原代码中
Macro_Activation_Key变量及滚轮键触发分支,不再通过点击滚轮切换状态。 - 实时检测左右键状态:在鼠标按键按下/松开事件中,通过
IsMouseButtonPressed(1)(左键)和IsMouseButtonPressed(2)(右键)判断是否同时按住,实时更新激活状态。 - 避免重复日志输出:新增
last_state变量记录上一次激活状态,仅当状态发生变化时才打印日志,防止频繁重复输出。 - 保留原后坐力控制逻辑:原有的鼠标移动循环逻辑保持不变,仅在
Recoil_Activator为true时触发。
内容的提问来源于stack exchange,提问作者Farrel Anelca
相关产品推荐
相关产品推荐

