使用罗技 lua 脚本快速射击?

Rapid fire with logitech lua script?

在为我的 logitech g502 编写 lua 脚本时,我已经开始快速工作,但只要按住 ctrl 键,它就会在松开鼠标一键后继续执行鼠标按下操作.我想知道是否有任何一种迭代可以让我发出一个按下和释放鼠标的函数信号,但条件是按下相同的鼠标按钮。(例如,必须按住 ctrl 并且快速射击仅在以下情况下执行鼠标按钮 1 被按住,而不是直到 ctrl 被释放)。

这是我指的代码

EnablePrimaryMouseButtonEvents(true);

function OnEvent(event, arg)
    if IsModifierPressed("lctrl") then
        repeat  
            if IsMouseButtonPressed(1) then
                repeat
                    PressMouseButton(1)
                    Sleep(15)
                    ReleaseMouseButton(1)
                until not IsMouseButtonPressed(1)
            end             
        until not IsModifierPressed("lctrl")
    end         
end

我想知道是否有任何类型的迭代允许我发出按下和释放鼠标的信号,但条件是按下相同的鼠标按钮。(例如,必须按住 ctrl 并快速射击仅在按住鼠标按钮 1 时执行,而不是直到释放 ctrl 时才执行。

我考虑过的备选方案:将开火绑定到另一个不是鼠标按钮 1 的键,并在按下鼠标按钮 1 时重复。

提前致谢

实际问题是您试图同时读取真实状态并模拟 press/release 同一个鼠标按钮。
解决此问题的唯一方法是(如您所建议的那样)将 fire 绑定到其他键。
例如,在游戏配置中,您将鼠标左键和键盘组合键 CtrlP 分配给 "Fire"。请注意,不带修饰符的 P 不得指定给游戏中的任何动作。
您的脚本如下:

EnablePrimaryMouseButtonEvents(true)

function OnEvent(event, arg)
   if event == "MOUSE_BUTTON_PRESSED" and arg == 1 and IsModifierPressed("lctrl") then
      repeat
         Sleep(15)
         PressKey("P")
         Sleep(15)
         ReleaseKey("P")
      until not IsMouseButtonPressed(1) or not IsModifierPressed("lctrl")
   end
end