首先,我们要明确一点,在北侠的环境下,各种地图信息格式百花齐放。
有文本流的,有脚本流的,有数据库流的,还有脚本专有格式流的。
对于我而言,一直是文本流的拥护者。
第一,便于维护/批量维护
第二,便于进行版本管理,通过对比能看看两个版本之间变动了那些信息。设置我还准备 做过diff的功能。
第三,便于编码处理。很多专有格式要搞个编码处理很蛋疼。
我一开始的预案是JSON/XML/类CSV选择一个。
但考虑到要做1比1 js/lua实现
XML第一个被排除了。
JSON的话,不方便按行做版本处理,而且做不同编码很麻烦,我也不高兴做。
所以我自己做了个带转义最多支持3层(实际写着写着到了5层)的类CSV格式。
人类能看,难写,方便脚本处理。
格式大概如下(非北侠数据):
- HMM1.0>UTF8
- Info>hell地图测试|1746810633|测试用数据
- Room>0|中央广场||||e,59,,1;enter dong,1927,,1;n,22,,1;s,40,,1;w,1,,1|
- Room>1|西大街||||e,0,,1;n,2,,1;s,5,,1;w,7,,1|
- Room>10|财主大院||||n,11,,1;s,9,,1|
- Room>100|石阶||||eu。,101,,1;wd,99,,1|
- Room>1000|民宅||||s,999,,1|
- Room>1001|黄土路||||n,1002,,1;se,999,,1|
- Room>1002|黄土路||||ne,1003,,1;s,1001,,1|
- Room>1003|渭汾流域||||n,1004,,1;ne,1712,,1;s,1025,,1;sw,1002,,1|
- Room>1004|黄河||||s,1003,,1;w,1005,,1|
- Room>1005|河套||||e,1004,,1;sw,1007,,1;w,1006,,1|
- Room>1006|青城||||e,1005,,1;n!,2048,,1|
- Room>1007|黄土高原||||ne,1005,,1;sw,1008,,1|
复制代码 第一行是文件信息,包括版本和编码(对,就是为了gbk和uft之争)
|