我们常常会修改Aki_Data\Server\database(configs下次讲)里的json格式文件来改进游戏体验
数据库启动后,所有的json都会被读入内存被服务端所用。那么我们可以在这一阶段(读入内存后)来修改各项数据,效果后修改文件是一样的,但是文件本身不会有变动。
14-18行我们获取了整个数据库,并起名tables,这就是database里的所有的json转化成的对象了。
那么怎么修改呢?就是按照文件夹和文件里的层级用英文句号连起来,如果涉及到开头数字、带有空格之类的,可以用英文双引号加方括号。
25-28行把ledx的“可以在跳蚤卖”改成“是”。这个示例里把它拆开来写了,那么连起来就是
tables.templates.items[“5c0530ee86f774697952d952“]._props.CanSellOnRagfair = true;
对应的就是
\Aki_Data\Server\database\templates\items.json
……
“5c0530ee86f774697952d952“: {
“_id”: “5c0530ee86f774697952d952”,
“_name”: “Item_barter_medical_transilluminator”,
“_parent”: “57864c8c245977548867e7f1”,
“_props“: {
………………
“CanSellOnRagfair“: true,
………………
},
“_proto”: “59e3606886f77417674759a5”,
“_type”: “Item”
},
…………
(本来就是能卖,等于没改)
那么这就是访问数据库对象的方法了,接下来你就可以通过一些简单的js/ts来批量地修改各种属性了。就像3号例子那样。
如果你觉得50行那种看的不太懂,也可以用更粗暴地方法来修改所有弹匣的属性
一般一类物品都有同样的_parent或者proto属性
对于所有物品中,_parent是某个值的,把它的某个属性改为某个值
这里举了items的例子,不光是它,所有的database里的数据都可以这样修改
课后作业
通过服务端模组,把图里的任意一行字改为“俄国原神!启动!”
大佬,请问item.json文件里类似于每段结尾的代码:"_proto": “xxx”是什么意思呢,有什么作用在这里