【问题标题】:How can a lua script call a function it hasn't imported?lua 脚本如何调用它没有导入的函数?
【发布时间】:2020-07-25 00:05:13
【问题描述】:

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

【问题讨论】:

    标签: lua scripting low-level


    【解决方案1】:

    Lua 不像 Python 或 C 或其他语言,其中每个文件都存在于自己的世界中,几乎与其他文件完全分开,文件之间的唯一连接是由显式请求创建的。在 Lua 中,任何不代表该标识符使用范围内的本地的标识符都表示对全局环境表的访问。该表的工作方式与 Lua 中的任何其他表一样:您可以访问该表中的命名键。

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

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

    【讨论】:

    • 明白了。因此,为了澄清,在运行这些 lua 脚本的多人游戏框架内,在该框架内的某个地方,lua 解释器明确提供了这些功能。如果这是对您答案的准确总结,我想我理解:-)。谢谢。
    猜你喜欢
    • 2010-11-15
    • 2018-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-02
    • 2018-08-31
    • 2013-08-24
    • 1970-01-01
    相关资源
    最近更新 更多