本篇教程由作者设定未经允许禁止转载。

先看效果(版本1.20.1,环境是我的整合包)关于如何添加套装奖励以及如何为套装奖励添加汉化-第1张图片


就是这样,汉化为我自己翻译,如有不准...就当是我的私货了


1:汉化部分

默认在第一次启动以后config文件夹里会生成一个armorsets的文件夹,打开会默认有5个文件,对应原版的那些套装(锁链和铁甲是一起的)


我们不要在这里面添加中文,找到该模组文件,用压缩文件打开(如7-zip)assets/spacecatasb/lang/en_us,把这个复制出来一份


这时候就需要用到我们的kubejs了(不加也行,但是就要资源包格式了,我这里不做介绍和解释,有需要的自己去看Minecraft wiki)


默认启动一次后会在config同级别的文件夹生成kubejs的文件夹,打开他 :kubejs/assets/在这个地方按照刚刚的路径再创建一遍:

kubejs/assets/spacecatasb/lang/en_us(把en_us换成你需要的语言,我这里是简体中文:zh_cn)


打开en_us会发现一堆英文


不用担心,例如

"tooltip.translation.spacecatasb.settitleprefix": "XXXX",

我们只需要先打开mc,在其上找到这段英文对应的地方,加上你自己的汉化!

但是!!!先别走!你这时候进入游戏会发现都是白色菱形(不能识别中文)

所以我们需要把中文转变成Unicode编码,让他能识别(有转换的在线网站,我这里就不提供了,可以自己去找)

例:"tooltip.translation.spacecatasb.settitleprefix": "\u5957\u88c5\u5956\u52b1\uff1a"

全部翻译好了就不用担心了!


2:添加套装

随便你复制一份armorsets文件夹内的文件先,复制出来记得改个名


打开(以金套装为例子)

    在"itemKey": "XXXX",处把其内的XXXX改为你需要的套装id(F3+h看或者指令/kjs hand )(如果你有crt,可以用/ct hand)

一共四个,分别对应头盔 胸甲 护腿 靴子,改完以后在其下的

      "type": "effect",

      "name": "minecraft:haste",

      "value": 1.0,

处更改效果,"type"对应的是药水效果

                     "neme"对应的是药水效果的id

                     "value":对应的是强度(0代表的是I级哦,例如急迫II是 value:1)

(想更改其他效果可以看看其他的例子,举一反三就行)

记得更改完在zh_cn里添加你添加的套装效果!

格式:

"tooltip.translation.spacecatasb.settitle.<你的"armorSetName": 内所设定的名称>": "XXX"



9/13更新: 如何使用Armor Set Bonuses 创建属于你的饰品

吐槽:我最近不是在摸鱼更新我的整合包,然后写到饰品的时候看到一大堆东西倍感头痛,看了眼Curios API wiki的数据包,只能用来自定义饰品和槽位数量,于是突发奇想,这个模组是兼容Curios API的,那也就是说我们可以通过此模组来定义饰品...


正文:

先搬出我的案例:环境还是我的整合包

{
  "armorSetName": "\u5de5\u4e1a\u94c1\u5757",
  "performanceMode": true,
  "additionalSetPieces": [
    {
      "itemKey": "create:industrial_iron_block",
      "mustBeEmpty": false
    }
  ],
  "fullSetBonuses": [
    {
      "type": "effect",
      "name": "minecraft:slowness",
      "value": 2.0,
      "interactionType": "self",
      "interactionDuration": 150,
      "hideBonusDescription": true,
      "onlyImmuneToNewEffects": false
    }
  ],
  "hideGeneratedTooltip": false,
  "customTooltips": [
    "\u96be\u4ee5\u627f\u53d7\u7684\u91cd\u91cf\uff01"
  ]
}


wiki是有关于饰品的兼容的,效果是你穿上它才能触发(additionalSetPieces)部分

itemKey替换为任意物品id即可,添加饰品的方法:(数据包同理,我用kubejs方便一点)

