Lua os.time不起作用

时间:2017-11-14 08:35:57

标签: lua

我已经将Lua脚本编程到一个带有os.clock()和os.time()函数的游戏中。它工作正常,但在升级这个游戏之后,我观察到失败消息:attempt to call global 'os' (a nil value)... ?我认为os.clock()和os.time()是Lua的本机函数。

1 个答案:

答案 0 :(得分:1)

来自Lua参考手册:

  

除了基本库和包库之外,每个库都提供   它的所有功能都是全局表的字段或其方法   对象。

     

要访问这些库,C主机程序应该调用   luaL_openlibs函数,用于打开所有标准库。   或者,主机程序可以使用... luaopen_os(用于操作系统库)单独打开它们......

如您所见,在宿主程序中添加标准库是可选的。许多应用程序限制对标准库的访问。特别是os和io。

由于os librarie尚未添加到游戏的脚本环境中,因此全局表osnil

很明显,你的游戏开发者决定他们的用户应该在没有os功能的情况下生存。有时他们只是不想让你做某事,有时它只是没有意义。这是阻止您从游戏内部与操作系统交互的最简单方法。 通常它们也会阻止您通过删除必要的函数来加载外部代码。