我很抱歉,因为我已经确定这已经得到了回答,但是由于没有任何编程经验,因此我很难将解决方案从其他文章翻译成我自己的代码。我有一个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
答案 0 :(得分:0)
您只需在程序开始时编写一个local continue_loop
。
我建议您学习有关变量的可见性范围和生存期的知识,以便更好地了解此解决方案!
答案 1 :(得分: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