lua 脚本如何调用未导入的函数?

How can a lua script call a function it hasn't imported?

要清楚,这不是我该怎么做的 X? ,我很困惑 X is not working 问题。这是一个,哇,我正在做 X,我不明白为什么做 X 会产生这样的问题。 我对脚本语言很陌生,我正在尝试为一个非常古老的游戏 Gothic 2 的服务器制作一些脚本。无需在那里详细介绍,但我意识到我的脚本正在调用所有这些功能(我是从服务器框架的 wiki 页面复制粘贴),它们都只是 运行。我的脚本中没有 'require X' 语句。 Lua 解释器如何看到这些函数?

Lua 不像 Python 或 C 或其他语言,其中每个文件都存在于自己的宇宙中,几乎完全独立于其他文件,文件之间的唯一连接是由显式请求创建的.在 Lua 中,任何在该标识符使用范围内不代表局部的标识符都表示对全局环境的访问 table。 table 的工作方式与 Lua 中的任何其他 table 一样:您访问那个 table.

中的命名键

因此,在执行 Lua 语句时 可通过该全局环境访问的任何值 都可以在该语句中使用。

如果 运行 您的 Lua 脚本的 C 环境在全局环境中粘贴了一堆函数,那么它运行的任何 Lua 脚本都可以访问它们。这很可能是那场比赛中发生的事情。