【问题标题】:How to stop the function when single shot, but enable while spray/auto shooting如何在单拍时停止该功能,但在喷涂/自动拍摄时启用
【发布时间】:2017-10-06 08:51:37
【问题描述】:

我为 LUA 罗技游戏鼠标制作了一个小反后坐力脚本,它似乎可以完成该功能,但是当我单发时它会完成整个事情并且在未按下鼠标按钮时不会停止:

    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 == 5) then
        kaki = not kaki
        kus = not kus
    end
   if (event == "MOUSE_BUTTON_PRESSED" and arg == 1 and kaki) then
        if kaki then
            repeat
                Sleep(50)
                MoveMouseRelative(0, 1)
                Sleep(100)
                MoveMouseRelative(0, 16)
                Sleep(100)
                MoveMouseRelative(0, 26)
                Sleep(100)
                MoveMouseRelative(-2, 25)
                Sleep(100)
                MoveMouseRelative(10, 28)
                Sleep(100)
                MoveMouseRelative(8, 25)
                Sleep(100)
                MoveMouseRelative(10, 15)
                Sleep(100)
                MoveMouseRelative(-14, 15)
                Sleep(100)
                MoveMouseRelative(-34, -1)
                Sleep(100)
                MoveMouseRelative(-18, 0)
                Sleep(100)
                MoveMouseRelative(10, 10)
                Sleep(100)
                MoveMouseRelative(-13, 5)
                Sleep(100)
                MoveMouseRelative(-20, -5)
                Sleep(100)
                MoveMouseRelative(-5, 0)
                Sleep(100)
                MoveMouseRelative(33, 3)
                Sleep(100)
                MoveMouseRelative(15, 6)
                Sleep(100)
                MoveMouseRelative(15, 5)
                Sleep(100)
                MoveMouseRelative(20, 0)
                Sleep(100)
                MoveMouseRelative(28, -10)
                Sleep(100)
                MoveMouseRelative(-15, 4)
                Sleep(100)
                MoveMouseRelative(5, 0)
                Sleep(100)
                MoveMouseRelative(-8, 8)
                Sleep(100)
                MoveMouseRelative(-6, 4)
                Sleep(100)
                MoveMouseRelative(3, -2)
                MoveMouseRelative(13, 0)
                Sleep(100)
                MoveMouseRelative(5, 0)
                Sleep(100)
                MoveMouseRelative(-15, 0)
                Sleep(100)
                MoveMouseRelative(-30, 0)
                Sleep(100)
                MoveMouseRelative(-35, -13)
                Sleep(100)
                MoveMouseRelative(-13, -4)
                Sleep(100)
            until not IsMouseButtonPressed(1)
        end
    end
end

关于如何在中途或未按下鼠标按钮时取消功能的任何建议,循环将不会完成并在最后一次射击的地方结束。

(在游戏中我单发时-鼠标移动整个后坐过程)

【问题讨论】:

    标签: lua logitech


    【解决方案1】:

    尝试使用协程。

    if kaki then
         local cor = coroutine.create(function()
         MoveMouseRelative(0, 1)
         coroutine.yield()
         MoveMouseRelative(0, 16)
         coroutine.yield()
         MoveMouseRelative(0, 26)
         coroutine.yield()
         MoveMouseRelative(-2, 25)
         coroutine.yield()
         MoveMouseRelative(10, 28)
         coroutine.yield()
         MoveMouseRelative(8, 25)
         coroutine.yield()
         MoveMouseRelative(10, 15)
         coroutine.yield()
         MoveMouseRelative(-14, 15)
         coroutine.yield()
         MoveMouseRelative(-34, -1)
         coroutine.yield()
         MoveMouseRelative(-18, 0)
         coroutine.yield()
         MoveMouseRelative(10, 10)
         coroutine.yield()
         MoveMouseRelative(-13, 5)
         coroutine.yield()
         MoveMouseRelative(-20, -5)
         coroutine.yield()
         MoveMouseRelative(-5, 0)
         coroutine.yield()
         MoveMouseRelative(33, 3)
         coroutine.yield()
         MoveMouseRelative(15, 6)
         coroutine.yield()
         MoveMouseRelative(15, 5)
         coroutine.yield()
         MoveMouseRelative(20, 0)
         coroutine.yield()
         MoveMouseRelative(28, -10)
         coroutine.yield()
         MoveMouseRelative(-15, 4)
         coroutine.yield()
         MoveMouseRelative(5, 0)
         coroutine.yield()
         MoveMouseRelative(-8, 8)
         coroutine.yield()
         MoveMouseRelative(-6, 4)
         coroutine.yield()
         MoveMouseRelative(3, -2)
         MoveMouseRelative(13, 0)
         coroutine.yield()
         MoveMouseRelative(5, 0)
         coroutine.yield()
         MoveMouseRelative(-15, 0)
         coroutine.yield()
         MoveMouseRelative(-30, 0)
         coroutine.yield()
         MoveMouseRelative(-35, -13)
         coroutine.yield()
         MoveMouseRelative(-13, -4)
      end)
      coroutine.resume(cor)
      repeat
         Sleep(100)
         coroutine.resume(cor)
      until not IsMouseButtonPressed(1)
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多