我发现您的代码存在一些问题。
首先,True 和 False 都是无意义的名称 - 除非您之前为它们分配了一些东西,否则它们都等于 nil。因此,您的Yes 和No 变量也都设置为nil。这并不是因为 lua 中不存在 true 和 false - 它们只是小写:true 和 false。创建 Yes 和 No 变量是多余且难以阅读的 - 只需直接使用 true 和 false。
其次,如果你使用的是从他们的网站下载的标准 lua,sleep 不是一个有效的函数(尽管它在 Lua 的 Roblox 版本中,或者我听说过)。像大写的True和False一样,sleep默认是nil,所以调用它是行不通的。根据您正在运行的内容,如果您在 Mac 上,您将需要使用 os.execute("sleep " .. number_of_seconds),如果您在 PC 上,则需要使用 os.execute("timeout /t " .. number_of_seconds)。你可能想把这些包装成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 语句作为程序的结尾。 lua 中的end 并没有完全按照你的想法做——它没有指定程序的结束。 Lua 可以通过查看文件中是否有任何文本来确定程序的结束位置。不说你就想不通的是各个子代码块在哪里结束,即if语句的分支,functions等。例如,假设你写代码
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 或始终为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”问题,您必须更加具体。