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\u00e9dits\n","color":"gold"},{"text":"R\u00e9p\u00e9table","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 \u00e9t\u00e9 tu\u00e9 10 fois\n",{"text":"10 cr\u00e9dits\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.