Arrivés lors de la beta 1.4 de Minecraft, les succès nous ont quittés lors de la sortie de la version 1.12 du jeu… pour laisser place au(x) progrès ! Mauvaise blague mise à part, laissez-moi vous présenter ce que sont ces fameux progrès et comment vous pouvez (oui, vous !) en ajouter, en retirer ou les modifier.
En fin d’article, vous retrouverez plusieurs exemples que vous pourrez télécharger et tester.
📚 A lire aussi : Comment débloquer les progrès dans Minecraft ?
Les progrès, qu’est-ce que c’est ?
Ils remplacent les anciens succès du jeu. Leur objectif principal est de guider le joueur dans son aventure en donnant quelques indications (minez de l’obsidienne, construisez un portail, suivez un œil de l’end…). C’était déjà ce que faisaient les succès auparavant mais ils sont désormais beaucoup plus nombreux et donnent plus d’indications.
Les progrès, c’est aussi ce qui sert à faire apparaître les recettes dans le livre apparu avec la version 1.12. À chaque fois que vous collectez les bons ingrédients, un progrès se déclenche pour vous donner la recette associée.
La plupart des progrès sont visibles en appuyant sur ‘L‘ en jeu (ou en faisant échap -> progrès). Les progrès permettant de débloquer les recettes sont, quant à eux, masqués (il y en aurait beaucoup trop et l’arborescence serait compliquée à faire).
Ajouter un progrès ?
Le principal avantage de ce nouveau système, c’est qu’il est entièrement modifiable par les mods/serveurs/maps. On va voir dans un premier temps comment ajouter un nouvel onglet à la fenêtre des progrès.
- Première étape, créez un dossier et appelez-le comme vous voulez (évitez de mettre des espaces dans le nom).
- Deuxième étape, créez un fichier texte dans ce dossier et nommez-le comme bon vous semble.
- Troisième étape, changez l’extension du fichier (.txt) par .json
- Quatrième étape, remplir ce fichier avec votre éditeur de texte favori.
Pour remplir le fichier, commencez par ouvrir une accolade { au début du fichier, sautez quelques lignes et fermez l’accolade }. Tout ce que vous allez écrire doit aller entre ces deux accolades.
Voici ensuite les différents éléments que vous pouvez/devez mettre dans le fichier.
Définir l’affichage des progrès
Si vous souhaitez que le joueur puisse voir le progrès dans le menu correspondant, vous devez définir l’affichage (la texture au fond, l’icône…). On va donc ajouter une clé « display »:{}
Dans cette clé, on peut ajouter plusieurs éléments (chaque élément doit être séparé par une virgule) :
- « background »: » » – permet de spécifier la texture à utiliser dans le fond de la fenêtre, vous ne devez le mettre que pour le premier progrès (exemple: « background »: « minecraft:textures/blocks/planks_oak.png » pour la texture des planches de chêne)
- « hidden »:[true/false] – permet de masquer le progrès tant qu’il n’est pas obtenu
- « show_toast »:[true/false] – va indiquer si on veut que le progrès s’affiche à l’écran lorsqu’il est obtenu (défaut : true)
- « announce_to_chat »:[true/false] – va indiquer si on veut une annonce dans le chat lorsque le succès est obtenu (défaut : true)
- « icon »:{} – dans cette clé, on va indiquer quel est l’objet à afficher (exemple: « icon »:{« item »: »minecraft:wool », »data »:4} pour un bloc de laine jaune)
- « title »: » » – va permettre de choisir le titre du progrès
- « description »: » » – va permettre de mettre une description quand on passe la souris sur le progrès
- « frame »:[goal/challenge/task] – va permettre de changer la forme du cadre (ovale, avec picots ou, valeur par défaut, carré)
Voici les différents cadres qui vont apparaître en fonction de ce que vous mettez dans « frame »:
task (tâche)
goal (objectif)
challenge (défi)
Notez que lorsqu’un challenge est complété, le son suivant est joué :
Ce son fait écho à l’expérience qui est obtenu lorsque vous remplissez un challenge. Sinon, lorsque vous remplissez une tâche ou un objectif, vous aurez simplement un petit bruit de glissement lorsque la notification apparaît et disparaît.
Votre fichier devrait ressembler à quelque chose comme ceci maintenant :
« show_toast »:true, « announce_to_chat »:false,
« icon »:{« item »: »minecraft:fire_charge »},
« title »: »Mon premier progrès »,
« description »: »Et j’en suis fier »,
« frame »: »goal »}}
Maintenant, il faut définir une condition pour débloquer le progrès. On va donc définir les critères.
Critères pour débloquer un progrès
La clé que l’on va utiliser pour ceci s’appelle « criteria »:{} et va fonctionner de la manière suivante: « criteria »:{« critère_1″:{}, »critère_2 »:{}}. Vous pouvez donner le nom que vous voulez à « critère_1 » et « critère_2 » (et même ne mettre qu’une seule condition ou 30 en répétant le motif).
Chaque condition se construit de la manière suivante: « critère_1« :{« trigger »: »nom du déclencheur« }
Le déclencheur, c’est ce qui va valider le critère et potentiellement valider le progrès. Il est possible d’utiliser les déclencheurs suivants :
[table id=74 /]Les déclencheurs peuvent avoir des conditions. Je vous invite à aller sur cette page si vous souhaitez voir toutes les conditions et des exemples pour chaque déclencheur. Si vous avez besoin d’aide pour lire les arbres, je vous conseille cet article. Les conditions s’écrivent de la manière suivante : « critère »:{« trigger »: »déclencheur »,« conditions »:{« … »: »… »}}
Voici quelques exemples pour voir comment fonctionnent ces conditions.
Obtenir un objet dans l’inventaire (charbon)
Placer un bloc à un certain endroit (lit dans le Nether)
Entrer dans un bloc (sauter dans de la lave)
Invoquer un golem
Tirer une flèche sur un zombie dans le Nether à plus de 30 mètres
Pour mon premier progrès, j’ai décidé de le donner dès que le joueur utilise un briquet, il ressemble donc à ceci désormais:
criteria:{« use_briquet »:{
« trigger »: »minecraft:item_durability_changed »,
« conditions »:{
« item »:{« item »: »minecraft:flint_and_steel »}}}}}
Ce progrès est maintenant fonctionnel. Vous pouvez le tester mais pour cela, il va falloir le placer dans une de vos sauvegardes. Pour cela, copiez le dossier que vous avez créé et collez-le dans votre_monde/data/advancements/
Si votre jeu était déjà lancé, faites /reload, sinon, il devrait déjà apparaître dès que vous utiliserez un briquet (en mode survie pour qu’il s’abîme).
Définir un parent
Vous l’aurez probablement remarqué, mais les succès sont placés dans un arbre avec des branches. Pour que vos succès puissent se ranger correctement, il faut définir quel est le succès qui doit venir avant celui que vous créez (ce n’est pas nécessaire pour le tout premier). Pour cela, on ajoute une clé « parent »: » ». Dans cette chaîne de caractère, vous devez simplement indiquer le dossier suivi du nom du fichier parent.
Exemple, mon dossier dans lequel je mets les progrès s’appelle « tutoriel ». Mon premier progrès se nomme « briquet.json », je mets donc dans mon second progrès « parent »: »tutoriel:briquet ». Le premier dossier est séparé avec deux-points. Si vous mettez des dossier dans ce dossier, il faudra utiliser un slash (ex: « tutoriel:dossier/briquet »).
Mon second progrès ressemblerait alors à ceci:
« parent »: »tutoriel:briquet »}
Limiter les critères
Pour le moment, vous avez vu comment mettre plusieurs critères, mais pas comment déterminer lesquels sont nécessaires. Par défaut, il faudra remplir tous les critères pour déverrouiller le progrès, mais vous pouvez indiquer « déverrouiller le progrès si critère 1 ou critère 2″. Pour cela on ajoute une nouvelle clé (c’est l’avant-dernière), « requirements »:[].
Si vous voulez donner le progrès si A et B sont respecté, vous devrez l’écrire comme ceci: « requirements »:[[« A »],[« B »]]. Si vous voulez A ou B, ça sera « requirements »:[[« A », »B »]]. Et si vous voulez (A et B) ou C, ça sera « requirements »:[[« A », »C »],[« B », »C »]]…
Les lettres « A », « B » et « C » utilisées pour l’exemple correspondent aux textes que vous mettez dans les critères. Si je reprends le dernier exemple en ajoutant le requirement, ça donnerait ceci :
« requirements »:[[« enter_nether »]]} Le joueur fait des progrès, c’est bien. Il est peut être temps de le récompenser ? Pour cela, une dernière clé « rewards »:{} va vous permettre de donner au joueur: de l’expérience, une fonction, une recette ou des objets provenant d’une table de butin. Dans les progrès vanilla, tous les défis donnent de l’expérience par exemple. La clé s’écrit de la manière suivante: « rewards »:{« function »: »une_fonction », »experience »:valeur, »loot »: »votre_table_de_butin », »recipe »: »une_recette »} Exemple, mon progrès doit me donner les objets que l’on trouve dans un coffre du Nether : « rewards »:{« loot »: »minecraft:chests/nether_bridge »}} Vous avez découvert comment ajouter un nouvel onglet avec de nouveaux progrès. Si vous voulez tester par vous même, je vous laisse télécharger cet exemple. Dans le fichier téléchargeable, j’ai repris des exemples du dessus et en ai ajoutés quelques-uns. Le premier se débloque automatiquement (« trigger »: »minecraft:tick »). Ainsi, vous pouvez être sûr de voir l’onglet s’afficher. Il s’agit d’une sauvegarde, vous avez juste à la coller dans votre dossier saves (tutoriel en fin d’article). N’hésitez pas à fouiller les fichiers pour voir comment ça fonctionne. Maintenant qu’on a vu comment ajouter des onglets, vous avez peut être envie de retirer ceux qui existent déjà ? Qu’à cela ne tienne ! Même si on ne peut pas vraiment les retirer, il est possible de les modifier en ré-écrivant les progrès déjà existant. Et si on change le déclencheur en mettant quelque chose d’impossible, les progrès ne se déverrouilleront jamais. Un exemple de progrès impossible à réaliser : Une autre solution pour bloquer un arbre complet est de rendre un des progrès illisible par le jeu. Si vous le souhaitez, voici un dossier qui bloquera tous les progrès par défaut dans le jeu : télécharger le dossier. Pour vous en servir, copiez le dossier « data » et collez-le dans la sauvegarde à modifier. Et pour empêcher les joueurs de débloquer les recettes en obtenant juste les ingrédients, sachez que ces recettes s’obtiennent via des progrès. Afin de les retirer, vous pouvez soit bloquer ces progrès avec le dossier ci-dessus soit donner tous ceux du dossier « recipes » au joueur avant de retirer toutes les recettes. Ainsi, il ne pourront plus les débloquer. Les commandes pour faire ceci sont les suivantes : Pour voir à quoi ressemblent les progrès par défaut, ils sont dans .minecraft/versions/1.12/1.12.jar/advancements/(…). Il vous suffit de reproduire la même arborescence dans le dossier data/advancements/ de votre sauvegarde pour pouvoir agir sur ces progrès déjà existant. Dans votre dossier .minecraft, il existe un dossier logs. Vous pouvez regarder le fichier appelé « latest.txt » et regarder si votre progrès apparaît dans un des messages d’erreur, ça pourrait vous aider à cibler le problème. Vous pouvez aussi essayer cette commande : Si votre succès apparaît après ça, c’est que votre déclencheur n’est pas correct. Oui. Comme toujours, il existe des petits sites et des softs permettant de faire le travail pour vous. Ils auront néanmoins des limitations. Le site ci-dessous vous permettra de créer des succès assez facilement. Il prend en compte un grand nombre de paramètre et devrait vous permettre d’accomplir la plus grande partie de vos tâches. Ce qu’il ne sera pas possible de faire en revanche, c’est déclencher un « entity_hurt_player », sans entité source (alors que ce déclencheur s’active quelque soit la source des dégâts). Ou encore, il ne vous sera pas possible de faire de mise en forme avancée avec cet outil. Pour aller un peu plus loin et ne pas oublier la base, sachez que les progrès peuvent être donnés ou retirés aux joueurs par le biais de la commande /advancement. Quelques petites explications: Les premiers arguments grant et revoke veulent respectivement dire « donner » et « prendre ». Only ne donnera que le progrès que vous spécifiez ensuite. Until donnera tous les succès en partant de la racine jusqu’à atteindre l’objectif spécifié, from donnera tous les progrès situés après celui spécifié tandis que though donnera tous les progrès situés dans l’arbre du progrès spécifié. Lorsque vous utilisez only, vous pouvez aussi ajouter un autre nom derrière, le nom d’un critère à valider. Ainsi, ça ne donne qu’une partie du progrès. Exemple : La commande ci-dessus permet de dire « tous les joueurs valident la condition Tuer un Vex dans la progrès Tuer tous les monstres« . Cela validera le défi pour les joueurs qui n’avaient plus que le Vex à tuer. Pour les autres, ça fera juste progresser légèrement le défi. Si vous souhaitez voir des exemples bien concrets comme il faut, voici quelques « packs ». Ce sont des dossiers data que vous devez coller dans une de vos sauvegardes directement (à côté du fichier level.dat). Le premier va ajouter des progrès dans les arbres existants par défaut et va déplacer quelques progrès afin de faire de la place. Le second pack va ajouter un nouvel onglet qui ne s’affichera que lorsque vous placerez un coffre. Ensuite, vous devrez réaliser des actions spéciales (poser une bibliothèque, un Jukebox, obtenir un tête, un colorant…) pour afficher les branches de l’arbres. C’est principalement basé sur les propriétés du tag « hidden ». Un dernier pack bien plus poussé va vous permettre d’ajouter un nouvel onglet qui s’affichera soit lorsque vous irez haut dans le ciel, soit en apprivoisant un perroquet, soit en tuant le dragon. La suite des progrès est une sorte de quête permettant à tous les joueurs de fabriquer une paire d’élytres. Vous aurez des phases de recherches, de collectes, des actions à accomplir. Ce pack utilise des fonctions (des fichiers textes contenant des commandes) afin d’empêcher les joueur de griller les étapes et pour retirer les ingrédients une fois collectés. N’hésitez pas à laisser vos questions en commentaire et amusez-vous bien ! Windows : Allez dans le menu Démarrer, puis rendez-vous dans Exécuter. Sinon, faites Touche Windows + R. Ensuite, tapez %appdata% dans la barre de recherche, puis allez dans le dossier .minecraft. Pour la map, ouvrez l’archive et transférez le dossier dans le dossier saves qui se trouve dans votre .minecraft. Pour les dossiers contenant des progrès, ouvrez l’archive et transférez le dossier data dans le dossier correspondant à la sauvegarde que vous voulez modifier. Le dossier minecraft doit se placer dans le dossier advancements situé dans le dossier data de la sauvegarde à modifier. Lancez le jeu, et amusez-vous bien !
Récompenser le joueur
C’est fini !
Modifier/Retirer des progrès
/advancement grant @a from minecraft:recipes/root
/recipe take @a *
Mon progrès ne marche pas, que faire ?
/advancement grant @s everything
C’est trop compliqué pour moi, y a pas un logiciel ?
La commande /advancement
/advancement <grant|revoke> <player> <only|until|from|through> <advancement>
/advancement grant @a only minecraft:adventure/kill_all_mobs vex
Quelques packs de progrès pour tester
Accéder aux sauvegardes / Installer une map
Linux : Appuyez en même temps sur ALT + F2. Ensuite, vous devriez normalement avoir votre .minecraft.
Si vous ne le voyez pas, activez les dossiers cachés avec la combinaison CTRL + H.
Mac : Votre dossier minecraft se trouve dans Utilisateur > Bibliothèque > Application Support.
Si vous ne trouvez pas Application Support, faites Finder > Barre des menus : Aller + Maintenir ALT > Bibliothèque.
Salut petite question, y a t’il un moyen de trigger le inventory_changed lorsqu’un certain nombre de blocs du même type sont récupérés, par exemple lorsque le joueur obtient 10 blocs de planches?
merci
Est ce qu’on peut jouer le son de quand on réalise un progrès avec le /playsound
Peut on mettre dans un certain ordre des progrès qui on un seul est même parent ?
super j’ai un autre problème … je vois le début des progrès mais pas la suite j’ai copier colle le même code quand je prend se qu’il faut pour faire le progrès sa me le mais ‘-‘
j’aurais besoin d’aide j’arrive pas a faire en sorte qu’il faut faire le progrès « A » pour faire le progrès « B » merci d’avance pour l’aide :)
{
« display »: {
« icon »: {
« item »: « minecraft:wooden_pickaxe »
},
« title »: {
« translate »: « pioche de debutant »
},
« description »: {
« translate »: « crée une pioche en bois »
}
},
« parent »: « skyblock:bucheron »,
« criteria »: {
« log »: {
« trigger »: « minecraft:inventory_changed »,
« conditions »: {
« items »: [
{
« item »: « minecraft:wooden_pickaxe »
}
]
}
}
}
}
J’ai l’impression que cela ne marche plus en 1.13 alors cela vient il de moi ou est ce effectivement le cas ? Si cest le cas comment peut on faire pour rajouter des succès 1.13 ? Merci d’avance pour votre aide ;)
Merci @49836 pour ton aide mais… sa fonctionne toujours pas…
donc bon… le parent fonctionne lui mais je sais pas pour quoi l’autre non. On va dire que c’est la snapshot.
@guest_74578 Là, comme ça, après quelques mois sans avoir trop toucher au truc, je dirais que c’est ton « criteria » qui est mal définit. Il lui manque un nom. Et il n’y a pas le bon nombre d’accolade. Voici la correction.
{
« display »: {
« icon »: {
« item »: « minecraft:water_bucket »
},
« title »: {
« translate »: « La BOMB »
},
« description »: {
« translate »: « Fair un plongeon dant l’eau »
},
« show_toast »: true,
« frame »: « task »,
« hidden »: false,
« announce_to_chat »: true
},
« parent »: « custom:a »,
« criteria »: {
« un_nom »: {
« trigger »: « minecraft:minecraft:enter_block »,
« conditions »: {
« block »: « minecraft:water »
}
}
}
}
Help !
sa fait des heures que je suis dessus et sa marche pas !
le jeu ne le trouve pas…
est ce que le grand @49836 pourrait m’aider svp
je suis en snapshot 1.13 18w16a
{
« display »: {
« icon »: {
« item »: « minecraft:water_bucket »
},
« title »: {
« translate »: « La BOMB »
},
« description »: {
« translate »: « Fair un plongeon dant l’eau »
},
« show_toast »:true,
« frame »: »task »,
« hidden »:false,
« announce_to_chat »:true
},
« parent »: »custom:a »,
« criteria »: {
« trigger »: »minecraft:minecraft:enter_block »,
« conditions »:{« block »: »minecraft:water »
}
}
très bon tuto merci
@iliannrns Je t’invite à poser ta question sur le forum de Minecraft-France. https://forum.minecraft-france.fr/forums/commands-blocks-redstone.118/
Hey!
J’ai créer un advencement, que voici :
{display:{« background »: »minecraft:textures/blocks/planks_acacia.png », »hidden »:false, »show_toast »:true, »announce_to_chat”:true, »icon »:{« item »: »minecraft:coal »}, »title »: »CHARBON MGL », »description »: »le charbon c’est le sang de la veine donc ramasses-en », »frame »: »task »},criteria:{« chercher_charbon »{« trigger »: »minecraft:inventory_changed », »conditions »:{« items »:{« item »: »minecraft:coal »}}}
Cela ne marche pas et je trouve pas le problème :( Et puis aussi j’ai télécharger un des advencement et j’ai vu qu’il y avait des présentation un peu bizarre, avec des alinéas, etc. C’est nécéssaire?
En fait c’est beaucoup trop difficile pour moi, je suis perdu au truc des fonctions mais c’est pas grave je vais essayer de trouver des progrès directement fait sur internet. En fait, ce que je recherchais c’était, tuer 1 shulker puis 10 puis 50 puis 200 puis 500 puis 1000, je vais continuer de faire des progrès mais des plus simples, et puis peut-être que comme des map/mod etc, les progrès seront proposer de plus en plus. Sinon super article bien mieux expliquer que sur d’autres sites !
@Genemo : Dès que tu as besoin de conditions qui ne sont pas offertes par le site, tu vas devoir passer par des commandes. Ce que je te conseille, c’est de créer un succès « technique », invisible (donc sans mettre de parent ni de display) qui est « tuer un Shulker ». Et dans la récompense « rewards », tu utilises une fonction avec deux commandes : une qui retire ce succès technique et une uatre qui donne le succès « Tuer 50 Shulkers » si le joueur a bien tué plus de 50 shulkers. Pour savoir si le joueur a tué plus de 50 Shulkers, il faut au préalable créer un objectif permettant de savoir combien de Shulker chaque joueur tue. Ça peut se faire dans le fichier fonction déjà créé ou via un autre fichier fonction par le biais d’un advancement donné à la connexion du joueur.
Super pratique, merci, j’ai trop de mal a faire ça du coup j’utilises le site ^^
Par contre j’ai un soucis, sur le site j’ai moyen de demander de tuer un Shulker pour avoir un progrès, mais ce que j’aimerais c’est que les conditions soient : tuer 50 Shulker. Est-ce possible ? merci.
Très bon article, j’ai jamais autant eu le sentiment d’être un assisté x)
Sans rire, si vous êtes un mapmaker de talent et que vous voulez avoir des progrès personnalisé, je ne puis que vous conseiller cet article :ok:
@Mlakuss C’est bon, ça fonctionne maintenant, je n’ai plus les progrès. Merci beaucoup, et merci pour ce tutoriel très utile ^^
@Hardel : Tu as deux solutions. La première, c’est de mettre dans ton second succès les conditions du progrès 1 et du progrès 2. Puis dans le 3ème, les conditions du progrès 1, 2 et 3. Tu arrives avec des progrès long à la fin. L’autre solution, c’est de mettre un critère impossible dans tous les succès. Quand un succès est terminé, il faut ajouter une fonction permettant de valider le critère impossible dans le progrès suivant. C’est utilisé dans l’exemple 3 avec la quêtes des élytres si tu veux des fichiers pour t’inspirer.
Pour aller plus loin, si tu as un progrès avec comme critère « manger_une_pomme », tu ajoutes un critère impossible « progrès_précédent ». Et dans le progrès précédent, il faut une fonction qui fera la commande: /advancement grant @s only dossier:progrès progrès_précédent
comment faire pour que les progrès ce suivent j’ai envie que le joueur fasse les progrès 1 a 1 dans odre
je veut que le joueur ait le premier Progrès avant le second ect…
@Overtek Vérifie bien que dans data, tu aies « data/advancement/minecraft/(n’importe quel dossier)/root.json. Il manquait le dossier « advancements », le lien est corrigé.
Le dossier pour bloquer l’arbre des progrès ne fonctionne pas. J’ai bien mis le dossier « Data » que contenait l’archive dans le dossier de ma map, mais quand je vais sur mon monde j’ai toujours les progrès qui s’activent (par exemple quand je mine de la cobble avec une pioche en bois). C’est normal ? :/
Super merci Mlakuss
c’est tellement bien de pouvoir faire sa
Yeah merci !