• 注册
  • 问题教程 问题教程 关注:3137 内容:673

    [超级模组]独立物品制作教程

  • 查看作者
  • 打赏作者
  • 65
  • 问题教程
  • 渐入佳境
    VIP3

    写在前面:自己挖的坑哭着也要填完(不是)

    好吧开个玩笑,类似的想法很早以前就有了,这次也算是一个整理吧,而我也确实希望能帮到更多的人,为社区做出一份贡献,也算是我对这段经历的一个交代——起码我想留下点自己的痕迹。

    没有头图,没有碎碎念,没有格式排版……这次的东西只是一篇单纯的教学。

    希望这对你有所帮助。

    1. 在教程开始之前,请确保你了解有关json格式的基础知识,有能力自己动手或使用网页/其他工具排查格式错误。

    2. 请确保你了解超级模组的独立物品安装过程,能够自行完成安装、卸载。

    3. 请确保你已经了解VSCode的基础使用方法,知晓创建、保存、搜索等操作的使用过程。

    4. 请确保你拥有基础的电脑知识,能够理解根目录、文件夹、复制粘贴覆盖、解压缩文件等基础电脑操作概念并知晓具体操作方式。

    5. 不满足以上四条或者询问有关以上四条的问题,我将不予回答。

    6. 我希望你在寻找想要修改的内容时先自己动手尝试,而不是来问我;诸如“xxx物品的ID是多少”这种问题我不会回答。

    7. 我发这篇教程的目的只是为了让更多的玩家能够满足自己的需求,而不必去修改服务端数据,MOD总归是比直接修改服务端方便的。

    需要准备的工具:VSCode(不要问我去哪里下载)

    教程中用到的索引、参考文件:

    链接:https://pan.baidu.com/s/13gAzCDLQRB6sBGrCIOFZTA?pwd=MHWI 

    提取码:MHWI

    接下来让我们进入正题:

    打开VSCode,新建文件,并把超级模组本身附带的玩家大锤拖入工作区。

    [超级模组]独立物品制作教程

    可以看到以下几个属性:tpl,items, Buffs,handbook, assort。

    对于一个普通的物品来说,一般只需要tpl、items、handbook和assort四个部分。

    tpl:物品的源ID,也就是你想要在这个物品上制作新物品的物品的ID

    items:物品详细数据,这里包含了物品的具体数据,也是物品的关键部分

    Buffs:如果你想要制作注射器/医疗品,这个参数允许你创建一个独立的Buff组并在你的物品中引用

    handbook:物品的跳蚤市场分类、价格参数

    assort:自定义商品数据,可以留空,这部分内容允许你自定义神秘商人出售物品的各种限制,你也可以用这个属性实现完整的武器出售,但是结构较为复杂

    接下来让我们用一个实例演示tpl、items和handbook的实际应用。

    举个栗子,我想制作一个独立的Salewa药包。

    首先我们找到Salewa药包的ID,然后在之前新建的文本中键入如下内容:

    [超级模组]独立物品制作教程

    保存为Salewa.json,建议保存到桌面。

    [超级模组]独立物品制作教程

    随后在物品ID索引中找到SalewaID

    [超级模组]独立物品制作教程

    在你的独立物品中输入如下内容:

    [超级模组]独立物品制作教程

    此处的tpl即为Salewa血包的ID,之后我们将填写数据,在你的独立物品中创建items属性:

    [超级模组]独立物品制作教程

    关于json中逗号、括号的使用等基础知识此处不再过多赘述,接下来在数据索引中找到Salewa的具体数据:

    [超级模组]独立物品制作教程

    复制整个属性块,注意不要选到下一个物品里去,也不要多复制右大括号

    [超级模组]独立物品制作教程

    随后将复制的内容粘贴到独立物品的items属性中:

    [超级模组]独立物品制作教程

    此时我们需要修改一部分内容,首先将_id修改为你想创建的物品ID,每一个物品的ID不可重复,由于其本质是字符串,对格式并无需求,中英文皆可,此处我使用CustomSalewaMedicKit作为ID

    [超级模组]独立物品制作教程

    随后我们看到_props,这里是物品数据的核心所在,对物品的修改大多也在这里进行;将NameShortNameDescription分别修改为你想要的效果,其中Name为物品名,ShortName为物品缩略名,也就是右上角那个小名字,Description为物品介绍;这三个文本支持一部分HTML标签,比如加粗,倾斜,下划线,字体大小设置,左中右格式,十六进制颜色等等……我会在后面补充

    [超级模组]独立物品制作教程

    随后我们需要在Description后面添加一条原版物品所没有的额外属性——CreditsPrice,这个属性是供神秘商人所读取的,也就是物品的售价

    [超级模组]独立物品制作教程

    接下来我们创建handbook属性

    [超级模组]独立物品制作教程

    (由于个人疏忽,items属性忘了加冒号,现已更正,也希望各位在制作物品时细心检查格式)可以看到handbook属性有三个属性值,分别是IdParentIdPrice,分别对应物品ID、跳蚤市场分类ID和物品价格,物品ID即为前面items属性里的_idParentId可在ID索引中进行查询,Price即为前面加入的CreditsPrice的值,完成后如下:

    [超级模组]独立物品制作教程

    ID索引中的查询结果)

    [超级模组]独立物品制作教程

    最后我们创建assort属性,其属性值为空(注意!assort属性使用的是中括号,即数组,请不要弄混):

    [超级模组]独立物品制作教程

    此时我们已经完成了一个基础独立物品的制作,保存文件,并将Salewa.json作为独立物品安装,进入游戏查看。

    可以看到服务端的超级模组提示正常输出(低版本为蓝色),接下来进入游戏

    [超级模组]独立物品制作教程

    物品已经正常添加:

    [超级模组]独立物品制作教程

    至此,我们已经完成了一个物品的复制,如果你使用过修改服务端的方式进行过数据调整,那么接下来的内容你应该已经猜到了

    让我们回到items属性:

    [超级模组]独立物品制作教程

    首先我们讲解一下物品通用属性:长宽、重量、堆叠数目以及背景颜色,英语比较好的同学可能已经知道对应哪些属性了,前面我们讲过_props是物品数据的核心,决定了物品的所有属性

    Weight对应物品重量,Width为物品占地宽度,Height为物品占地高度,BackgroundColor表示背景色,StackMaxSize表示最大堆叠数量

    [超级模组]独立物品制作教程

    我们将重量改为0.2,背景色改为蓝色

    接下来我们向下拉,这里就是Salewa本身的数据了

    [超级模组]独立物品制作教程

    MaxHpResource为耐久度,hpResourceRate为回复量,StimulatorBuffsBuff组调用,effects_healtheffects_damage分别为健康效果和效果,这里的两个属性对应治疗小出血和大出血对血包本身的耐久度消耗,medUseTime为使用时间,不能超过原有时间,可以缩短;我们对数据进行如下改动:

    [超级模组]独立物品制作教程

    保存,覆盖安装,进入游戏查看(注:每次修改请记得清除启动器缓存,这个很重要)

    [超级模组]独立物品制作教程

    可以看到,修改已经正常生效,而对于其他物品,制作流程也是一样的,对于其他物品的属性修改,还请自行探索,这也算是我留下的一个作业吧,或许以后我会把这些东西整理出来,或许不会……谁知道呢。

    基础教程到此结束。

    进阶教程一:精简你的物品文件

    让我们回到items属性,是不是觉得下面这么多没有做出改动的参数有点碍眼?

    [超级模组]独立物品制作教程

    那我们为什么不把它们删掉呢?就像这样……

    [超级模组]独立物品制作教程

    这样看起来是不是就一目了然了?重新安装,进入游戏,经过“压缩”的物品文件依然是正常的,当然,这种精简仅限于_props属性

    至于是选择精简还是选择保留,这个就看个人了,毕竟物品本身的字节也不会很大,这种优进阶教程二:Buff组的运用

    让我们把目光放到一些其他的东西上——还记得我之前提到的么?Buff组引用,原版的Buff组位于Aki_Data/Server/database/globals.json内:

    [超级模组]独立物品制作教程

    这里存储了原版所有提供Buff增益的物品的Buff组,你可以选择一个原版的Buff组进行引用,或者在物品中创建一个新的Buff组,也就是前面的Buffs属性——还记得StimulatorBuffs属性么?希望你没有把它精简掉……

    items后创建Buffs属性

    [超级模组]独立物品制作教程

    创建你想要在物品里调用的BuffID

    [超级模组]独立物品制作教程

    也许有人已经注意到了,这里的格式和原版的Buff组是一样的,所以我们可以从原版Buff组中拆分数据,编写自己的Buff组,我这里写入的是生命回复、健康技能等级和活力技能等级:

    [超级模组]独立物品制作教程

    随后在StimulatorBuffs属性中进行调用:

    [超级模组]独立物品制作教程

    可以看到效果如下:

    [超级模组]独立物品制作教程

    而关于Buff本身的具体使用、编写以及修改,我这里就不再细讲了,都是复制粘贴的东西,原版的Buff组所在位置我也提供了,就把这也当成一个作业吧(笑)自己去大胆的多尝试,有付出终究会有收获的。

    进阶教程三:基于assort属性构建武器

    首先我们还是按照普通物品的方式制作一个独立的枪械,任何枪械都可以,我为了方便选择了手枪P226R,也是塔科夫官方小说里主角最趁手的一把手枪

    而作为一个普通的物品,这把枪自然是只有本体而没有其他配件的,超级模组自然已经考虑到了这一点——接下来我们讲解assort属性的用法

    让我们解析一下assort的构建

    [超级模组]独立物品制作教程

    每一个对象依然是逗号分隔,这种基础知识不再讲述,_id依然是唯一ID,不可重复,_tpl则是配件本体的IDparentId需和你的主物品ID相同,编辑哪个物品的assort,这里就填写哪个物品的ID,slotId为配件位置ID,在武器本身的数据中存在

    如果你有mod开发经历,或者研究过塔科夫本身的枪械/预设/枪械商品的数据结构,你会发现其实格式是一样的,不同的只是parentId,超级模组会在内部指向生成的哈希ID,这里理论上可以任意填写,但我没有测试

    可以看到已经有了配件

    [超级模组]独立物品制作教程

    那么关于超级模组物品的教学,就到此告一段落了,这个教学教的更多只是基础的东西,而就像我签名所写的:我只不过是站在巨人的肩膀上——感谢_物是人非制作了超级模组,让更多的玩家有机会创作自己的物品;感谢AT在我这两个月的MOD探索中提供的帮助;种种经历和个人所学的结合让我最终写下了这篇教程,我希望这篇教学能帮到更多想要创造一个属于自己的世界,但又苦于能力的人,这次的教学也不再有支持链接,而相对的,我希望——

    如果这篇教学帮到你,希望你能在评论里留下自己的作业,如果你能在教程的基础上推陈出新,那就是对我最好的支持了。

    ——千叶玲花,于202297

    炉火纯青
    VIP3
    2021
    沙发
  • 顺毛摸借楼说一下,写的不错~~~~,不过3.2.0以上版本超模暂时还没更新,一直有bug啥的,独立物品建议还是考虑做成单独的mod模式吧,万一大佬不更超模了咋办。 另外问下层主@AT 装备库啥时候更 ?
    拉黑 2年前 电脑端回复
  • AT@顺毛摸 新版本在群里面,因为spt更新一个版本说mod结构就有些许改变,所以目前新版本暂时在交流群更新
    拉黑 2年前 手机端回复
  • 回复
    炉火纯青

    大佬NB,虽然4个基础要求基本不具备,也感谢大佬的分享。同时拉过板凳做好,看楼下

    回复
    渐入佳境
    赠送了礼物[赞]
    回复
    自成一派
    2021
    赠送了礼物[赞]
    回复
    自成一派
    2021
    打赏了8金币
    回复
    炉火纯青
    2021
    打赏了22金币
    回复
    略有小成
    打赏了4金币
    回复
    略有小成
    赠送了礼物[快上车]
    回复
    略有小成
    2021
    你也是苍蓝星吗
  • 千叶玲花啊?你咋知道。。。
    拉黑 2年前 电脑端回复
  • oxbn@千叶玲花 解压密码mhwi,怪物猎人冰原 [s-13]
    拉黑 2年前 手机端回复
  • 回复

    慕名前来上课

    回复

    请登录之后再进行评论

    登录
    超级模块衍生专区
  • 今日 0
  • 内容 2211
  • 关注 3137
  • 聊天
    关注 1993

    【招募】GRIFFIN TKF项目开工 期待你的加入 || 你是否想加入格里芬书写自己与人形的故事

  • 签到
  • 任务
  • 发布
  • 模式切换
  • 偏好设置
  • 帖子间隔 侧栏位置: