--- front: https://nie.res.netease.com/r/pic/20211104/69055361-2e7a-452f-8b1a-f23e1262a03a.jpg hard: 高级 time: 10分钟 --- # 制作一个新武器 在本节中,我们将一起新建一个武器,使其具备攻击特性。 ## 创建配置 我们打开我的世界开发工作台的编辑器,通过创建**配置**的方式快速创建一个新物品。 ![](./images/9.3_weapon_create.png) 我们以“**自定义武器**”为基础,这样便可以创建一个武器。 ![](./images/9.3_weapon_created.png) ## 更改属性 我们一起来考察这个物品的组件。我们可以看到,决定了这个物品为武器的组件为“**武器属性**”组件。该组件为中国版自制的组件`minecraft:weapon`。这个组件决定了一个武器的伤害、附魔能力、挖掘等级、基础挖掘速度等属性。我们可以根绝自己的意愿对该组件进行自定义。比如,我们把武器的伤害改为20。 ![](./images/9.3_weapon_modded.png) 我们这里提供一对稍加修改之后的武器物品对应的定义文件。行为包定义文件如下: ```json { "format_version": "1.10", "minecraft:item": { "description": { "identifier": "tutorial_demo:weapon", "category": "Equipment", "custom_item_type": "weapon" }, "components": { "minecraft:max_damage": 10, "netease:weapon": { "attack_damage": 20, "enchantment": 10, "level": 3, "speed": 5, "type": "sword" } } } } ``` 资源包定义文件如下: ```json { "format_version": "1.10", "minecraft:item": { "description": { "identifier": "tutorial_demo:weapon" }, "components": { "minecraft:icon": "tutorial_demo:weapon" } } } ``` 值得注意的是,这里的“**耐久**”组件对应的是`minecraft:max_damage`,即最大的**损坏值**(**Damage Value**,简称**DV**),而非攻击能够产生的**伤害**(**Damage**)。该武器能够造成的攻击伤害由`netease:weapon/attack_damage`定义。这里的损坏值即我们在其他语境下经常提到的特殊值、数据值或附加值。之所以称为损坏值,是因为该物品每用一次便会一定程度上地损坏一次,损坏值也会逐渐增大。当损坏值达到最大损坏值时,物品便会因为损坏殆尽而破碎。所以最大损坏值也就是物品的**耐久**(**Durability**)。 我们进入游戏测试我们的武器。 ![](./images/9.3_weapon_in-game.png) ![image-20211217180955089](./images/9.3_weapon_kill.png) 可以看到,我们的武器确实如我们修改的那样,多出了一个+20的攻击伤害。这代表我们的武器自定义成功了!