C/C++教程

Minecraft 1.16.5模组开发(三十) 自定义成就系统(advancements)

本文主要是介绍Minecraft 1.16.5模组开发(三十) 自定义成就系统(advancements),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

我们本次将尝试在模组中加入属于自己的成就系统

1.打开Minecraft成就生成制作网站进行成就的制作

我的世界成就系统制作网站
cr1.png

在data包下新建advancement文件夹 -> 在文件夹中新建一个我们的成就系统的文件夹(以readvancement为例) -> 在readvancement中新建一个root.json 文件(我们成就系统的根系统成就)

将网站自动生成的脚本粘贴到我们的root.json中。

父成就:

{
    "display": {
        "icon": {
            "item": "re8joymod:bottle1" //物品命名 你的模组名:物品名
        },
        "title":"Rose Torso.",
        "description": "Get the torso flask.",
        "background": "re8joymod:textures/items/dhands_block.png",  //背景图选择你的图片路径即可
        "show_toast": true,
        "announce_to_chat": true
    },
    "criteria": {
        "bottle2": {
            "trigger": "minecraft:inventory_changed",
            "conditions": {
                "items": [
                    {
                        "item": "re8joymod:bottle1"
                    }
                ]
            }
        }
    }
}

子成就

子成就需要有一个父成就节点(parent字段),其余与父成就写法类似

子成就代码示例(以armsflask.json为例):

{
    "display": {
        "icon": {
            "item": "re8joymod:bottle3"
        },
        "title": "Why is the arms?",
        "description": "Get the arms flask."

    },
    "parent": "re8joymod:readventure/root",  //增加了父成就节点(有父节点的原因是必须先完成父成就,才能去完成子成就)
    "criteria": {
        "bottle2": {
            "trigger": "minecraft:inventory_changed",
            "conditions": {
                "items": [
                    {
                        "item": "re8joymod:bottle3"
                    }
                ]
            }
        }
    }
}
你可以根据需要编写许多成就,与达成成就的不同方法

cr3.png

2.运行游戏进行测试

以我们的物品栏成就为例,当我们拿出了物品,即物品栏中(或手中)出现了为我们的物品时,就判定为成就达成,此时会显示成就达成的情况。

cr4.png

你也可以在主菜单的Advancements对达成的成就进行查看:

cr5.png

OK,下次见~

这篇关于Minecraft 1.16.5模组开发(三十) 自定义成就系统(advancements)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!