windy-quicktable
v1.3.125
Published
本配表工具支持按照固定格式配表, 并使用导表插件导出
Readme
QuickTable 表格工具使用说明书
本配表工具支持按照固定格式配表, 并使用导表插件导出
表格格式定义
数据表
表格头格式: 数据表格以行为单位,每一列为一个数据字段。前三行为预留项,分别为字段标签、字段导出名称、字段数据类型。其中字段导出名称主要用于导出给项目开发使用, 该项选填即可。例如:
ID | 名称 | 解锁等级
-|-|-
ID | name | unlocklv
uid | *trstr | number
1 | 母鸡 | 10
2 | 公鸡 | 20
3 | 大肥牛 | 30
4 | 小猪头 | 40
当只配置字段标签,则表格在导出时会忽略该字段:
ID | 该字段会被忽略 | 名称 | 解锁等级
-|-|-|-
ID | | name | unlocklv
uid | | *trstr | number
1 | 备注1 | 母鸡 | 10
2 | 备注2 | 公鸡 | 20
3 | 备注3 | 大肥牛 | 30
4 | 备注4 | 小猪头 | 40
字段数据类型
每一个字段必须标注明确的数据类型,数据类型主要有2大作用,一是帮助策划完成基础的数值填写检查,例如一个字段指向另一张表中的某一个uid字段,此时可以字段检查目标ID是否存在;二是精确的数据类型可以自动生成常用的查询代码,提升程序的开发效率。目前支持以下数据类型:
类型 | 默认值 | 作用 | 常用写法
-|-|-|-
any | null | 表示任何数据,通常用于一个通用性字段。一般不用。 | 可填写任何值,数值不会经过任何处理 |
uid | 0 | 表示该表的主键,一般一张表只有一个该字段,导出时会检查该列是否有重复项 | 从1开始依次累加 |
fk | 0 | 表示外键,指向当前表或另一张表中的某一个uid字段,导出时会自动检查目标id是否存在并生成程序所使用的快速查询代码,填写是需要附加表名和字段名。例如:fk gameconfig id 表示指向 gameconfig表中的id字段,当fk指向非uid类型的字段,则将理解为可匹配多行 | 整数或留空 |
fk[] | [] | 功能与fk相同,这里可以表示一个数组来指向多个id。例如:fk[] skillconfig id | 用分号分割每一项。如:1001;1002;1003 |
key | "" | 该字段主要用于生成一张键值查找的map,例如从某个字符串可以快速拿到某一行数据,可以提升程序查询数据的效率 | 不重复的字符串 |
number | 0 | 数值 | 任何数字 |
number[] | [] | 数值数组 | 用分号分割,例如:1.5;2.5;3 |
float | 0 | 数值 | 任何数字 |
float[] | [] | 数值数组 | 用分号分割,例如:1.5;2.5;3 |
int | 0 | 数值 | 32位整数 |
int[] | [] | 数值数组 | 用分号分割,例如:1;2;3 |
long | 0 | 数值 | 整数 |
long[] | [] | 数值数组 | 用分号分割,例如:1;2;3 |
bool | false | 布尔值 | 可填写true或false,或者用 1 0 表示 |
bool[] | [] | 布尔值数组 | 同上,用分号分割 true;true;false 或 1;1;0 |
string | "" | 字符串 | 字符串文本 |
string[] | [] | 字符串数组 | 使用两个连续的逗号或分号分割每一段字符串例如:怪物1,,怪物2,,怪物3 又如:怪物1;;怪物2;;怪物3 |
trstr | "" | 需要翻译的字符串 | 功能与文本相同 |
trstr[] | [] | 需要翻译的字符串数组 | 功能与文本相同,使用两个连续的逗号或分号分割每一段字符串例如:怪物1 |
note | "" | 不需要导出的备注文本 | 任意文本 |
object | null | 可以填写任何Json对象,通常不建议使用,因为这会导致程序不能准确识别里面的类型,不能在运行前得知里面是否有错误 | 例如 {"a":1,"b":666,"c":[1,2,3]} |
object[] | [] | 功能同上,但能保证导出后是一个数组,即使只填写了一个对象 | 例如 [1,2,3] 或 [{"a":1,"b":666,"c":[1,2,3]},2,[3,3,3]] |
自定义复合类型
类型 | 默认值 | 作用 | 常用写法
-|-|-|-
@($type,$type) | | 二元元组 | 固定格式 1|2 |
@($type,$type)[] | | 二元元组数组 | 固定格式 1|2;;2|3 |
key的用法
ID | 键 | 值 | 表述 -|-|-|- ID | key | value | des uid | key | any | string 1 | mailUnlock | 10 | 邮箱解锁等级 | 2 | shareOpen | true | 开启分享 | 3 | eggUnlcok | 20 | 扭蛋解锁等级 | 4 | fps | 30 | 游戏运行帧数 |
fk的用法
heroconfig 英雄表
英雄ID | 英雄 | 技能列表
-|-|-
id | name | skills |
uid | string | fk[] skillconfig id |
1 | 皮卡丘 | 1001;1002;1003 |
2 | 妙蛙花 | 2001;2002;2003 |
3 | 妙蛙种子 | 2001;2002;2003;3001 |
4 | 水箭龟 | 4001;4002;999 |
skillconfig 技能表
技能ID | 技能名称 | 攻击力 | 攻击方式 -|-|-|- id | name | attack | attacktype uid | string | number | fk attacktypeconfig id 1001 | 放电 | 100 | 1 1002 | 十万伏特 | 1000 | 2 1003 | 撞击 | 200 | 1
attacktypeconfig 攻击方式表
ID | 名称 | 其他属性
-|-|-
id | name | ... |
uid | string | ... |
1 | 普通攻击 | ... |
2 | 范围攻击 | ... |
命令行
以下内容需要项目组主程完全掌握
表格导出
导出表格,可以每张表格单独导出,或是全部数据一起导出。
- 安装全局命令工具
$ npm i -g windy-quicktable- 安装导表插件 导表工具依赖导表插件导出具体格式, 具体安装方法参照插件各自文档说明, 如: typescript导表工具
$ npm i -g export-table-plugin-插件名- 命令行基本格式
$ call quicktable export ${配表路径} ${导出路径} --tags 插件名:插件标签
例如:
# 导出MEEC多语言表
$ call quicktable export ../../tools/meta-utils/MEEC_xls/奇妙的身体/i18n ./packs/behaviors/texts --tags meec:lang针对不同场景应用meta sheet
meta sheet命名: 场景.meta
重载sheet属性:
#sheet [-][新sheet名:]旧sheet名- 表示新的sheet名替代旧的sheet名
- 带
-表示不自动继承所有字段, 需要手动继承字段
重载字段:
[:-][新字段名[:类型]=]旧字段名- 表示使用新的字段名代替旧的字段名, 并用新类型覆盖字段类型
- 如果没有填新字段名, 那么表示显示声明要继承旧字段
-表示显示声明不继承该字段
使用 --scenes 选项指定场景应用meta
# 同时导出针对客户端和服务端的meta配置
$ call quicktable export ../../tools/meta-utils/MEEC_xls/奇妙的身体/i18n ./packs/behaviors/texts --tags meec:lang --scenes server --scene client按标签导出(待实现)
可以使用tag[]类型给记录加tag, 可用于一份表格分别导出前后端等用途
tags | ID | 名称 | 其他属性
-|-|-|-
| | id | name | ... |
tag[] | uid | string | ... |
c | 1 | 普通攻击 | ... |
s | 2 | 范围攻击 | ... |
还可以加一行特殊记录, 用于给字段加tag, 可用于一份表格分别导出前后端等用途
- 注意字段标签行首字段需要以
#开头
tags | ID | 名称 | 其他属性
-|-|-|-
| | id | name | ... |
tag[] | uid | string | ... |
| | #c | s,c | s...
c | 1 | 普通攻击 | ... |
s | 2 | 范围攻击 | ... |
插件开发
参考 导表插件开发指南
开发计划
参考 开发计划
