# ConfigTool **Repository Path**: RainPerseverance/config-tool ## Basic Information - **Project Name**: ConfigTool - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-11-14 - **Last Updated**: 2021-11-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 配置表工具使用文档 # 总概述: 以下的说明中,在说明中如果以$value 这样的格式, 那么说明这个值是一个可变的值。 ### 一. 需求背景 因为我们需要提升 使用配置表的效率(通过生成代码的方式实现) 以及优化 内存读取, 配置表检查。 ### 二. 使用及环境要求 工具使用nodejs开发, 多端支持. 无需环境 ### 三.支持基础类型 |配置名|配置格式|格式检查|配置例子|额外说明| |---|---|---|---|---| |long|整数| |5| | |int|整数| |5| | |float|浮点数| |5或0.5| | |string|字符串| |asd 或 55| | |list|符合 json配置格式的list| |[1,2,"1","a","b"]| | |map|符合json配置格式的map| |{1:1, b:1,"1":1,"b":"a"}| | | | | | | | ### 四.表格头说明 |行数|意义|解释| |---|---|---| |第一行|字段备注|不会导出| |第二行|字段名|生成之后的class的字段名| |第三行|字段类型|生产之后的C#的字段类型| |第四行|扩展项|配置该列字段需要的扩展项| |第五行|从第五行开始就是真正的数据了|配置真的数据了| ### 五. 扩展项支持 |规则名|作用|配置方式|说明|例子|其他|状态| |---|---|---|---|---|---|---| |unique|如果被配置列中有重复字段会报错|unique|只适用于基础类型| | | | |index|声明该列为**唯一主键** , 同时声明一组额外的api, 用于使用该主键进行数据获取**单个数据** |index|只适用于基础类型| | | | |multipleindex|声明该列为**主键** , 同时声明一组额外的api, 用于使用该主键进行数据获取**数据列表** |multipleindex|只适用于基础类型| | | | |static|声明该列数据为静态数据, 会在管理器类中直接生成快捷获取接口.|static|需要对每个类型进行配置, 导出时候会进行类型判断.| | | | |complexindex|声明配置的列为唯一组合**主键** , 同时声明一组额外的api, 用于使用该主键进行数据获取**单个数据** | | | | | | |multiplecomplexindex|声明配置的列为组合**主键** , 同时声明一组额外的api, 用于使用该主键进行数据获取**数据列表** | | | | | | |ref| | | | | | | ### 六. 额外支持 |规则名|作用|配置方式|说明|例子|其他|状态| |---|---|---|---|---|---|---| |文件导出屏蔽规则|用于在导出时候, 忽略对该表的导出|文件以 ''_ignore 结尾'' 不导出| | | | | |sheet导出屏蔽规则|用于在导出时候, 忽略对该sheet的导出|sheet以 ''!''开头的sheet 不导出| | | | | |配置表拆分规则|用于在配置的时候表现为多个sheet,但是在使用的时候会被合并成一张表格子|
如果配置表sheet以 ${x}_split${num}结尾, 标识一个文件需要在导出的时候 进行合表操作.|
举例 item_split1, item_split2 , item_split3 导出的时候, 会合表为一张item表

检测规则为, 表头的 字段名, 字段类型, 检查项需要相等.| | | | |配置分组规则|用于对玩家进行分组,做abtest或者其他用处|multipleindex| | | | | |配置区分平台|用于针对平台进行不同的导出|
配置表名以{配置表名}@p={平台名} 的方式命名, 标识该表需要区分平台导出.| | | | | |列注释|导出的时候会先剔除这一列|在第一行中填入‘#’| | | | | |行注释|导出的时候会先剔除这一行|在第一列中填入‘#’| | | | | ### 八.技术细节     - 配置格式         - 格式扩展             - 表格配置对Json进行了一点简化处理, 主要是集中在map类型的配置, 如果一个json为 {"1" : 1, "b" : "1"} 那么这个json和 {1:1, b:"1"} 反序列化出来是同样的结果.         - 符合json标准的输出             - 配置表工具在导出时, 会将json序列化为标准json格式.