有没有一种函数可以将两个鼠标按钮设置为切换脚本的功能?

我正在编写一个后坐力脚本,并希望能够使用两个鼠标按钮同时激活或切换它。这是我目前的代码。我想要使用 G4 和 G5 来使它有效,而不仅仅是 G4。

function OnEvent(event, arg)
  OutputLogMessage("event = %s, arg = %d\n", event, arg)
  if (event == "PROFILE_ACTIVATED") then
    EnablePrimaryMouseButtonEvents(true)
  elseif event == "PROFILE_DEACTIVATED" then
    ReleaseMouseButton(2) -- 防止它被卡住
  end
  if (event == "MOUSE_BUTTON_PRESSED" and arg == 4) then
    recoil = not recoil
    spot = not spot
  end
  if (event == "MOUSE_BUTTON_PRESSED" and arg == 1 and recoil) then
    if recoil then
      repeat
        MoveMouseRelative(-2, 5)
        Sleep(10)
        MoveMouseRelative(2, -5)
        Sleep(21)
      until not IsMouseButtonPressed(1)
    end
  end
end
点赞
用户1847592
用户1847592
function OnEvent(event, arg)
  OutputLogMessage("event = %s, arg = %d\n", event, arg)
  if (event == "PROFILE_ACTIVATED") then
    EnablePrimaryMouseButtonEvents(true)  //启用主要鼠标按钮事件
  elseif event == "PROFILE_DEACTIVATED" then  //如果当前配置文件不再处于活跃状态
    ReleaseMouseButton(2) -- to prevent it from being stuck on  //释放第二个鼠标键,以防止它卡住
  elseif (event == "MOUSE_BUTTON_PRESSED" and arg == 4) then  //如果按下鼠标按钮并且是第四个按钮
    if btn_5_is_pressed then  //如果第五个按钮已被按下
      recoil = not recoil  //抖动模式切换
      spot = not spot  //散开模式切换
    else  
      btn_4_is_pressed = true  //将第四个按钮设为已按下状态
    end
  elseif (event == "MOUSE_BUTTON_PRESSED" and arg == 5) then //如果按下鼠标按钮并且是第五个按钮
    if btn_4_is_pressed then //如果第四个按钮已被按下
      recoil = not recoil  //抖动模式切换
      spot = not spot  //散开模式切换
    else
      btn_5_is_pressed = true //将第五个按钮设为已按下状态
    end
  elseif (event == "MOUSE_BUTTON_RELEASED" and arg == 4) then //如果释放鼠标按钮并且是第四个按钮
    btn_4_is_pressed = false  //将第四个按钮设为未按下状态
  elseif (event == "MOUSE_BUTTON_RELEASED" and arg == 5) then //如果释放鼠标按钮并且是第五个按钮
    btn_5_is_pressed = false  //将第五个按钮设为未按下状态
  elseif (event == "MOUSE_BUTTON_PRESSED" and arg == 1 and recoil) then //如果按下鼠标左键并且在抖动模式下
    if recoil then
      repeat //循环执行
        MoveMouseRelative(-2, 5) //向左上方移动鼠标
        Sleep(10) //停止执行
        MoveMouseRelative(2, -5) //向右下方移动鼠标
        Sleep(21) //停止执行
      until not IsMouseButtonPressed(1) //直到释放鼠标左键
    end
  end
end

编辑

通过双击鼠标按钮#6切换:

function OnEvent(event, arg)
   OutputLogMessage("event = %s, arg = %d\n", event, arg)
   if event == "PROFILE_ACTIVATED" then
      EnablePrimaryMouseButtonEvents(true)  //启用主要鼠标按钮事件
   elseif event == "MOUSE_BUTTON_PRESSED" and arg == 6 then  //如果按下鼠标按钮并且是第六个按钮
      local now = GetRunningTime() //获取当前时间
      if now - (prev_time or -1000000) < 200 then //如果现在时间与上一次时间之差小于200毫秒
         prev_time = nil
         recoil = not recoil //抖动模式切换
      else
         prev_time = now
      end
   elseif event == "MOUSE_BUTTON_PRESSED" and arg == 1 and recoil then //如果按下鼠标左键并且在抖动模式下
      repeat //循环执行
         MoveMouseRelative(-2, 5) //向左上方移动鼠标
         Sleep(10) //停止执行
         MoveMouseRelative(2, -5) //向右下方移动鼠标
         Sleep(21) //停止执行
      until not IsMouseButtonPressed(1) //直到释放鼠标左键
   end
end
2021-01-19 22:37:39