越来越多的小伙伴来到社区,在这里可以搜索和挑选购买到很多好玩的教程和mod,有很多小伙伴想自己学习制作mod,但苦于复杂的编程,有的教程一时半会儿又看不懂,从而难以一圆心愿。有很多小伙伴,是想能够自己做些独立的物品,不想再修改服务端的items,希望它的各项属性数据是自己调整出来的,要和AI使用的不一样就够了。
超级模块出现以后,使得我们达到这个目的变得更加简单。为了让更多的小伙伴用上自己的定制物品,我以M4A1突击步枪为例,简单介绍一下如何在超级模块中添加自己称手的兵器,这篇内容主要就是基于以上目的,为新加入塔科夫的伙伴们提供一个经验,论坛里很多会做物品的高手们,就忽略本文吧。谢谢。
首先声明我不会做独立皮肤,暂时也没有空去研究,喜欢魔改和炫丽的个性皮肤的,还是购买大佬们的作品吧。
目前自己陆陆续续做过十几支种类各异的枪,用的都是塔科夫原有模型。这些独立物品,我自己从未考虑出售,一是我自己修改的属性不见得适合别人;二是我的时间比较零碎,很少有整段的空闲打完整场战局,主要都在藏身处射击场自娱自乐试试,实战效果无法经受长期检验;三是自己技术也就这样,半瓶子水晃荡,担心出售的物品质量不过关。所以呢,就写写这篇东西,分享下自己做独立物品的心得,虽然厚着脸收点学费,也是因为自己真的很难有整段时间,今天编辑这个帖子,前后跨度就花了约五个小时,不断地坐下来想怎么写,然后又有事去办。但如果你学会了自制物品而且能做出更棒的,说不定以后我也是你的顾客呢,是不是?
在此基础上,大家也可以举一反三,平时多研究其他大佬们的优秀独立物品,多收藏论坛里的有用好帖,尝试修改其他类型的物品,为自己的塔科夫增加一些小小的乐趣,只有更多的人会制作独立物品,社区发布的mod才会变得越来越多,功能更加丰富。
我个人的目前环境是:塔科夫服务端版本是SPT-AKI 2.0.0正式版,编辑工具是NotePad++,当然你也可以用VSCode。在开始前,请自行搜索下载安装。
另外,我文后提供的样品和items原文件内容相对照,再配合本文说明,会更加清楚。
好了,下面开始。
一、打开游戏的items文件,找到M4A1的代码范围。
M4A1的id是5447a9cd4bdc2dbd208b4567,可直接用NotePad++打开并搜索,双击搜索结果带有id的那一行就能快速定位到正文的相应位置。双击红圈处即可。
二、在NotePad++中点击“文件”,“新建”。在新建的文件中输入以下内容:
{
“tpl”: “5447a9cd4bdc2dbd208b4567”, //引号中就是items文件中M4A1的id,不要写错!
“items”:{
},
“handbook”:{
“Id”: “”,
“ParentId”: “”,
“Price”:
},
“assort”:[
]
}
注意,”tpl”、”items”、”handbook”、”assort”,这四项是并列的,中间一定不能漏了逗号(英文半角),”assort”这里就结束了,它后面的[ ]后一定不要有逗号!切记!像”items”下面还有内容的,也必须遵循这个规则,否则会报错。而这一点正是很多小伙伴在制作过程中会遇到问题。
复制好上面内容,先保存,在打开的对话框选择保存路径、写上文件名、文件类型选择json。所有制作完成后,文件都要放到tkf-SuperMod\db\items下。
三、从原文件中复制M4A1的代码,往我们新建的json文件中添加。可以从头到尾复制下来,也可以自己想要修改的部分。我选择的这部分请看注释。
为了手把手教会小伙伴,我来一条一条地加数据,现在开始添加”items”括号中的内容:
“_id”: “5447a9cd4bdc2dbd208b4567”, //这个id,就要改成我们自己的m4a1专属id了,我在样品中定义的id是“m4a1_wangdachui”
“_name”: “weapon_colt_m4a1_556x45”, //专属定制当然得取个名了,我在样品中为它取名“王大锤M4A1私藏版”
继续往下看,接下来的几个参数都不要修改,那就到”Chambers”了,就是枪膛。为了保险起见,把”Chambers”和后面[ ]中的内容一起复制,注意不要漏了后面的逗号,再强调一遍!因为下面还没有结束,还有其他内容!
“Chambers”: [{
“_id”: “56eaa85ad2720b69698b456c”, //这个不要修改
“_mergeSlotWithChildren”: false,
“_name”: “patron_in_weapon”,
“_parent”: “m4a1_wangdachui”, //从属关系,这里要改为我们自己的武器id
“_props”: {
“filters”: [{
“Filter”: [“wangdachui_M855”] //这里是枪膛使用的子弹id,原文件这里有很多,为了节省版面,我都删掉仅保留一个。如果你要做专属子弹,在这里一定要写专属子弹的id,否则的话就保持原文件中的所有数据。注意这里因为我只留了一个专属子弹id作为示例,所以逗号就不要
}
]
},
“_proto”: “55d4af244bdc2d962f8b4571”,
“_required”: false
}
], //枪膛部分到这里暂时结束
枪膛部分结束了,我们继续往下看,再选择参数复制:
“CreditsPrice”: 18397, //这是价格,要留着,改不改你自己看着办
“Description”:”用了我王大锤的枪,你就是我王大锤的人。”, //这是描述,可自行发挥。引号后的逗号不要漏掉了
“DurabilityBurnRatio”: 1, //武器耐久损耗,你要缺钱修不起枪就改为0
“Ergonomics”: 48, //人机工效。你嫌少?好的,自己加到80
“ExaminedByDefault”: false, //默认检视(小窍门:在items文件中搜索,把所有物品这个参数下的false全部替换为true,就不用安装全检视mod了)
下面的几个参数都不需要了,一直到这里:
“RecoilAngle”: 90, //后座力方向。棍扫一大片!枪挑一条线!留个作业给你,试试设置为-90、180、0分别是什么效果
“RecoilForceBack”: 405, //水平后座力,样品改为200
“RecoilForceUp”: 147, //垂直后座力,样品改为50
强调一下:激光枪没意思!激光枪没意思!小改怡情,大改无聊!
“ShortName”: “M4A1 chuizi”, //物品的简称,自己看着写吧
到了”Slots”,这儿就是配件部分了,还是老规矩,把它连同后面[ ]里的内容全部复制,不要遗漏[ ]后面的逗号
“Slots”: [{
“_id”: “55d354084bdc2d8c2f8b4568”, //不用改
“_mergeSlotWithChildren”: false, //不用改
“_name”: “mod_pistol_grip”, //这个部件是手枪式握把,不要改
“_parent”: “m4a1_wangdachui”, //从属关系,同样改为我们自己为武器设置的id
“_props”: {
“filters”: [{
“Filter”: [“m4a1_wangdachui_grip”], //和上面的枪膛类似,原文件这里有很多握把的id,为节省地方我都删掉只留一个专属握把的id,仅作示例说明
“Shift”: 0
}
]
},
“_proto”: “55d30c4c4bdc2db4468b457e”, //不用改
“_required”: true //不用改
}, {
“_id”: “55d3555c4bdc2d962f8b4568”, //这个部件是弹匣
“_mergeSlotWithChildren”: false,
“_name”: “mod_magazine”,
“_parent”: “m4a1_wangdachui”, //同样的,它的上级为我们自己定义的武器id
“_props”: {
“filters”: [{
“AnimationIndex”: -1,
“Filter”: [“m4a1_wangdachui_magazine”] //同样,我都删掉了其他弹匣仅留一个。如果要做专属弹匣,那么括号中一定要写自定义的id,否则就留着原来数据
}
]
},
“_proto”: “55d30c394bdc2dae468b4577”,
“_required”: false
}, {
“_id”: “55d5a2ec4bdc2d972f8b4575”,
“_mergeSlotWithChildren”: false,
“_name”: “mod_reciever”, //这里是上机匣
“_parent”: “m4a1_wangdachui”, //上级为我们自己定义的武器id
“_props”: {
“filters”: [{
“Filter”:[“5c0e2f26d174af02a9625114”], //为了节省地方我就留一个,文后的样品中我保留了所有兼容配件。如果想自己定制上机匣,可以按本文方法,自己定制上机匣,和定制枪管
“Shift”: 0
}
]
},
“_proto”: “55d30c4c4bdc2db4468b457e”,
“_required”: true
}, {
…… //类似地,下面依次是mod_stock(缓冲管及枪托)、mod_charge(拉机柄),请对照上面的方法修改相应位置
……
}
],
到这里配件部分就结束了,下面还有几个参数都加进去吧
“Velocity”: 0, //枪口初速加成
“Weight”: 0.38, //重量
“Width”: 1, //仓库占宽,现在还不是整枪,所以只有1格
“bEffDist”: 500, //有效射程,可自己改,但不要离谱
“bFirerate”: 800, //射速,默认每分钟800发
“bHearDist”: 80, //枪声距离
“weapFireType”: [“burst”, “fullauto”] //不差钱,只要三连发和全自动?好的,改。
} //注意,到这里我们的”_props”以及”items”部分就结束了,[ ] 和 } 后面一定不要加逗号了
四、下面信息补全即可。
“handbook”:{
“Id”: “m4a1_wangdachui”, //写上我们定义的武器id
“ParentId”: “5b5f78fc86f77409407a7f90”, //突击步枪的市场分类目录代码,文后我会提供所有分类目录的详细id
“Price”: 18397 //价格保持同上即可
},
结束后,保存文件。依照上面的内容,再制作一个专用弹匣即可。
把做好的文件放进超级模块的目录下,启动游戏进去看看怎么样
到神秘商人这里点击武器分类标志,枪体已经陈列展示了
再看看弹匣
整枪呢?别急,我们先购买这两件,然后选择枪体的编辑预设。通过其他的兼容配件,属于我们自己的M4A1就组装好了。
五、以上就是自定义m4a1的过程了,完成后的代码,请见我提供的样品具体内容。样品文件为一个m4a1本体和一个暴发户专属10倍弹匣,以及市场的分类目录代码文件。在m4a1本体的文件中,我删掉了手枪式握把部分的所有兼容配件,仅保留了一个专属握把的id,所以上图的组装结果我们没有合适的握把可以使用。那么,对照样品和本文内容,请独立完成以下作业:
1、制作id为“m4a1_wangdachui_grip”的专属手枪式握把。
2、连同样品文件和你自制的手枪式握把,使用其他兼容配件在塔科夫组装一支完整的m4a1。
3、思考题:你如何自己制作专属上机匣、专属枪管?专属子弹呢?
六、附件检测病毒结果
隐藏内容需要付费才可以看见
呃,手上琐事太多,一被打断再坐回来就容易出错,刚发了再一看,弹匣的图传错了,把枪体的传了两遍。哎,算了,就这样吧,不影响最终效果。
66666666666
学起来
支持一下
敢蟹敢蟹,有用的很
通过这种方法新建的武器专精是否和模板武器一样?
超级模块的插件从游戏数据中得到返回值,而游戏的globals的物品id从items中读取。
所以超级模块提供了一个简便的自定义物品功能,否则我们如果要自定义物品,需要在原游戏的以下几个文件中新添内容:
items、ch、handbook、prices
这样一来我们就失去了超级模块提供的便利性了。