【发布时间】:2013-02-04 12:23:13
【问题描述】:
好的,我想知道是否有一种方法可以使用 Lua 从外部源运行脚本。无论是 .txt 格式的另一个文件还是来自 pastebin 的文件,你有什么,运行代码并等待所述代码完成,然后继续执行其余的功能。我不太确定它是如何工作的,但这基本上是我的想法,并不是实际的代码。
function runStuff()
print("checking for stuff")
run.script(derp.txt)
wait for script
if run.script == finished
continue program
elseif nil
print("looks like this script sucks.")
end
end
runStuff()
例如“derp.txt”包含的是:
function lookFile()
if herp.txt exists then
rename herp.txt to herp.lua
else
nil
end
end
lookFile()
我还是 Lua 的新手,所以我在这里像个白痴一样编码,但希望你能得到我的照片。我正在开发一个项目,该项目的作用类似于基于 pastebin 或其他任何提供 lua 脚本原始格式输出的存储库的安装程序包,我将使用这个想法来调用脚本运行外部。因此,当我提供程序的“首次运行”版本时,它会调用一个 lua 脚本,该脚本会调用另一个 lua 脚本并安装该脚本,然后关闭。
这是我的世界,请注意。 ComputerCraft 让我对 Lua 产生了兴趣,但无论如何,希望你能明白我想要弄清楚的要点。希望这是可行的,如果不可行,我只需要找出其他办法。
【问题讨论】:
-
看看
loadfile或dofile。在发布到 SO 之前,请尝试至少浏览一下文档。 -
那么 loadfile 是否可以通过 pastebin 原始链接工作?我在这里要做的是从外部源运行脚本,而不是特别加载文件,而是打开所述文档并读取里面的脚本并运行该脚本。因此,例如运行 pastebin 上的脚本,而不是仅仅抓取脚本并将其保存为文件并在您的机器上运行,加载脚本所在的链接并运行给出的说明。
-
请在您开始提出更多毫无意义的问题之前,RTFM。你必须提供一个包含 lua 代码的文件,这里有什么难理解的?如果你想直接从 pastebin 中获取代码,你需要
luasocket和一个 http 查询文件内容。 -
luasocket,我会调查的。谢谢,如果我激怒了你什么的,对不起。我正在使用的东西确实有一个 http.request 函数,所以它至少有这个能力。我可以拉出指令并将其输出到窗口中,如果我愿意,可以查看它,只是接受这些指令而不是查看它们,只是从那里运行它们是我想要实现的,我会更多地研究看看这里是否还有我遗漏的功能。
-
因此,如果您加载了内容,您可以将字符串版本转换为可通过
load函数调用的内容。如f = load([[ print "foo" ]]); f();
标签: lua minecraft computercraft