如何在释放鼠标左键时停止重复操作列表

我有以下操作列表:

PressAndReleaseKey("f13") -- Action 1
Sleep(200)
PressAndReleaseKey("f13") -- Action 2
Sleep(200)
PressKey("f13") -- Action 3
Sleep(400)
ReleaseKey("f13") -- Action 4
Sleep(200)

我希望在按下鼠标左键时重复这些操作,并在释放鼠标左键时取消所有操作。

例如:

  • 如果鼠标左键按下300毫秒然后释放,则只会执行Action 1和Action 2(1次)
  • 如果鼠标左键按下1800毫秒然后释放,则将执行Action 1和2两次,Action 3将执行一次。

所以请帮助我,这是到目前为止我的脚本:

EnablePrimaryMouseButtonEvents(true);
function OnEvent(event, arg)

   if event == "MOUSE_BUTTON_PRESSED" and arg == 1  then
        if IsMouseButtonPressed(1) then
            repeat
                PressAndReleaseKey("f13") -- Action 1
                Sleep(200)
                PressAndReleaseKey("f13") -- Action 2
                Sleep(200)
                PressKey("f13") -- Action 3
                Sleep(400)
                ReleaseKey("f13") -- Action 4
                Sleep(200)
            until not IsMouseButtonPressed(1)
        end
    end
end

(选项2)如果没有这样的repeat = >还有另一个更手动的选项,如local,列出最多100个操作

原文链接 https://stackoverflow.com/questions/69399470

点赞
stackoverflow用户2858170
stackoverflow用户2858170

你不能取消任何操作。你只能选择执行它或不执行。一旦它被触发,你就无法停止它。

如果你想在执行动作1和动作2后停止执行,你需要在执行动作2后检查按钮状态,只有当按钮仍然被按下时才执行动作3。目前你只在所有动作执行完后检查按钮。

在任何一个动作前放置if not IsMouseButtonPressed(1) then break end,这样如果按钮被按下,动作就不会执行。

2021-10-01 07:00:59