我发现您的代码存在一些问题。
首先,True
andFalse
都是无意义的名字——除非你之前给它们分配了一些东西,否则它们都等于nil
. 因此,您的Yes
和No
变量也都设置nil
为。这并不是因为 lua 中不存在 true 和 false ——它们只是小写的:true
和false
. 创建Yes
和No
变量是多余的并且难以阅读 - 只需直接使用true
和false
。
其次,如果您使用的是从他们的网站下载的标准 lua,sleep
则不是一个有效的功能(尽管它在 Lua 的 Roblox 版本中,或者我听说过)。和大写一样True
,默认False
是 sleep nil
,所以调用它是行不通的。根据您正在运行的内容,os.execute("sleep " .. number_of_seconds)
如果您在 Mac 上或os.execute("timeout /t " .. number_of_seconds)
在 PC 上,您将希望使用它。你可能想把这些包装成一个function
function my_sleep_mac(number_of_seconds)
os.execute("sleep " .. number_of_seconds)
end
function my_sleep_PC(number_of_seconds)
os.execute("timeout /t " .. number_of_seconds)
end
至于您遇到的具体错误,我认为这是由于您的end
声明是程序的结尾。 end
in lua 并没有完全按照你的想法做——它没有指定程序的结束。Lua 可以通过查看文件中是否有任何文本来确定程序的结束位置。不说不知道是各个子代码块在哪里结束,IEif
语句的分支,function
s等。例如,假设你写代码
print("checking x...")
if x == 2 then
print("x is 2")
print("Isn't it awesome that x is 2?")
print("x was checked")
lua 无法知道最后一条语句(打印x
已检查)是否应该仅在x
2 或始终发生时才发生。因此,您需要明确说明您使用end
. 但是,对于文件,这是不必要的,实际上会导致错误。这是if
带有end
介绍的声明
print("checking x...")
if x == 2 then
print("x is 2")
print("isn't it awesome that x is 2?")
end
print("x was checked")
尽管 lua 并不关心,但缩进这些代码部分是一个非常好的主意,这样您就可以一眼看出它的开始和结束位置:
print("checking x...")
if x == 2 then
print("x is 2")
print("isn't it awesome that x is 2?")
end
print("x was checked")
关于您的“pastebin”问题,您将不得不更加具体。