État des services Mojang : Plus d'infos
La recherche se fait sur tous les élements du jeu. Rechercher un membre

Minecraft 1.13: Les nouvelles commandes

Le 08/11/2017 à 6h07

Comme vous le savez déjà, Dinnerbone est actuellement en train de réécrire le système de gestion des commandes dans Minecraft, il en profite donc pour améliorer la plupart des commandes existantes. Il nous a déjà présenté une partie des changements cet été:
Voici la suite des changements annoncés:

/difficulty
Outre sa nouvelle syntaxe, la commande /difficulty peut maintenant être écrite sans paramètre, dans ce cas elle affichera le mode de difficulté actuelle du joueur qui tape la commande.


/effect
Outre sa nouvelle syntaxe, la commande /effect a maintenant certaines limitations:
  • Certains mobs sont immunisés contre les effets (par exemple l'ender dragon)
  • Il n'est plus possible d'affecté un effet de niveau faible si le mob/joueur possède déjà le même effet mais avec un niveau supérieur

/enchant
La commande  /enchant a été purement et simplement supprimé, remplacé par la nouvelle commande plus générale /modifyitem.


/execute
La commande /execute est probablement la commande qui a subit le plus de changement. Elle était déjà une grosse commande très complète, elle le sera maintenant encore plus. Ces dernières semaines les annonces au sujet de cette commande ce sont succédées, des annonces parfois contradictoires, il était donc difficile de s'y retrouvé.

Voyons donc les différentes syntaxes de cette commande d'après les annonces de Dinnerbone aujourd'hui.

Les modificateur de /execute:
La commande execute est maintenant découpé en sous-commande. Chaque sous-commande peut être enchainé pour associé leur effet. Les sous-commandes suivantes permettent de modifier l'identité et des propriétés de l'entité qui exécute la commande:
  • /execute as <entité> <sous-commande(s)> : Exécute une commande en utilisant l'identité de "<entité>"  (mais sans reprendre sa position)
  • /execute at <entité> <sous-commande(s)> : Exécute une commande en utilisant la position de "<entité>" (mais sans reprendre son identité)
  • /execute offset <x y z> <sous-commande(s)> : Exécute une commande en utilisant la position de base <x y z>
  • /execute align <axes> <sous-commande(s)> :Exécute une commande après avoir arrondit les coordonnées au centre d'un bloc sur les axes choisit. Le paramètre axe est une combinaison des lettres "x", "y", et "z".
Les conditions sous-commandes de /execute:
Les sous-commande de /execute permettent également d'effectuer des test sur des conditions. Il est possible d’enchaîner les conditions avec plusieurs /execute imbriqué. Le paramètre "if" indique la commande commande sera executé sur la condition est vrai. Le paramètre "unless" indique l'inverse, la commande sera executé sur la condition est fausse. Voici les tests conditionnels disponibles:
  • /execute (if|unless) block <x y z> <block> <sous-commande(s)> : Exécute une commande si (ou sauf si) le bloc à la position <x y z> est bien le bloc indiqué par <block>
  • /execute (if|unless) blocks <début> <fin> <destination> (all|masked) <sous-commande(s)> : Exécute une commande si (ou sauf si) la zone entre les positions <début> et <fin> sont identique à <destination>
  • /execute (if|unless) entity <entity> <sous-commande(s)> : Exécute une commande si (ou sauf si) l'entité <entity> existe (c'est à dire s'il y a 1 ou plusieurs entités qui correspondent au critère)
  • /execute (if|unless) score <cible> <objectif_cible> (<|<=|=|>=|>) <source> <objectif_source> <sous-commande(s)> : Exécute une commande si (ou sauf si) le score de l'entité <cible> score est inférieur/égal/supérieur au score de l'entité <source>

Suppression de /stats:
La commande /stats est supprimé, remplacé par une nouvelle sous-commande de /execute:
/execute store (result|success) <scorebaord> <objectif> <sous-commande(s)>
  • "result" indique qu'on souhaite stoquer le résultat de la commande, cela remplace les anciens paramètres de la commande /stats: AffectedBlocks, AffectedEntities, AffectedItems, QueryResult
  • "success" indique qu'on souhaite enregistrer le nombre de succès de la commande. En général cette valeur vos 0 (echec) ou 1 (succes), mais peut prendre une valeur supérieure pour les commandes multiples (par exemple lorsqu'on utilise le sélecteur @a)
  • Comme avec la commande /stats, le résultat est enregistré dans l'objectif <objectif> du scoreboard <scoreboard>
  • L'objectif doit exister (la commande ne le créera pas), par contre il n'est pas obligatoire qu'il possède déjà une valeur (contrairement à /stats)
  • Si une commande échoue ("success" à 0), le "result" sera toujours égal à 0
