在本指南中,你将用红宝石制作两样东西:一把比铁剑更强的红宝石剑,以及一把能快速挖掘石头和矿石的红宝石镐。在这个过程中,你会学到每种武器和工具都会用到的组件:伤害、耐久度、附魔、修复和挖掘。
本指南建立在你的第一个自定义物品的基础上。图标、纹理和名称的步骤完全一样,所以我们只关注新内容。
快捷方式:GodCraft
GodCraft 有现成的剑和工具对象。你只需选择数值,它会写好组件和标签。
- 打开工坊,向你的附加包添加一把剑或一个工具。
- 在像素编辑器中画出它(斜着放,握柄在左下角,就像原版工具那样)。
- 设置伤害、耐久度、修复材料和附魔。
- 点击导出,然后拿离你最近的僵尸试试。
下面是手动制作的样子。
手动制作:剑
我们使用命名空间 myname。请在所有地方把它换成你自己的。
{
"format_version": "1.26.30",
"minecraft:item": {
"description": {
"identifier": "myname:ruby_sword",
"menu_category": {
"category": "equipment",
"group": "minecraft:itemGroup.name.sword"
}
},
"components": {
"minecraft:icon": {
"textures": {
"default": "myname_ruby_sword"
}
},
"minecraft:display_name": {
"value": "item.myname:ruby_sword.name"
},
"minecraft:max_stack_size": 1,
"minecraft:hand_equipped": true,
"minecraft:damage": 7,
"minecraft:durability": {
"max_durability": 900
},
"minecraft:enchantable": {
"slot": "sword",
"value": 14
},
"minecraft:repairable": {
"repair_items": [
{
"items": ["myname:ruby"],
"repair_amount": "query.max_durability * 0.25"
},
{
"items": ["myname:ruby_sword"],
"repair_amount": "context.other->query.remaining_durability"
}
]
},
"minecraft:tags": {
"tags": ["minecraft:is_sword"]
}
}
}
}各部分的作用
menu_category把剑放进装备标签页,和原版剑放在同一个文件夹里。minecraft:max_stack_size设为 1,因为武器不能堆叠。minecraft:hand_equipped让玩家像拿工具一样朝前握着它,而不是像拿普通扁平物品那样。minecraft:damage是用它攻击时物品附加的伤害。数值越高越强。类似钻石剑的武器可以从 7 左右开始,然后拿几个生物试试再调整。minecraft:durability是物品在损坏前能承受多少磨损。铁质工具是 250,钻石是 1561。如果你希望它只是有时才损失耐久度,还可以添加带有min和max百分比的damage_chance。minecraft:enchantable决定适用哪些附魔。slot是物品的种类(这里是sword),value表示它在附魔台上能得到多好的附魔:金质非常高,石质很低,14 是不错的中间值。minecraft:repairable列出在铁砧上可以修复它的东西。每个条目都有items和repair_amount,后者是一个小小的 Molang 公式。第一个条目每颗红宝石恢复四分之一的耐久度。第二个条目让玩家可以合并两把受损的剑。- 带有
minecraft:is_sword的minecraft:tags告诉游戏和其他附加包:这是一把剑。
纹理和名称
把一张 16x16 的 PNG 保存到 RP/textures/items/ruby_sword.png,然后把它添加到你的 item_texture.json(在 texture_data 中),再把名称添加到语言文件中:
"myname_ruby_sword": {
"textures": "textures/items/ruby_sword"
}item.myname:ruby_sword.name=Ruby Sword
item.myname:ruby_pickaxe.name=Ruby Pickaxe手动制作:镐
工具就是多了一项任务的武器:快速破坏方块。这项任务归 minecraft:digger 负责。
{
"format_version": "1.26.30",
"minecraft:item": {
"description": {
"identifier": "myname:ruby_pickaxe",
"menu_category": {
"category": "equipment",
"group": "minecraft:itemGroup.name.pickaxe"
}
},
"components": {
"minecraft:icon": {
"textures": {
"default": "myname_ruby_pickaxe"
}
},
"minecraft:display_name": {
"value": "item.myname:ruby_pickaxe.name"
},
"minecraft:max_stack_size": 1,
"minecraft:hand_equipped": true,
"minecraft:damage": 5,
"minecraft:durability": {
"max_durability": 900
},
"minecraft:enchantable": {
"slot": "pickaxe",
"value": 14
},
"minecraft:repairable": {
"repair_items": [
{
"items": ["myname:ruby"],
"repair_amount": "query.max_durability * 0.25"
}
]
},
"minecraft:digger": {
"use_efficiency": true,
"destroy_speeds": [
{
"block": {
"tags": "query.any_tag('stone', 'metal')"
},
"speed": 7
},
{
"block": "minecraft:obsidian",
"speed": 7
}
]
},
"minecraft:tags": {
"tags": ["minecraft:is_pickaxe", "minecraft:is_tool", "minecraft:diamond_tier"]
}
}
}
}挖掘的原理
destroy_speeds是一个列表。每个条目说明对哪些方块、以多快的速度挖掘。block可以是一个方块 ID,比如"minecraft:obsidian",也可以是一个带有tags和 Molang 查询的对象。query.any_tag('stone', 'metal')会匹配所有至少带有其中一个标签的方块,这样你就不必列出几百种方块。speed是破坏这些方块的速度。参考一下:木质工具是 2,石质 4,铁质 6,钻石 8,下界合金 9,金质 12。use_efficiency设为true后,效率附魔可以让它挖得更快。
工具的标签
标签告诉 Minecraft 这是哪一类工具。minecraft:is_pickaxe 和 minecraft:is_tool 表示“这是一把镐”。minecraft:iron_tier 或 minecraft:diamond_tier 这样的等级标签表示它有多强,和原版工具使用的标签一样。其他种类的工具使用 minecraft:is_axe、minecraft:is_shovel 或 minecraft:is_hoe。
改做斧头或铲子
复制这把镐,然后改三个地方:minecraft:enchantable 中的 slot(axe 或 shovel)、destroy_speeds 中的方块标签(比如斧头用 'wood',铲子用 'dirt'、'sand' 和 'gravel'),以及 is_ 标签。
测试一下
/give @s myname:ruby_sword
/give @s myname:ruby_pickaxe- 打一个生物,挖点石头,再试着在附魔台上给两样都附魔。
- 让它们受一点损,然后把其中一个和一颗红宝石放到铁砧上,测试修复功能。
可以使用的附魔栏位
slot | 附魔效果类似于 |
|---|---|
sword | 剑 |
axe、pickaxe、shovel、hoe | 对应的工具 |
bow、crossbow | 远程武器 |
g_tool | 任意工具 |
g_digging | 任意挖掘工具 |
all | 任何东西 |
出问题时
| 你看到的现象 | 最可能的原因 |
|---|---|
| 物品像一张纸片一样平着拿在手里 | 缺少 minecraft:hand_equipped |
| 挖得和空手一样慢 | destroy_speeds 中的方块标签不匹配,或者 Molang 查询有拼写错误 |
| 无法附魔 | 缺少 minecraft:enchantable,或者 slot 拼错了 |
| 铁砧无法修复它 | repair_items 中的物品 ID 写错了 |