Appearance
二维表介绍
介绍
二维表变量是将数据以表格的形式存储的新变量类型,使用非常简单。大家在制作RPG、塔防等需要大量配置的游戏时,再也不用新建多个数组,直接通过二维表就能快捷的实现。 二维表支持全局变量和玩家变量,其中玩家的二维表可以在服务器上保存数据,在新建变量时选择云变量即可。
表格编辑
在你第一次新建二维表变量时,需要先定义二维表的列字段。点击查看/编辑,进入二维表编辑页面。
模板导出
当前版本只支持csv表格导入,通过excel可以使用公式填充更高效快捷的编辑数据,之后会开放表格编辑工具。
你可以点击导出示例,来查看官方支持的数据类型。
表格编辑
首先使用excel或wps打开导出的文档。我们可以看到如下的模板。
- 第一行为字段的备注,主要用来说明字段的用途,避免混淆字段。备注填写后在调试或查看时,可以更快速的判断字段的用途。备注非必要字段,可为空。
- 第二行为列名,用于在编辑和逻辑调用时区分不同的字段。该字段为必填项且不可重复。
- 第三行为列的类型,我们会根据不同的类型,将下方填写的值解析成不同的数据类型。方便在逻辑中更好的运用。以下是当前版本支持的数据类型。注意数据类型为必填项,且必须和官方的定义完全一致,否则无法识别。
参数类型 | 类型名 | 参考填写值 |
---|---|---|
数值 | number | 1 |
三维坐标 | position | 0|7|0 |
字符串 | string | 迷你世界你好 |
布尔值 | bool | 0 |
方块类型 | block | 100 |
道具类型 | item | 101 |
生物类型 | actorid | 3400 |
特效类型 | effectid | 1000 |
玩家 | player | 1000077763 |
对象实例 | objid | 154467589 |
图案 | image | 8_400415944_1642835210 |
颜色 | color | #91b8b8 |
- 第四行之后的数据为实际数据,可以在编辑模式下设置默认值,在运行中实时增删改查。那我们如何查找游戏中的各种id呢?可以打开脚本编辑器或触发器,选中对应的参数类型,然后在选择器中找到想要的参数,接着点击ctrl+c或复制按钮,即可复制id。最后将对应id在excel中填写。
表格导入
当你在excel中配置好需要的数据类型后,就可以打开点击导入,选择你刚刚编辑好的表格了。
二维表常见问题
- Q:我可以在运行时动态扩充列吗
- A:不可以,必须在编辑模式下定义好所有的列数据类型。
- Q:导入后提示”超过2000行“
- A:目前单个表格最多只支持2000行数据。
- Q:导入提示”未能识别某列的列类型“
- A:支持的数据类型为上方表格限定范围,请检查是否与官方给定的一致。
- Q:导入提示”列名不允许重复,请重新输入“
- A:列名需要保持唯一,否则在触发器中无法区分不同的字段,请修改表格后重试。
- Q:导出后提示”缺少列名“
- A:列名不允许为空,请修改表格后重试。
- Q:导出后提示”第x列中数据与数据类型不符,已自动置空“
- A:数据类型和下方的值需要对应,如果填写的值无法按数据类型解析,会将该值重置为空值。
- Q:行数据可以为空吗
- A:可以的,如果设置为空,在读取时也会返回空值。建议在读写时用触发器的空值判断后再进行操作。
- Q:运行过程中提示我”数据超过上限,请联系开发者“
- A:单个玩家的二维表变量和其他云变量的存储总量受64K的限制
- Q:为什么我的数据表都是正确的,但是提示”数据与类型不符“
- A:这个是一个bug,等待下个版本修复。
逻辑操作(lua接口参考二维表变量数据管理接口 Table | 迷你世界UGC3.0脚本Wiki)
动作:在(二维表↓)添加一行数据()()()()
说明:
在表的末尾插入数据,选择要操作的二维表后,后方会自动根据表格解析出数据类型。
原始表格:
触发器:
运行结果:
动作:在(二维表↓)中第()行插入数据()()()()
说明:
- 新增一行并插入到对应的行数中,原有行数的行往后移。
原始表格:
触发器:
运行结果:
动作:替换(二维表↓)中列名为()行为()行数据为(任意值)
说明:
在二维表中修改某列数据值,可以指定修改要修改的行数,支持传入数组后修改多行的数据。
原始表格:
触发器:
运行结果:
动作:更新(二维表↓)中列名为()数据(=)(任意值)的行:第()列数据为(任意值)
说明:
在表格中查找列中对应数据的行,如果查找到后可以修改其他列的数据为另一个值。例如我们想把分数是0分的人的名称修改为“零分的人”.我们要查找“分数"列等于0分的行,我们找到了第三行,这时候可以修改第三行的”名称“数据为“零分的人”。
原始表格:
触发器:
运行结果:
动作:删除(二维表↓)中第()行数据
说明:
将某一行删除,下方的行往上移。
原始表格:
触发器:
运行结果:
动作:清空(二维表↓)
说明:
清空二维表的所有数据,请谨慎操作。
原始表格:
触发器:
运行结果:
取值,返回不同类型值:查询(二维表↓)中第()列()行数据
说明:
获取对应数据对应行数的值,切换列类型后该积木的数据类型会实时变化。
原始表格:
触发器:
运行结果:
取值,返回不同类型数组:查询(二维表↓)中第()列数据
说明:
获取指定列的数据,返回的是对应数据类型的数组
原始表格:
触发器:
运行结果:
取值,返回数值:查询(二维表↓)总行数
说明
获取表格的总行数。
原始表格:
触发器:
运行结果:
取值,返回数值:查询(二维表↓)中第()列中 值为()的行数
说明:
查询表格中某列数据中对应值的行,如果有多行只返回第一行。
原始表格:
触发器:
运行结果:
取值,返回数值组:查询(二维表↓)中第()列中 值为()的行数组
说明:
查询表格中某列数据中对应值的行的数值组。
原始表格:
触发器:
运行结果:
数据调试
- 在运行过程中点击调试后,可以点击对应的二维表,查看当前二维表的值。
- 查看的同时可以将运行结果导出到电脑中,之后在编辑模式下直接导入使用。