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

Logitech Lua脚本求助:按住Mb5时LShift切换循环动作失效

Logitech Lua脚本切换循环问题修复

需求:

  • 按住Mb5 → 循环执行按键8和7
  • 按住Mb5同时按下LShift → 切换为循环执行按键r和e
  • 释放LShift → 切回循环执行8和7

问题:按下LShift时,原循环停止但无法启动新循环;释放LShift后也无法切回原循环。

修改后的脚本

EnablePrimaryMouseButtonEvents(true)

function OnEvent(event, arg)
    if event == "MOUSE_BUTTON_PRESSED" and arg == 5 then
        repeat
            -- 每次循环前检查当前LShift状态,决定执行哪种按键序列
            if IsModifierPressed("lshift") then
                -- 带LShift的循环逻辑:r和e
                Sleep(math.random(17, 34))
                PressKey("r")
                Sleep(math.random(41, 85))
                ReleaseKey("r")
                Sleep(math.random(17, 34))
                PressKey("e")
                Sleep(math.random(41, 85))
                ReleaseKey("e")
            else
                -- 无LShift的循环逻辑:8和7
                local key1 = ({"8", "8"})[math.random(2)]
                local key2 = ({"7", "7"})[math.random(2)]
                Sleep(math.random(17, 34))
                PressKey(key1)
                Sleep(math.random(17, 34))
                PressKey(key2)
                Sleep(math.random(41, 85))
                ReleaseKey(key1)
                Sleep(math.random(41, 85))
                ReleaseKey(key2)
            end
            -- 循环终止条件:Mb5释放
        until not IsMouseButtonPressed(5)
    end
end

关键修改说明

  1. 合并循环逻辑:不再通过Mb5按下事件区分两种模式,而是在同一个循环内实时检测LShift状态,动态切换执行的按键序列
  2. 实时状态检测:每次循环迭代都检查LShift是否按下,确保状态变化能立即生效,无需重新触发Mb5按键事件
  3. 简化终止条件:仅保留Mb5释放作为循环终止条件,LShift的状态变化只影响循环内执行的动作,不再作为终止条件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 19:57:25