MiniExtend Core

对应源文件: core.lua


MiniExtend 已尽可能恢复标准 lua 环境,这意味着你能正常调用那些本来被"删除"的基本函数。
以下是相对标准 lua 环境有所不同的部分(前提是执行了 Env.__init__();):

loadstring(string, [, chuckname]) 函数


以下内容为 MiniExtend Core 增加的内容:

Env 作用域

Env 作用域是为脚本环境设定的作用域。

__init__() 函数

事实上,脚本环境不是真正的 &_GScriptFenv_ ,而是内部定义的一个表,这个表首先索引游戏 API (例如 Game, Customui),然后才去索引 &_GScriptFenv_
并且每个脚本都会有不同的这样的环境,因为每个脚本都对应一个函数,而调用脚本即调用该函数,在此之前会设置环境。

indexAPI(key) 函数

index(key) 函数

访问范围表

方式 &_GScriptFenv_ 中的值 旧的 &_GScriptFenv_ 可访问的值 游戏 API
直接访问(&_GScriptFenv_)
Env.indexAPI(key)
Env.index(key)

genv


_G2


函数

loadstring2(string, [, chuckname]) 函数

deepcopy(table) 函数


注意事项

迷你世界不是简单的 lua 解释器,有时脚本还会在服务器上运行,因此一些 lua 基本函数可能有歧义。
可以近似的认为开发者脚本在服务器上运行,因此 io, package, os.execute 等访问操作系统的函数的行为取决于服务器。
对于任何访问系统的函数,例如 io, package, os.execute ,它们大多本是被删除的函数和库,其行为取决于游戏的服务器。

危险

某些 lua 基本函数可能很危险,必须注意这些危险行为,以下是一些例子: