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

本教程我采用了kubejs结合魔改,单纯数据包可以参考。

正题:我用版本模组中zombie_gate_small的例子来做参考

{
    "size": "small",
    "color": "#71955B",
    "waves": [
        {
            "entities": [{
                    "entity": "minecraft:zombie"
                },
                {
                    "entity": "minecraft:zombie"
                }
            ],
            "modifiers": [{
                    "attribute": "generic.max_health",
                    "operation": "MULTIPLY_TOTAL",
                    "value": 0.33
                },
                {
                    "attribute": "generic.armor",
                    "operation": "ADDITION",
                    "value": 2.5
                },
                {
                    "attribute": "generic.attack_damage",
                    "operation": "MULTIPLY_TOTAL",
                    "value": 0.33
                },
                {
                    "attribute": "generic.knockback_resistance",
                    "operation": "ADDITION",
                    "value": 0.05
                },
                {
                    "attribute": "generic.movement_speed",
                    "operation": "MULTIPLY_TOTAL",
                    "value": 0.05
                }
            ],
            "rewards": [{
                "type": "entity_loot",
                "entity": "minecraft:zombie",
                "rolls": 6
            }],
            "max_wave_time": 750,
            "setup_time": 150
        }
    ],
    "completion_xp": 250,    #此处是打完过后获得的经验值
    "spawn_range": 1    # 此处是波数
}

以上是它的部分内容(为了教程重复的就删减了),我主要将的是生成新的传送门以及奖励修改。我会按照一条一条讲解:

  • 第一条size:模组中有大中小三种类型,当然也可以自己弄那得参考https://github.com/aramperes/Mojangson

  • 第二条color:颜色,不知道可以百度更改

  • 第三条waves:怪物设置,entities可以自己按照需求添加条数或者调整怪物.

  •   modifiers属性修饰符,参考模组自带的按需添加,其他的目前没发现

  •   rewards奖励,这个就多了,我会在结尾列出。

  •   max_wave_time最大存在时间值

  •   setup_time建立时间值

最后2条在上面标注了。

接下来是设置奖励品:

  • 在第三条的rewards中我们这样写

"rewards": [{
                "type": "stack",
                "stack": {
                    "id": "minecraft:stone",
                    "Count": 1,
                    "tag": {}
                }
            }],

这里面需要使用ItemStack 来描述stack里面的内容,这样我们就能实现自定义了。

如果一个东西不够那么我们就使用

{
    "type": "stack_list",
    "stacks": [
      ItemStack
    ]
  }

通过多个itemstack实现多个掉落物。

当然也可以在本波结束让它执行命令:

{
    "type": "command",
    "command": "string"  
  }

string为原版指令,不用加/。

目前教程完善就到这里,因为其他的还没有尝试就写了,毕竟能用到的基本就这些了。

对了还有一个重要的就是怎么创建新的传送门,那就是你数据包命名不和模组的一样就可以了。