鉴于篇幅所限,不想再对原帖内容进行编辑,仅在其中进行更新版本。因为原帖的内容自己感觉有些凌乱,特开新帖对Mod的总体和自定义物品商人的使用详细说明。
下载地址见:https://sns.oddba.cn/47235.html
一、Mod目录
bundles 存放物品皮肤文件,
bundles.json 用于编辑物品皮肤文件的依赖路径代码;
db 自定义物品文件,其中 assort用于存放整枪和带配件商品的文件,items存放单个自定义物品的文件,temp为超级模块自定义物品格式文件的临时转换目录。
res 所有商人的头像图片存放目录
extend 扩展目录,存放三个商人的相关js文件夹和数据
config.json 是Mod的配置信息文件
更新说明:已增加服务端文件修改的其他扩展,可对服务端的configs和database中的文件修改
二、使用说明
1、配置文件
config.json
每个商人可以自己设定开启或关闭,enable的值为true表示开启,false为关闭,注意如果关闭了自定义物品商人newTrader,下次游戏时会自动清除存档中的自定义物品,因为自定义物品都是通过newTrader加载到内存然后写入存档。
currency 可以为每个商人指定交易币种。接受三个值的任意一个:”RUB”、”USD”、”EUR”,分别表示卢布、美元、欧元,选择交易币种后,启动游戏后的商人会自动切换你指定的币种,并按照卢布对美元1:0.016、卢布对欧元1:0.015的汇率近似值切换所有商品的售价。
locales 中的信息可以自定义,随便你改名叫什么商人,包括下面的信息,开启商人后控制台会显示FullName的名称。
2、更换商人头像
打开mod中的res目录,将所有头像图片放目录中,图片建议尺寸128×128,jpg格式。3张图片的文件名称必须是newTrader、taskTrader、contrabandTrader。
mod会根据图片名称自动查找对应商人并应用。
如果图片名称不包含上述的名称,或者当res目录下没有对应商人图片时,该默认显示unknown商人头像。
注意更换头像图片后需要清理缓存文件,新头像才会重新加载。
3、添加自定义物品
Mod中的自定义物品功能,是基于SPT官方提供的服务端内置方法CustomItemService开发的,使用专门的格式。目前有两种添加方式:
(1)超级模块的自定义物品文件,可以自动转换为本Mod的格式
将批量多个或单个超级模块的自定义物品文件,放至Mod根目录的db\temp文件夹中,启动游戏时Mod首先加载temp中的文件,并进行转换,完成后自动清除temp中的文件,然后加载转换后的自定义物品文件。
(2)手动创建自定义物品
打开Mod根目录的db\items文件夹,创建一个json文件,并输入下面的基本内容:
以上这四个是自定义物品文件必需的属性,如果缺少其中一个,服务端的CustomItemService就会读取错误,无法添加物品,并在控制台爆红字信息。
Mod中,增加了对以上必需属性的检查,如果缺少了某一项,就会在控制台以醒目消息提示你具体是哪一个物品文件存在问题,并跳过这个物品,继续加载下一个。这样就避免了报错的时候抓狂摸不着头脑。如果你的自定义物品文件很多,又很不巧地有好几个文件都存在问题,这个功能会非常有用。提示信息如下:
(3)下面以创建一个SIG MCX 突击步枪为例:
“itemTplToClone” 后面填写SIG MCX的tpl:”5fbcc1d9016cce60e8341ab3″
“overrideProperties”的括号内填写想要设置的新物品属性,如下
可以不用加Slots,也不用加Chambers,新枪就可以使用原来SIG MCX 所能使用的全部配件、弹匣和弹药,包括你将来以这些配件、弹匣和弹药为基础制作的自定义物品,都会自动适配。除非你要使用的配件、弹匣和弹药原本不属于SIG MCX 能用的,才需要添加Slots和Chambers。
并且,当创建新的自定义弹匣时,也不需要写Cartridges,就可以使用弹匣原型所能用的一切弹药及自定义子弹,情况同上。除非你要修改弹匣的弹容量和使用不属于原型弹匣的子弹,才需要写Cartridges。
“fleaPriceRoubles” 后面填写商人出售这个商品的价格;
“locales”中的”ch”,填写商品的中文信息。
以上就是你需要编辑的全部内容了。
物品的id、parent什么的都不需要填写。为了解决自定义物品id重复报错,物品多了id不好管理的难点,Mod会自动为你的新物品创建一个永不重复的随机id,并会一直使用它,当加载新物品后,这个目录中所有的物品文件都会自动新增一个”newId”的参数,值就是Mod为它创建分配的id,用于你编辑自定义预设武器或其他用途。
如果你愿意自己指定物品的id也可以,那就增加一个属性”newId”: “” ,填上自己指定的编号。
需要注意的是,超级模块自定义物品文件转换过来的,还是会保留原有的id。
(4)再举个弹匣的例子,比如PMAG GEN M3,也按照上面的方法,弹匣主要就是装弹药,没有那么多属性要加,如果要修改弹容量,就把Cartridges复制过来,注意要复制Cartridges全部结构内容,然后更改”_max_count”这一项就行了,其他的都不用改动。再补上”fleaPriceRoubles”的价格,和”locales”信息,进入游戏后,刚才的SIG MCX 就可以使用这个弹匣了。
“ExaminedByDefault”: true,
//把Cartridges全部内容复制过来
(5)新物品添加Buffs
比如牛奶,给它添加恢复健康值、恢复耐力、移除出血状态的Buffs,示例如下:
按上面的方法创建牛奶的自定义物品文件;
在”overrideProperties”中,增加 “StimulatorBuffs”: “myBuffs”, 后面的名称可以随便自己取
然后,新增一个Buffs属性,注意它和”itemTplToClone”、“overrideProperties”、”fleaPriceRoubles”、 “locales”是平级的;
在Buffs中增加自定义的“myBuffs”: [ ],名称和上面的“StimulatorBuffs”值一致,上面取的什么Buffs名称,这里的名称就是什么,然后将需要的Buffs效果添加到[ ]中就行了。
4、添加预设武器
手动添加:
需要按照预设武器的固定格式,添加到mod的db\assort目录中。具体格式请下载示例文件。
自动添加:
(1)需在v1.4.1版本上覆盖安装更新包,将v1.4.1专用的更新包解压后,直接复制到游戏的user\mods目录下覆盖原来的brotherTraders,选择替换相同文件;
(2)在config.json配置文件的newTrader下,增加一个字段”weaponBuilds”, 注意大小写,字段的值为true
(3)进入游戏中编辑预设武器并保存,随便使用游戏默认的武器,还是使用自定义的武器,都可以。
(4)退出游戏后,下次再进入时,神秘商人就会出售你之前保存的预设武器了。只是价格会随机在1万卢布-5万卢布之间;
(5)如果想修改商人出售预设的价格,在退出游戏后,先到mod的db\assort目录中,你会发现目录下会自动产生了一个和你刚才保存的预设名称相同的文件,并且已经按照商品文件格式排版好了。打开文件,找到”barter_scheme”,其中的”count”就是商人的出售价格,把它的值修改为你想要的价格就行了。改好后保存,然后再进入游戏。
5、如何让神秘商人不出售某个自定义物品
默认情况下,所有的自定义物品都会出现在神秘商人的出售列表中。在商人出售了预设整枪后,可能希望某些自定义的武器配件不要出现在神秘商人的出售列表中,比如自定义的枪管、上机匣等等。
这种情况,只要在这个自定义物品的文件中,增加一个属性:”isSell”:false 商人就不会出售这件物品了。
6、存档修复
Mod中有检查存档的功能,在每次启动游戏的时候自动检查一遍当前登录账号的存档仓库信息。只要发现有数据库中不存在的物品,就会从仓库中删除,并且也检查存档中使用不存在的物品编辑的预设,如果有也会一起删除,这样就避免了因为改动自定义物品属性造成哈希变化,成了不存在的物品、启动游戏就爆红的错误。
7、关于物品皮肤
因为我个人对物品皮肤并不感冒,也从来不用自定义皮肤,所以对它研究甚少,曾经下载过一些大佬的皮肤,包括替换式的、挂载式的,不过只是了解加载皮肤的过程,让Mod支持自定义物品的皮肤功能。但这方面无法像超级模块那样做到傻瓜化安装,必须自己填写皮肤的依赖路径。主要原因,超级模块是使用联网认证方式加载皮肤的,一般来说,专业的软件开发者都有自己的服务器,超级模块中皮肤功能的代码是打包加密的,个人猜测,估计源代码中也带有认证皮肤的服务器api接口,这些都属于机密,是不可能公开的。我并不是从事专业开发工作的,仅仅是业余爱好,虽然也能用Node写写后端,前端也能做一点,但那种需要服务器认证方式的成本显然是无法承受的,更遑论还需要社区资源、皮肤作者的支持,所以做不到像超级模块那样的。
望使用商人三兄贵的朋友们理解。
8、为什么不用配置器,而使用配置文件
其实对于塔科夫离线版这么一款修改自由度极高的游戏,探索并了解游戏各种修改项是玩家的一项必备技能,使用配置器尽管很方便,玩家只知道这里打个勾游戏中就生效了,但大体的修改范围就被限定死了,也始终无法知道究竟修改的是哪里。
同时Mod增加功能时也要重新打包配置器,而配置文件则会很灵活,可随时进行扩展(其实我也做了个配置器,天杀的微软Defender总是自动删掉我的配置器,折腾了好几次未果,怒而弃之)。
自定义物品的示例文件可下载查看
隐藏内容需要登录才可以看见
帖子发布时间比较久了,有部分更新内容:
商人自动添加预设:1.4.4以后的版本不需要更新包了,默认直接支持存档预设,但需要在保存预设时按照mod下载贴中的说明添加预设后缀,比如商人出售的添加 -myset,全局预设添加 -preset-武器显示名称,bot使用武器添加 -bot1-bot类型;
1.5.0和以后的版本,商人头像移到res/avatar目录中
6666666666666666666
666666666
这个转换功能简直太棒了
666666666666666666
大佬666
6666666666666666666666666
3.5用不了
下载的文件解压后,如果db\assort中已经有预设武器的文件,可以把这些文件全部删掉。那些是我测试用自己的独立武器编辑保存的预设,别人如果缺少这些武器的本体和配件,是用不了的。直接删除就可以了,然后自己在游戏的编辑预设界面改枪装配就可以了。