Enchainement et exécution:
Vous l'avez compris, toutes les conditions et actions ci-dessus peuvent être combiner avant l'execution de la commande finale. Il existe une dernière sous-commande: celle permettant d'exécuter la commande finale ! (car ne l'oublions pas, /execute sert avant tout a exécuter une autre commande):
/execute run <commande>
La sous-commande "run" devra toujours être la dernière sous-commande.
La chaine est une succession de commande /execute, sans besoin de rappeller le mot "execute". Par exemple:
/execute as Tronics at Tronics run say Salut
Chaque changement de couleur indique une sous-commande différente.

Quelques exemples de commande, avec l'ancienne syntaxe, puis avec la nouvelle syntaxe:
  • /execute @e ~ ~ ~ detect ~ ~ ~ stone 0 say Stone! -> /execute as @e at @s if block ~ ~ ~ stone run say Stone!
  • /execute @e ~ ~ ~ detect ~ ~ ~ grass summon pig -> /execute at @e if block ~ ~ ~ grass run summon pig
  • /execute @e ~ ~ ~ say Hello! -> /execute as @e run say Hello!

/experience
La commande /experience est nouvelle, elle remplace la commande /xp. La commande /xp n'a cependant pas été supprimé, elle est maintenant un alias de cette nouvelle commande. La syntaxe a en revanche était entièrement revu, plus souple, complète et facile a comprendre:
  • /experience add <joueurs> <nombre> [points|levels] : Ajoute <nombre> de points ou de levels d'xp au <joueurs> désignés
  • /experience set <players> <amount> [points|levels] : Défini le nombre de points ou de levels d'xp du <joueurs> désignés à la valeur <nombre>
  • /experience query <joueur> (points|levels) : Permet de connaitre le nombre de point ou de level d'XP du <joueur> désigné
Quelques précisions:
  • Pour chaque commande il est possible d'indiquer si on souhaite modifier le nombre de point d'XP, ou le level d'XP, pour cela il faut indiqué à la fin de la commande les paramètres "points" ou "levels". Si on ne l'indique pas, le jeu utilisera les points d'XP par défaut.
  • Si le nombre de point ajouté dépasse le niveau maximum du level courant, naturellement le(s) joueur(s) vont gagner un/des level(s).
  • Il est possible de donner des valeurs négatives pour soustraire des points ou levels d'XP
  • Lorsqu'on définit un level, la barre de progression d'XP restera remplit au même pourcentage qu'avant la commande.

