1

在为我的罗技 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 时重复它。

提前致谢

4

1 回答 1

1

实际问题是您试图同时读取真实状态并模拟按下/释放相同的鼠标按钮。
解决此问题的唯一方法是(如您所建议的)将火绑定到附加键。
例如,在游戏配置中,您将鼠标左键和键盘组合键都分配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
于 2019-09-26T19:40:02.497 回答