Minecraft-Datapack数据包开发4-基础附魔

简介

已经上传到仓库
gitee
github


附魔

自定义附魔:https://misode.github.io/enchantment/

一般的,如果您想要比较轻松的自定义附魔效果,这个大概率需要通过Mod实现,而通过修改数据包您可以基本实现两个功能:

  1. 直接调用原版提供的触发器或者修改器,实现简单的附魔功能
  2. 直接调用function函数,实现更复杂的功能

魔咒定义存放在:data/<命名空间>/enchantment/

魔咒相关标签存放在:data/minecraft/tags/enchantment/

下面是本小节完成后的文件结构

在这里插入图片描述


实现一个简单魔咒

和前几章节一样,将下方JSON复制到魔咒生成网站内,就可填充对应的内容了

创建文件:data/<命名空间>/enchantment/ironsmith_bless.json

此时文件名 ironsmith_bless 就是该自定义魔咒的ID了,我们日后在客户端内使用enchant指令附魔的时候也是调用此ID,比如:enchant @p td1:ironsmith_bless 2

首先看看魔咒的主要参数有哪些:

  1. description 魔咒在游戏内显示的名称
  2. supported_items 允许被附魔的物品,不在此列表的物品将无法被附上此魔咒(强行使用enchant也不行)
  3. primary_items 首选被附魔的物品,该列表可置空
  4. weight 魔咒权重,权重越高则被附魔到的可能性越大(举个例子,原版的效率附魔是10,而精准采集仅仅只有1)
  5. max_level 魔咒支持的最大附魔等级
  6. min_cost 附上此魔咒的最低等级要求
  7. max_cost 附上此魔咒的最高等级要求
  8. anvil_cost 使用铁砧附魔时的开销
  9. slots 该魔咒绑定的物品在哪一个格子内会生效
  10. 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"
  ]
}

此时可以在附魔台内进行附魔,然后通过铁砧给对应的物品附魔

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZhillerDev

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值