/scoreboard
La commande /scoreboard a subit a découpage drastique:
  • /scoreboard tag est remplacé par la nouvelle commande /tag
  • /scoreboard team est remplacé par la nouvelle commande /team
  • /scoreboard players test est supprimé, il est maintenant possible de faire la même chose en utilisant les nouveaux sélecteurs (cf en fin d'article).

/stopsound
La commande /stopsound accepte maintenant la valeur spéciale "*" pour stopper tous les sons simultanément.


/trigger
Pas de gros changement pour la commande /trigger, mais un nouveau raccourcit: lorsqu'on souhaite simplement incrémenter un compteur, il est possible d'écrire seulement:
/trigger <objective>
Qui est l'équivalent de l'ancienne commande:
/trigger <objective> add 1


/weather
Pas de gros changement non plus pour la commande /weather, mais plus de déterminisme: Si aucune durée n'est spécifié pour la commande, la durée par défaut est maintenant de 5min (auparavent la durée était aléatoire).


Les sélecteurs
Les sélecteur ont déjà subit plusieurs modifications pour Minecraft 1.13 (ici et la). Cette fois Dinnerbone présente de nouvelle possibilité de filtrage:

Filtrage par scoreboard
Il est maintenant possible de filtrer les sélecteurs par score (/scoreboard). Voici la syntaxe:
scores={foo=1,bar=1..5}
Avec:
  • "foo" et "bar" des noms d'objectifs
  • "1" une valeur fixe pour le score
  • "1..5" un interval pour le score

Filtrage par advancement
Il est maintenant également possible de filtrer les sélecteurs par advancement (progrès). Voici la syntaxe:
advancements={foo=true,bar=false,custom:something={criterion:true}}
Avec:
  • "foo" et "bar" des noms d'advancement interne à Minecraft
  • "custom:something" un advancement issu d'un data pack
  • "true" pour indiquer que le joueur a remporter l'advancement, ou "false" pour indiquer qu'il ne l'a pas encore
  • "{criterion:true}" permet de tester un critère uniquement (pour les advancements avec plusieurs critères, par exemple pour l'advancement "Partons à l'aventure !" (l'exploration de tous les biomes), il est possible de sélectionner uniquement un biome en particulier, même si l'advancement n'est pas encore terminé)
Exemple complet d'un nouveau sélecteur:
@p[scores={vie=3},advancements={story/mine_stone=true}]
==> Sélectionne le joueur le plus proche ayant:
  • 3 vie (scoreboard avec l'objectif nommé "vie" ayant la valeur "3")
  • gagné le progrès [advancement=story/mine_stone]L'âge de pierre[/advancement]


Si tout se passe comme prévu les commandes pourraient être disponible dans la prochaine snapshot, c'est à dire dès aujourd'hui !
Cet article a été publié par Tronics, le 2017-11-08 06:07:44. Source
Validé par  Tronics. Dernière modification par  Tronics le 08/11/2017 à 6:18.
Partager :
Commentaires de la news Minecraft
Minecraft 1.13: Les nouvelles commandes :
Tronics (administrateur)
le 08/11/2017 à 06:11
Comme d'hab il y a probablement plein de fautes, mais vous êtes habitués maintenant ^^

J'aime beaucoup ce qu'est devenu la commande /execute, commande très souple d'utilisation, très complète. Il aura fallu pas mal de test et de négociation avec la communauté, mais le résultat est convainquant je trouve.

Pour les sélecteurs c'est une bonne chose de les éteindre encore, mais je trouve que la syntaxe est mal fichu, ça reste vraiment compliqué, dommage :-( C'est bien pensé en tout cas de permettre de sélectionné les entités en fonction d'un critère d'advancement uniquement, c'est une excellente idée !
le 08/11/2017 à 07:13
Quand j'imagine le travail qu'il va te falloir derrière pour adapter fr-minecraft et minecraft.tools...
Mais sinon je suis heureux de voir tout ces changements, et je me dit que vue la longueur des nouveaux /execute, je suis content qu'il y ait des fonctions pour remplacer les anciens OneCommands :D
le 08/11/2017 à 11:02
pas mal , j'ai hâté de voir ce que va apporter la prochaine snapshot niveau commandes , j'ai ouïe dire qu'elles n'ont pas toutes étés implémentées , j'ai également entendu que la snapshot d'aujourd'hui apportait quelques commandes en plus du nouveau modèle 3D du cheval ... a suivre donc :)
Draco1544 (anonyme)
le 08/11/2017 à 11:18
J’ai hâte de voire tout cela en jeu
le 08/11/2017 à 11:33
J’ai hâte de voire tout cele en jeu
le 08/11/2017 à 11:41
J'ai hâte de tester tout ça, execute store sera plus pratique que des armor stands avec des tags. Après je trouve que /execute est devenu beaucoup plus complexe qu'avant, mais bon avec tout ce que ça offre désormais ! A mon avis les datapacks vont rapidement arriver.
J'espère juste que la communauté va suivre, parce qu'avec la suppression d'id en plus, la 1.13 est une véritable barrière au support des plugins(serveurs)/mods. Donc pas sûr que les serveurs s'en sortent pour le multiversion 1.12.2- / 1.13+ Ce qui est dommage c'est que certaines choses comme voxel vont peut-être disparaître n'étant plus mis à jour...
le 08/11/2017 à 12:55
Cool ! Un guide complet, ça fait plaisir !
le 08/11/2017 à 13:17
C’est vraiment prometteur en tout cas ! On pourra encore plus facilement se passer dès command blocks pour ne garder que les fonctions :D

Le changement de mécanique du /effect fait plaisir en tout cas !
Juste un petit peu peur des sélecteurs qui ne seront plus centrés sur le bloc par default mais cela est compensé par l’arrivée de la sous-commande align !

Sinon Tronics en effet la synthaxe des sélecteurs est toujours mal fichue, mais ça reste mieux je trouve que les score_foo_min et autres joyeusetés ^^
Par contre on va assister à l’élongation énorme des selecteurs avec l’arrivée du multi-arguments.
Aussi au sujet des sélecteurs, je regrette la logique imposée lorsqu’on met plusieurs choses : le ET.
Pouvoir faire un sélecteur @e[type=cow OU type=chicken] serait bien pratique !

Par contre j’ai vraiment du mal avec le as et le at... Si quelqu’un a des exemples très simples et concrets permettant de montrer la différence je suis preneur ;)
EtModyfyItem (anonyme)
le 08/11/2017 à 13:29
Ou est le modifyitem dont tu parle au dessus???
le 08/11/2017 à 13:59
@EtModifyItem
https://www.reddit.com/user/Dinnerbone/comments/6wjeai/possible_new_113_command_modifyitem/
le 08/11/2017 à 14:01
Je transpire rien que d'y penser à tout ces changements à faire pour ma map... A chaque article je vois le gouffre s'étendre et ça me fait de plus en plus peur de devoir tout réapprendre et me replonger comme au tout début dans les commandes de Minecraft. Comme s'il u-y avait que ça à faire ^^.
A ce niveau là de complexité maintenant autant aller apprendre le Java directement et faire ton propre jeu qu'une map Minecraft dont tu ne possèdera presque aucun droit haha. D'ailleurs un collègue qui faisait du script pour son server s'est mis à faire son propre jeu sur Unreal Engine, je le comprend franchement Minecraft devient de moins en moins conviviale et si c'est pour devenir un language informatique à part alors pourquoi ne pas laisser les mappeur vendre leur création sur Java librement?
En faite quand tu achète Minecraft maintenant, tu n'achète plus vraiment un jeu, mais une licence que tu ne possède pour coder en moteur Minecraft ^^.

Enfin bref tout ça pour dire qu'il y a quand même un problème à soulever, car plus Minecraft se complexifie, moins il y a de map aventure, il va falloir se poser la question sérieusement, pourquoi?
le 08/11/2017 à 15:03
Personnellement j’y vois deux grandes raisons :
- la baisse de création à au niveau de la communauté due à l’âge du jeu (ça on y peut rien)
- le manque de motivation pour créer ou update une qq chose sachant que tout sera cassé à la prochaine update (chose qui ne devrait plus arriver sachant que cette refonte totale a pour but de ne plus avoir à remodifier quelque chose déjà existant dans le futur)

Pour le fait de tout réapprendre je ne suis pas d’accord, on a un changement de syntaxe soit, mais on garde la même logique. Des habitudes de langue ça se change plus facilement qu’une habitude de pensée.
J’ai personnellement eu beaucoup de mal à passer des CB aux fonctions, ayant eu besoin de modifier ma façon de penser.

Précisions finalement que on peut aussi aimer créer sur Minecraft par passion du jeu. Beaucoup ne serait pas intéressés par la création d’un jeu autre part que dans Minecraft avec ce que propose Minecraft (ce qui peut être vu comme un défi par ex)
Tom118 (anonyme)
le 08/11/2017 à 16:15
Franchement ça pourrait etre génial mais je trouve la syntaxe un peu compliquée...
le 08/11/2017 à 16:18
Mojang ont inventé là un tout nouveau contept : la limitation des commandes admins, avec /effect ! ^_^
Quand on ajoute de beaux petits DRMs sur des commandes réservés aux admins et aux Map Makers, c'est qu'on a vraiment un besoin irrésistible de garder le contrôle de son jeu.
le 08/11/2017 à 16:20
Piccomaster
Je m'y connais pas trés bien en commande, mais c'est peut être du, à une certaine lassitude de la communauté, et des MAPEURS...Et puis si Mojang n'arréte pas de modifier les commandes, cela demandera a la communauté de tout remettre à jour, tout réapprendre.
C pareil en build, avec les refontes de textures, certaines constructions ne seront plus très esthétique du fait de l'inadaptabilité qui s'ensuivra entre certains blocs, mais il y aura peut être d'autres blocs qui avant n'allaient pas et qui vont resurgir suite à la MAJ
Ce qu'apportera la maj c'est:
(attention réplique à la con totalement improvisé...)
"Le renouveau par la mort du vieux"
PoulpoGaz (anonyme)
le 08/11/2017 à 16:51
C'est cool mais je vais devoir réapprendre les commandes. c'est nul :( Enfin bon
Tronics (administrateur)
le 08/11/2017 à 18:12
mathaym25: effectivement je suis d'accord que avant pour les score c'était encore plus tordu !

Piccomaster: Non ce n'est pas que Minecraft se complexifi (au contraire je trouve les nouvelles syntaxes plus simple), par contre le problème c'est que ca casse les habitudes, ils auraient du réfléchir a tout ces dès le début, c'est ça qui est dommage. Ensuite le jeu en lui même n'est pas plus compliqué, le joueur lambda n'est a rien a faire des commandes, la majorité des joueurs ne taperont pas une seule commande de toute leur vie. Refaire un jeu a zéro, pas sur que ce soit le plus simple, par contre faire un mod ça oui, je pense sincèrement que aujourd'hui faire un mod est plus simple que de jongler avec les commandes, mais le problème c'est que Mojang n'a jamais officiellement supporté les mods, donc ca reste "difficile" a installer, donc c'est moins populaire qu'un map qui marche avec un Minecraft vanilla.
Enfin pour la carence de map aventure, selon moi la raison n'a rien a voir avec la complexité de Minecraft, c'est une raison bien plus terre a terre: Mojang rachète toutes les maps des créateurs pour les avoir en exclusivités sur Realms (et maintenant sur le store de Minecraft Bedrock). Au début de Realms Mojang utiliser des maps disponible publiquement, aujourd'hui a chaque annonce de nouvelles map je les cheches... mais impossible a trouver, ce sont des exclusivités Realms, et sur Realms des maps aventures tu en as quasiement toutes les semaines :-/ C'est vraiment pas fair play de la par de Mojang ça. Tu me diras c'est pas pire que de recruter en interne tous les developpeur d'outils communautaires, résultat plus personne ne s'occupe de ces projets communautaires et une fois sur 2 ils tombent à l'abandon.

Lattyange: J'avoue que je n'ai vraiment pas compris l'ajout de cette limitation sur la commande, ça risque de poser plus de problème pour les mapmaker que ça n'en posés auparavent
le 08/11/2017 à 19:03
@Z_runner > Surtout le travail que Dinnerbone à réalisé !
le 08/11/2017 à 19:11
L'aide pour les commandes est implémentée, ce qui peut être énervant à force, car l'emplacement du chat est occupé par l'aide tant rien n'est écrit.
Damien63820 (anonyme)
le 08/11/2017 à 20:35
Ils ont charcutés les chevaux dans la dernières snapshot (O.O
Je savais qu'ils voulaient les changer mais là c'est violent comme "downgrade" ^^
le 08/11/2017 à 21:51
Ouai enfin quand tu dit que Mojang achète les maps pour leur Realm's c'est plutôt qu'ils les prennent! Ils ne donnent rien en contre-partie aux créateurs, Microsoft par contre eux il y a moyen dans leur marketplace.

Et encore pour Across The Time notre map n'a pas été prit par Mojang sur le Realms parce que je devais la mettre à jour pour la dernière version du jeu... Déjà qu'avec la 1.9 j'étais pas motivé de tout reprendre à zéro, quand je vois les modification dans la 1.13 je me suis dit heureusement que je me suis pas décider à faire une version 3.0 de ma map, car il aurait fallu aujourd'hui que j'en fasse une encore v4.0 en 1.13 qui me prendrait 6 mois de travail vu l'immensité de la map.

Mais je pense que tu as raison sur le fait que ça s'est professionnalisé en quelques sortes et que les mapmaker comme moi se démotive à offrir du contenu par pur passion.
Le modding peut-être plus simple maintenant en effet, mais pas pour ceux qui aime faire du commande vanilla comme moi. Même si c'est juste des syntaxes qui changent, il faut tout de même les réapprendre et c'est une perte de temps considérable à chaque fois. Les fonctions je m'y intéresserai seulement à partir de la 1.13, en espérant que ca changer plus les syntaxes.

Pour finir, oui le jeu Minecraft est clairement plus simple globalement, mais pour ceux qui créer du contenu plus tu leur offre des possibilités et de la liberté plus tu vas leur donner de la complexité afin d'aboutir à leur projet qui va s'émanciper avec les possibilités techniques s'ouvrant à eux.
Par exemple dans Minecraft il y a eu un avant et un après les scoreboards, un nouvel horizon s'est ouvert au mappeur qui nous permet de faire des choses presque infini, alors qu'avant étant limité dans la technique on devait se limiter dans la création et donc moins de complexité et du temps à chercher comment faire puisque c'était simplement impossible donc pas de question à se poser et donc moins de complexité clairement mais moins de liberté.
Enfin bref vivement que la 1.13 sort j'ai trop hâte de voir le gain de FPS et la puissance des commandes afin de passer enfin ce cap qui j'espère sera bien le dernier...
le 08/11/2017 à 22:55
@matthaym' command_blocks never die !

Vous devez être connecté pour laisser un commentaire.