本详解以r23.3为蓝本。
首先看服务端根目录(此处以R23为蓝本)
服务端根目录存在三个文件夹和一个exe后缀的服务端启动文件。
1. db文件夹
db文件夹Db是什么,一般来说,db是database的缩写,也就是数据库。这里数据库意思就是存储静态数据的地方。上图是此版本db文件夹全貌。
1-1.assort文件夹
此文件夹存储的是商人和跳蚤市场的交易物品等信息,打开之后如下图。
这9个文件夹分别对应了8个商人以及一个跳蚤市场(ragfair)。其中,8个商人文件夹名称都是一串16进制代码组成。
1-1-n(n=[1~8]).商人文件夹
我们以”5a7c2eca46aef81a7ca2145d”文件夹举例。打开之后,
5a7c2eca46aef81a7ca2145d有这么几个文件夹和文件。
先从文件讲起。
1-1-n-1,base.json
此文件为商人的配置文件,打开之后如下代码区。后有注释。
/*******
{
"_id": "5a7c2eca46aef81a7ca2145d", //商人id
"working": true, //是否开放
"customization_seller": false, //是否拥有定制服务
"name": "Сергей Арсеньевич", //名字
"surname": "Mechanic", //职业
"nickname": "Механик", //职业
"location": "Химкомбинат", //工作地点?
"avatar": "/files/trader/avatar/5a7c2eca46aef81a7ca2145d.jpg", //商人的头像地址
"balance_rub": 80000000, //卢布钱包
"balance_dol": 0, //美元钱包
"balance_eur": 0, //欧元钱包
"display": true, //是否显示
"discount": 0, //折扣
"discount_end": 0, //不知道
"buyer_up": false, //不知道
"currency": "RUB", //结算货币
"supply_next_time": 1576764739, //刷新时间
"repair": { //维修相关
"availability": true, //维修是否可用
"quality": "0.7", //维修质量
"excluded_id_list": [], //不能修的物品id
"excluded_category": [], //不能修的物品的文件夹
"currency": "5449016a4bdc2d6f028b456f", //结算货币;注,这串代码是卢布的16进制代码
"currency_coefficient": 1, //货币系数
"price_rate": 175 //价格权数
},
"insurance": { //保险相关
"availability": false, //是否开启
"min_payment": 0, //最少支付多少钱
"min_return_hour": 24, //scav携带物品最小返回时间 "max_return_hour": 36, //scav携带物品最大返回时间
"max_storage_time": 72, //最大保管时间
"excluded_category": [] //除了这些物品(目录)
},
"gridHeight": 160, //格子高度
"loyalty": { //忠诚等级
"currentLevel": 1, //初始等级
"currentStanding": 0, //初始声望
"currentSalesSum": 0, //初始总交易金额
"loyaltyLevels": { //以下是等级设置
"0": { //以此为蓝本注释
"minLevel": 1, //最少需求等级
"minSalesSum": 0, //最少需求总交易金额
"minStanding": 0 //最少需求声望
},
"1": {
"minLevel": 20,
"minSalesSum": 1000000,
"minStanding": 0.15
},
"2": {
"minLevel": 30,
"minSalesSum": 1600000,
"minStanding": 0.3
},
"3": {
"minLevel": 40,
"minSalesSum": 2500000,
"minStanding": 0.6
}
}
},
"sell_category": [] //不知道
}
******/
以上就是一个商人的所有配置信息。
1-1-n-2,categories.json
此文件尚未搞懂机理。
接下来就是文件夹了。
1-1-n-3,barter_scheme文件夹。
此文件夹规定了货物的价格或者交易所需的物品及数量。打开后如下图。
有着一连串的json文件。随便打开一个,配置表如下,有注释。
/******
[
[
{
"count": 133.83, //交易物品数量
"_tpl": "569668774bdc2da2298b4568" //所需交易物品的id
}
]
]
******/
接下来是下一个文件夹。
1-1-n-4,item文件夹
此文件夹规定了物品的配置,打开如下图
也是有非常多的json文件。有规律的是,此文件夹内的文件与barter_scheme文件夹内的文件是相互连接的。每个相同文件名的文件都对应着同一份物品的配置。随便打开一个看看,如下,带注释。
/******
{
"_id": "5e3c0b837dfe975b6f2b0aa7", //id号
"_tpl": "5ac66c5d5acfc4001718d314", //id号(个人觉得_tpl才是真正的id号)
"parentId": "hideout", //父级id
"slotId": "hideout", //插槽id
"upd": { //udp配置
"UnlimitedCount": true, //无限计数
"StackObjectsCount": 500000 //堆叠
}
}
******/
另外还有一种子物品的item配置,它没有对接文件在barter_scheme文件夹,随便打开一个看看。
/******
{
"_id": "5e3c0b827dfe975b6f2b07f1", //id号
"_tpl": "5aaf8a0be5b5b00015693243", //id号
"parentId": "5e3c0b827dfe975b6f2b07f0", //父级id号
"slotId": "mod_magazine" //插槽名称
}
******/
在这种配置文件内发现,parentid与slotid不是hideout了,说明有父级节点。以这个为例,这个物品(5aaf8a0be5b5b00015693243)是父级物品(id:5e3c0b827dfe975b6f2b07f0,tpl:5aafa857e5b5b00018480968)的 "mod_magazine"插槽处的mod零件。为什么会出现子级套父级?是因为tarkov内商人出售的枪支等物品大多都是一整套的,而真正的物品对应的则只是一个父体。比如这个配置,子级物品(5aaf8a0be5b5b00015693243)是”mag_m1a_springfield_armory_762x51_20”也就是20发762x51_m1a弹匣;父级物品(5aafa857e5b5b00018480968)是”weapon_springfield_m1a_762x51” 也就是m1a_springfield。
接下来是最后一个文件夹。
1-1-n-5,loyal_level_items文件夹
此文件夹规定了购买商人的售出物品所需的等级。比如”5e3c0b827dfe975b6f2b07e8.json”文件内数值为1,就说明id为”5e3c0b827dfe975b6f2b07e8”的物品,需要1级即可交易。
Assort文件夹到此结束。如果有人看我继续写。
JET