# 迷你世界脚本的对 Lua 的修改
首先,要知道迷你世界的 Lua 脚本解释器为 [Lua5.1][http://www.Lua.org/versions.html#5.1] 。
但是,脚本运行环境与标准的 Lua5.1 环境有很大差异,举个简单的事实, _G
表实际不包含任何值,对 _G
的修改和读取都是由它的元表完成的,对环境的修复也要以这个元表为突破口,详见 core.lua
。
以下假设你还未使用 miniExtend ,使用 miniExtend 会改变这些现象,详见 [miniExtend Core][/api/core.html] 。
# 删除的基本函数和库
io
、package
中的所有值。os
中除了os.dateLua、os.timeLua
以外的所有值。
TIP
实际上,输出的值并没有真正的从内存上删除,只是无法通过 _G
索引而已。
# 修改的基本函数
dofileLua
和loadfileLua
函数不会获得它们应有的效果,应该是什么都不做的空函数。errorLua
函数虽然仍会在日志中输出错误信息,但不会抛出错误来终止函数运行,在没有 miniExtend 时,开发者可能不得不使用return error(message);
。- 调用
loadstringLua
函数会弹出漂浮文字,提示开发者使用LoadLuaScriptLua
,而不会做其它事。 print
函数在日志中输出而不是在控制台输出,且格式化方式与标准print、
差异很大,具体格式化方式可自行测试。
# 添加的函数
copy_table(table)
: 返回table
的深拷贝isTypeError(type, ...)
:如果所有可变参数的类型都等于type
,返回false
,否则返回true
。print_console
:等价于调用标准 Lua 的print、
函数,要注意该函数会输出到控制,而非日志。printtag(tag, ...)
:在日志以tag
为标签格式化输出,参见 [printLua][print] 函数,调用print;
等价于调用printtag("global", ...)
,也就是说printLua
函数使用标签"global"
。warn(message)
:在日志中输出警告信息(有黄色高亮标记)message
,使用"warning"
作为标签。
miniExtend 没有修改这些添加的函数,不建议使用这些函数,它们应该只被内部调用。