\<你的包名>\kubejs\data\curios\tags\items

内创建你需要添加的槽位的 <id>.json

例如戒指:ring.json,饰品槽位id请前往Curios API的其他人的教程查看

余下的教程在本教程评论区有,有需要可前往查看

注意事项,杂谈

看到很多人还是不懂,再次整合一下评论区发的教程:

 
  "fullSetBonuses": [
    {
      "type": "attribute",
      "name": "minecraft:generic.max_health",
      "value": 4.0,
      "modifierUUID": "d5a7dc88-9405-4398-b1e5-250b4c6dd218",
      "description": "\u002b\u0034\u6700\u5927\u751f\u547d\u503c",
      "attributeOperation": 0,
      "interactionType": "self",
      "interactionDuration": 300,
      "hideBonusDescription": false,
      "onlyImmuneToNewEffects": false
    }
  ],

另一种增益方式:

name里可换任意属性值


partialSetBonuses,部分套装奖励启用效果,格式与fullSetBonuses相同

官方JSON文本规范:

 字段名称
数据类型是否必填 描述 默认值
type
 字符串必填“要应用的奖励类型——‘effect’或‘attribute’”
name 字符串必填效果/值的“key”请参阅此列表(原版)
value   数字必填Effect(效果):效果的等级
Attribute(属性):要增加的数量。如果是属性,这个数量可以是负数

modifierUUID字符串条件如果“type”等于“attribute”,则必须定义此字段,且此字段必须只能有一个
description字符串可选为效果设置自定义的工具提示描述。如果想使用自己的语言文件,这可以是一个翻译键。如果定义为空字符串,则不会将描述添加到工具提示中

attributeOperation数字可选

改变属性修改的方式。

0 = “增加(ADDITION)”
1 = “基于基础值相乘(MULTIPLY_BASE)”
2 = “基于总值相乘(MULTIPLY_TOTAL)”


0
interactionType 字符串可选"self" - 自己
"attack" - 攻击目标
"interact" - 交互对象
"immunity" - 免疫对象
"aoe" (尚未实现) 
Self
interactionDuration数字可选设置自定义持续时间(以刻为单位),在非self交互类型时使用300
hideBonusDescription布尔可选从提示工具中隐藏此奖励条目。适用于隐藏效果false
onlyImmuneToNewEffects布尔可选如果设置为真(true),该盔甲将仅阻止新的效果应用于角色(意味着通过更换盔甲无法移除已存在的效果)false
conditions条件对象数组可选触发效果必须满足的游戏内条件


条件对象数组的JSON规范:

字段名称
 数据类型是否必填 描述 默认值
 type字符串必填"处于熔岩中"
"处于雨中"
"处于水中"
"位于方块上"
"正在使用主手"
"正在使用副手"
"处于生物群系中" - 在1.16.5版本中不可用
"时间段"
"月相"

"处于维度中"

下面是纯英文的:

"inLava"
"inRain"
"inWater"
"onBlock"
"isUsingMainHand"
"isUsingOffHand"
"inBiome" - This is not available in 1.16.5
"timeRange"
"moonPhase"
"inDimension"


inverted布尔可选如果设置为 true,则当不满足条件时,将应用效果
false
tooltipDescription字符串可选使用您自己的字符串/翻译键来覆盖条件文本
extra字符串可选

如果“type”=“onBlock”,则您必须在此字段中指定方块键(例如:minecraft:dirt)

如果“type”=“inBiome”,则您必须在此字段中指定生物群系键(例如:minecraft:plains)

如果“type”=“inDimension”,则您必须在此字段中指定维度键(例如:minecraft:overworld)

如果“type”=“timeRange”,则您必须在此字段中以刻(ticks)为单位指定时间范围,使用逗号分隔它们。确保没有空格。

(例如: "0,10000")

如果“type”=“moonPhase”,则您必须指定以下之一:

- full
- waninggibbous
- lastquarter
- waningcresent
- new
- waxingcresent
- firstquarter
- waxinggibbous