简介
附魔
一般的,如果您想要比较轻松的自定义附魔效果,这个大概率需要通过Mod实现,而通过修改数据包您可以基本实现两个功能:
- 直接调用原版提供的触发器或者修改器,实现简单的附魔功能
- 直接调用function函数,实现更复杂的功能
魔咒定义存放在:data/<命名空间>/enchantment/
魔咒相关标签存放在:data/minecraft/tags/enchantment/
下面是本小节完成后的文件结构
实现一个简单魔咒
和前几章节一样,将下方JSON复制到魔咒生成网站内,就可填充对应的内容了
创建文件:data/<命名空间>/enchantment/ironsmith_bless.json
此时文件名 ironsmith_bless
就是该自定义魔咒的ID了,我们日后在客户端内使用enchant指令附魔的时候也是调用此ID,比如:enchant @p td1:ironsmith_bless 2
首先看看魔咒的主要参数有哪些:
description
魔咒在游戏内显示的名称supported_items
允许被附魔的物品,不在此列表的物品将无法被附上此魔咒(强行使用enchant也不行)primary_items
首选被附魔的物品,该列表可置空weight
魔咒权重,权重越高则被附魔到的可能性越大(举个例子,原版的效率附魔是10,而精准采集仅仅只有1)max_level
魔咒支持的最大附魔等级min_cost
附上此魔咒的最低等级要求max_cost
附上此魔咒的最高等级要求anvil_cost
使用铁砧附魔时的开销slots
该魔咒绑定的物品在哪一个格子内会生效effects
魔咒的效果
最后重点关注一下effects部分:
这里直接使用了damage,即直接向被攻击的对象施加伤害,这里设置为10点伤害(即5颗爱心的伤害)
{
"description": "铁匠的祝福",
"supported_items": [
"minecraft:iron_ingot",
"minecraft:book"
],
"primary_items": [
"minecraft:book"
],
"weight": 100,
"max_level": 5,
"min_cost": {
"base": 1,
"per_level_above_first": 1
},
"max_cost": {
"base": 20,
"per_level_above_first": 5
},
"anvil_cost": 2,
"slots": [
"hand"
],
"effects": {
"minecraft:damage": [
{
"effect": {
"type": "minecraft:add",
"value": 10
}
}
]
}
}
附魔参考借鉴
若您无法确定min_cost或者max_cost参数的定义,或者对其余某些参数的设置有疑问的话,除了参考WIKI,您还可以直接去原版的数据包内查看魔咒的定义,譬如下方给出了原版的效率(efficiency)、精准采集(silk_touch)两大附魔的JSON文件
{
"anvil_cost": 1,
"description": {
"translate": "enchantment.minecraft.efficiency"
},
"effects": {
"minecraft:attributes": [
{
"amount": {
"type": "minecraft:levels_squared",
"added": 1.0
},
"attribute": "minecraft:player.mining_efficiency",
"id": "minecraft:enchantment.efficiency",
"operation": "add_value"
}
]
},
"max_cost": {
"base": 51,
"per_level_above_first": 10
},
"max_level": 5,
"min_cost": {
"base": 1,
"per_level_above_first": 10
},
"slots": [
"mainhand"
],
"supported_items": "#minecraft:enchantable/mining",
"weight": 10
}
{
"anvil_cost": 8,
"description": {
"translate": "enchantment.minecraft.silk_touch"
},
"effects": {
"minecraft:block_experience": [
{
"effect": {
"type": "minecraft:set",
"value": 0.0
}
}
]
},
"exclusive_set": "#minecraft:exclusive_set/mining",
"max_cost": {
"base": 65,
"per_level_above_first": 0
},
"max_level": 1,
"min_cost": {
"base": 15,
"per_level_above_first": 0
},
"slots": [
"mainhand"
],
"supported_items": "#minecraft:enchantable/mining_loot",
"weight": 1
}
魔咒可附魔
如果您想让魔咒可以在附魔台上被附魔,则需要创建对应的tags文件
新建文件(此文件名为固定格式):data/minecraft/tags/enchantment/in_enchanting_table.json
在values内写入你想要注册到附魔台上的自定义附魔
{
"values": [
"td1:ironsmith_bless"
]
}
此时可以在附魔台内进行附魔,然后通过铁砧给对应的物品附魔