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

新手求助:合并两个Logitech脚本后仅第二个生效,求解决方案

解决Logitech脚本合并后仅第二个生效的问题

问题根源很直接:你两个脚本都定义了OnEvent函数——Lua里同名函数的后定义会直接覆盖前一个,所以合并后只有第二个脚本的逻辑在运行。

把两个脚本的逻辑整合到同一个OnEvent函数里,同时保留第二个脚本的全局变量,就能让两个功能同时生效。合并后的完整代码如下:

-- 保留第二个脚本的全局变量,确保循环逻辑正常运行
keys = {"1", "2", "1", "2"}
i = 1
lastPress = 0

function OnEvent(event, arg)
    -- 第一个脚本的日志输出与Profile状态处理
    OutputLogMessage("event = %s, arg = %d\n", event, arg)
    if (event == "PROFILE_ACTIVATED") then
        EnablePrimaryMouseButtonEvents(true)
    elseif event == "PROFILE_DEACTIVATED" then
        ReleaseMouseButton(2)  -- 防止按键卡住
    end

    -- 第一个脚本的鼠标侧键6逻辑
    if (event == "MOUSE_BUTTON_PRESSED" and arg == 6) then
        PressKey("z", "n")
        ReleaseKey("n")
    end
    if (event == "MOUSE_BUTTON_RELEASED" and arg == 6) then
        ReleaseKey("z")
        PressAndReleaseKey("n")
    end

    -- 第二个脚本的鼠标侧键7循环触发逻辑
    if (event == "MOUSE_BUTTON_PRESSED" and arg == 7) then
        if(tonumber(GetDate("%y%m%d%H%M%S")) > lastPress + 1 ) then
            i = 1
        end
        PressKey(keys[i])
    end
    if (event == "MOUSE_BUTTON_RELEASED" and arg == 7) then
        ReleaseKey(keys[i])
        i = i + 1
        if(i > table.getn(keys)) then
            i = 1
        end
        lastPress = GetDate("%y%m%d%H%M%S")
    end
end

关键说明:

  • 保留第二个脚本的全局变量(keys、i、lastPress),保证侧键7的循环切换逻辑正常工作
  • 将两个脚本中OnEvent内的所有判断逻辑合并到同一个函数里,彻底避免函数覆盖问题
  • 完整保留第一个脚本的日志输出、Profile激活/停用处理,以及侧键6的按键触发逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 13:55:29