Progrès répétables et communautaires

Maintenant que nous savons créer des progrès, ajoutons une touche d’originalité avec des progrès répétables ou à compléter à plusieurs.

Progrès répétable

Commençons par mettre en place un progrès qui donnera 10 crédits aux joueurs à chaque fois que le dragon est tué. Pour cela, je créé le fichier mangarmor/advancements/dragon.json :

{
    "display":{
        "description":[
            "Tuez un dragon\n",
            {
                "text": "10 crédits\n",
                "color": "gold"
            },
            {
                "text": "Répétable",
                "color": "gray"
            }
        ],
        "title":"La fin ?!",
        "icon":{
            "item":"minecraft:dragon_head"
        },
        "frame":"goal",
        "hidden":false,
        "announce_to_chat":true,
        "show_toast":true
    },
    "criteria":{
        "pke-ender_dragon":{
            "trigger":"minecraft:player_killed_entity",
            "conditions":{
                "entity":{
                    "type":"minecraft:ender_dragon"
                }
            }
        }
    },
    "rewards":{"function":"mangarmor:advancements/dragon"},
    "parent":"minecraft:end/root"
}

La récompense est une fonction afin de permettre de mieux con troller les gains. Je créé le fichier mangarmor/functions/advancements/dragon.mcfunction. Cette fonction donne 10 crédits au joueur ayant tué le dragon et révoque le progrès pour permettre de le refaire.

function mangarmor:bank/add/10
advancement revoke @s only mangarmor:dragon

Progrès communautaire

Nous allons désormais mettre en place un progrès communautaire qui donnera 10 crédits à tous les joueurs une fois le dragon tué 10 fois.

Commençons par ajouter une fonction pour initialiser un objectif advancements dans le tableau des scores.

scoreboard objectives add advancements dummy "Progrès communautaires"

N’oublions pas d’ajouter cette fonction au tag load en l’ajoutant au fichier minecraft/tags/functions/load.json :

{
	"values": [
		"mangarmor:advancements/init"
	]
}

Dans le même dossier, ajoutons au tag tick la fonction challenges qui sera créée par la suite :

{
  "replace": false,
  "values": [
    "mangarmor:advancements/challenges"
  ]
}

Il est désormais temps de créer cette fonction. Elle vérifie régulièrement si le dragon a été tué au moins 10 fois et donne le progrès aux joueurs le cas échant. Le fichier mangarmor/functions/advancements/challenges.mcfunction contient :

execute if score dragon advancements matches 10.. run advancement grant @a only mangarmor:dragon-10

À noter que les progrès ne sont donnés qu’aux joueurs connectés. Finissons enfin par créer le progrès communautaire dans le fichier mangarmor/advancements/dragon-10.json.

{
    "display":{
        "description":[
            "Le dragon a été tué 10 fois\n",
            {
                "text": "10 crédits\n",
                "color": "gold"
            },
            {
                "text": "Communautaire",
                "color": "gray"
            }
        ],
        "title":"Tueur de dragon",
        "icon":{
            "item":"minecraft:dragon_head"
        },
        "frame":"challenge",
        "hidden":true,
        "show_toast":true
    },
    "criteria":{
        "impossible": {
            "trigger": "minecraft:impossible"
        }
    },
    "requirements":[
        ["impossible"]
    ],
    "rewards":{
        "function":"mangarmor:bank/add/10"
    },
    "parent":"mangarmor:dragon"
}

Le critère de ce progrès est impossible car il ne peut être obtenu que par une commande.

Téléchargement

Sommaire

Partager

Partager sur facebook
Facebook
Partager sur twitter
Twitter

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.