使用logitech lua脚本实现快速射击?

在编写logitech g502的lua脚本时,我成功实现了快速射击,但只要按住ctrl键,当鼠标1键释放后,它就会继续执行鼠标点击操作。我想知道是否有任何一种迭代方式可以允许我对触发按下和释放鼠标的函数进行信号传递,但条件是必须按下相同的鼠标按钮(例如,只有按住鼠标按钮1并且按住ctrl键,快速射击才会执行,而不是直到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

我想知道是否有任何一种迭代方式可以允许我对触发按下和释放鼠标的函数进行信号传递,但条件是必须按下相同的鼠标按钮(例如,只有按住鼠标按钮1并且按住ctrl键,快速射击才会执行,而不是直到ctrl释放)。

我考虑的备选方案是将射击绑定到另一个非鼠标按钮的键上,并在按下鼠标按钮1时重复操作。

提前感谢。

点赞
用户1847592
用户1847592

实际问题在于你试图同时读取实际状态和模拟按/释放同一个鼠标按钮。

解决这个问题的唯一办法是(正如你所建议的)将快捷键绑定到其他按键。

例如,在游戏配置中,您将左鼠标按钮和键盘组合键Ctrl``P分配给“开火”。请注意,游戏中不得将没有修改器的“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
2019-09-26 19:40:02