1

我提前道歉,因为我确信这已经得到了回答,但是没有任何编程经验,我很难将其他帖子中的解决方案翻译成我自己的代码。我有一个 for 循环,我想在每个间隔期间检查一个全局变量。下面的代码不起作用,因为它认为“continue_loop”是一个局部变量。有什么建议么?

if (event == "MOUSE_BUTTON_PRESSED" and arg == 1) then
continue_loop = 1
Click()
end

if (event == "M_RELEASED" and arg == 3) then
Click()
end

if (event == "MOUSE_BUTTON_RELEASED" and arg == 1) then
Stopclick()
end

function Stopclick()
continue_loop = 0
end

function Click()
    PressMouseButton(1)
    Sleep (10)
    ReleaseMouseButton(1)
  for i=1,10 do
    if (continue_loop == 1) then
        MoveMouseRelative(0,5)
        Sleep (30)
    else return
    end
    end
  if (continue_loop == 0) then
    Stopclick()
  elseif (continue_loop == 1) then SetMKeyState(3)
  else Stopclick()
  end
end
4

2 回答 2

0

local continue_loop您可以简单地在程序的开头编写 a 。我建议您学习一些关于变量的可见性范围和生命周期的知识,以更好地理解这个解决方案!

于 2018-12-19T20:05:38.400 回答
0

lua 只有一个线程,这意味着在你的 for 循环中 continue_loop 变量不会改变,因为没有代码试图在循环内改变它。

您将需要调用一个检查鼠标状态的函数,然后更新 continue_loop 变量。

for i=1,10 do
    CheckMouseState() -- sets global value of continue_loop based on mouse state.
    if (continue_loop == 1) then
        MoveMouseRelative(0,5)
        Sleep (30)
    else return
    end
end
于 2018-12-19T21:58:41.777 回答