这是一个游戏,但我认为所有的规则都适用.我有一个功能
function nolag()
if !nolag then
nolag = true
ply:ConCommand("ax_stoplag")
elseif nolag then
nolag = false
ply:ConCommand("ax_resetlag")
end
end
Run Code Online (Sandbox Code Playgroud)
在我的情况下,这ply:ConCommand("ax_stoplag")基本上是另一个术语print ("ax_stoplag").但是我有一个按钮
CreateButton( "No-Lag", MISCtab, black, tblack, true, 355, 130, 95, 20, "Toggle No-Lag on and off", function () nolag() end )
Run Code Online (Sandbox Code Playgroud)
这样就会创建一个按钮,然后链接到该nolag功能.但是我可以点击它,但当我再次点击它时没有任何反应,我得到一个错误(游戏中的错误).基本上是nolag = true和nolag = false问题并导致错误.
你定义了nolag作为函数.
做if !nolag then哪个应该if not nolag then在lua,
基本上检查是否未设置nolag(如果未设置,则此语句将返回true).
之后你将nolag(函数变量)设置为true/false,这意味着下一次按钮点击,
您的应用程序将崩溃,请尝试以下两个选项之一.
local _nolag = false;
function nolag()
if(not _nolag) then
_nolag = not _nolag -- or _nolag = true;
ply:ConCommand("ax_stoplag");
else -- no need if here, assuming _nolag will always be true or false;
_nolag = not _nolag
ply:ConCommand("ax_resetlag");
end
end
local _nolag = false;
function nolag()
_nolag = not _nolag;
ply:ConCommand(_nolag and "ax_resetlag" or "ax_stoplag);
end
Run Code Online (Sandbox Code Playgroud)