Aidez nous a financer le site: Joignez l'utile à l'agréable et profitez d'FR-Minecraft sans publicités en
devenant VIP ! Ou ajoutez FR-Minecraft dans vos exceptions, nous n'abusons pas des pubs
Mercredi dernier sont sortie 2 snapshots, les versions 19w38a et 19w38b, ajoutant dans le jeu plusieurs changements techniques qui devraient ravire les créateurs de contenus.
Les predicates
Les predicates permettent de cibler des éléments dans le jeu en fonction de leurs données internes (en générale des données enregistrées dans leurs tags NBT). Ils sont utilisé dans les tables de loots, et permettent de modifier les loots en fonctions de critère très précis. Grâce à cette mise à jour, il devient par exemple possible de définir un loot si on tue un autre joueur uniquement s'il avait un niveau d'XP suffisant et/ou s'il avait déjà découvert un certain
progrés.
Voila la liste des nouveaux predicates disponibles:
-
Predicate de joueur:
-
level: définit le level du joueur (ou un interval, min ou max)
-
gamemode: permet de choisir le(s) mode(s) de jeu du joueur
-
stats: permet de cibler le joueur en fonction de ses statistiques de jeu (nombre de bloc miner, nombre de mort, etc...)
-
recipes: permet de cibler le joueur en fonction de recette de crafting débloqué ou non dans son livre de recette. Il s'agit d'une liste de clé-valeur, avec le nom de la recette, suivit d'une valeur booléenne true ou false indiquant si la recette doit être débloqué ou non pour que la condition soit accepté.
-
advancements: permet de cibler le joueur en fonction du/des progrès qu'il a déjà débloqué. Comme pour les recettes, il s'agit d'une liste avec pour chaque progrès un booléen indiquant si le progrès doit être réussit ou non. Il est également possible de cibler un critère particulière en remplacement la valeur booléenne par un objet désignant un critère a tester (pour rappel, un critère de progrès est une condition permettant de remporter un progrès, par exemple le progrès demande a accouplé tous les animaux du jeu au moins une fois, un critère de ce progrès serait d'accoupler seulement 1 espèce d'animaux en particulier au moins une fois)
-
Predicate d'équipe:
-
team: cible le joueur en fonction des équipes auxquelles il appartient.
-
Predicate de position: Les predicates block et fluid acceptent maintenant les sous-predicates suivant:
-
block / fluid: id exact du bloc ou fluide
-
tag: tag auquel doit appartenir le bloc ou fluide
-
nbt: donnée NBT qui doit avoir le bloc
-
state: donnée d'état du bloc, il s'agit d'une liste de couple clé-valeur, de type numérique, booléen, objet ou de chaine de caractère. Les fonctions min et max sont disponible.
-
Predicate de lumière:
-
Le sous-predicate light permet de cibler un bloc ou une entité en fonction de la lumière visible (light est la valeur maximale entre la lumière ambiance (soleil) et la lumière artificiel (torche, etc.) à la position du bloc/entité)
-
Predicates personnalisés:
Il est également possible de définir des predicates personnalisés, en utilisant le predicate "
reference" (et son paramètre "
name"). Il faut alors référence à un predicate définit dans un fichier de configuration enregistré dans le dossier "
predicates" dans un
datapack. Cela permettra aux créateurs de créer des conditions complexes, réutilisable facilement dans de nombreuses tables de loot.
-
Autres options des loots tables: D'autres options générales ont été ajouté dans les loots tables
-
Options de position: Il est possible de définir une condition de position via l'option "location_check", en indiquant l'offset via les options offsetX, offsetY et offsetZ
-
Options de temps: Il est possible de définir une condition de temps (heure) via l'option "time_check"' qui vérifie l'heure dans le jeu. L'heure est indiqué via l'option "value", cette valeur prend 24000 valeur par jour (0 et 24000 sont la même heure du jour), mais cette valeur augmente de jour en jour, c'est ce changement qui permet de changer les phases de la lune. Il est possible de définir un modulo à cette valeur afin de travailler en heure journalière par exemple, pour cela il faut utiliser l'option "period" (avec typiquement la valeur 24000).
Les predicates personnalisés peuvent être utilisé directement dans des [commande=a]sélecteurs[/commande], via le nouveau parametre de selecteur "
predicate", suivit du nom du predicate personnalisé (définit dans un datapack, en indiquant son nom).
Ajout de variable
Une nouvelle destination a été ajouté pour la commande :
/data (...) storage
La commande /data permettait déjà de modifier les données NBT de blocs et d'entités, mais il devient maintenant possible de stoquer des données directement dans le jeu, sans passer par un élément du jeu: c'est donc le concept de variable qui vient d'être ajouté dans le jeu !
C'est une révolution pour les créateurs de contenus pour Minecraft Java: jusqu'à maintenant lorsqu'on voulait enregistrer une valeur dans le jeu, il fallait créer une entité invisible (en général un support d'armure), puis y stoquer sous forme de tag NBT des données. C'était compliqué et lent (le jeu devait gérer une entité qui ne servait à rien, puisqu'elle était invisible), et cela obligé à garder le chunk contenant le support d'armure invisible toujours chargé. Mais Il devient enfin possible de stocker des valeurs dans le jeu, sans devoir créer des support d'armure.
Les données enregistrer dans le storage sont universel, disponible dans tous les mondes. Il est possible de stocker autant de valeur qu'on le souhaite, sous la forme de couple clé-valeur. Ces valeurs sont enregistré avec la partie, et donc restauré lorsqu'on relance le jeu.
Les nouvelles commandes
D'autres commandes ont également évoluer dans cette mise à jour:
La commande permettaient déjà d'executer des commandes sous des conditions diverses (condition de bloc, de score, de data, etc), elle permet maintenant en plus d'ajouter des conditions en fonction de predicate, via la syntaxe:
/execute if predicate ...
Cette commande test les predicates personnalisés disponible dans le dossier predicates des datapacks.
-
/schedule ... [append|replace]
La accepte maintenant un nouveau paramètre à la fin de la commande, qui permet d'ajouter plusieurs planification pour une même fonction: Si la valeur est "
replace" et qu'une programmation existe déjà pour cette fonction, la programmation sera modifié, si la valeur est "
append", une nouvelle programmation sera crée. Si ce paramètre est omis, c'est la valeur "
replace" qui sera choisit.
Il est maintenant possible de supprimer une programmation existant, via la fonction /schedule clear. On choisit la programmation a supprimé en indiquant l'ID de cette programmation en dernier paramètre.
La valeur par défaut pour la commande sans paramètre est maintenant
@s (c'est à dire que c'est l'entité qui tape la commande qui est tué). Cela ne devrait pas changer le fonctionnement de la commande dans la quasi-totalité des cas.
Amélioration de l'affichage graphique
Enfin, le plus gros changement de cette snapshot est invisible, puisque purement technique, c'est l'implementation d'
un nouveau moteur de rendu, nommé par les équipes de Mojang "Blaze 3D". Si tout se passe bien, aucun changement ne devrait être visible, mais comme tout changement technique en profondeur, il risque d'y avoir de nouveaux bugs ajoutés dans le jeu. Heureusement nous n'en somme qu'aux premières snapshots de Minecraft 1.15, Mojang aura tout le temps de corriger ces bugs avant la sortie de la Release.
Notez que ce changement empêche tout retour en arrière: lors du premier chargement, votre monde de Minecraft est convertie vers Blaze 3D, ce qui rendra votre monde incompatible avec les anciennes versions de Minecraft. Donc plus que jamais, si vous souhaitez tester cette snapshot, faites une sauvegarde de votre monde, ou créez un nouveau monde de test spécialement pour tester cette snapshot.
Corrections de bugs
Une
dizaines de bugs ont été corrigé dans la snapshot 19w38a, notamment des problèmes d'interaction avec les bateaux et les autres blocs/entités, la gamerule dofiredamage ne désactivait pas les dégâts du magma, des problèmes avec les perles d'Enderman sont corrigés, ainsi que des problèmes avec les raids et des corrections de problèmes de lags.
La snapshot 19w38b, sortie seulement quelques heures après la 19w38a,
corrige un problème de crash de la première snapshot lorsqu'on cassait un bloc.
Vous pouvez tester cette snapshot dès maintenant en un clic sur "Tester la snapshot" depuis le
launcher FR-Minecraft. Si vous souhaitez tester cette snapshot il est recommandé de faire une sauvegarde de vos mondes, puisque les snapshots sont des versions instables qui risquent de corrompre votre monde.
Pour revenir à la news, je n'ai pas compris la mise à jour du /kill, j'ai fait plusieurs test, et je ne vois aucune différence avec le fonctionnement dans les anciennes version, si quelqu'un sait ce qui a changé, ça m'intéresse!
Pour les predicates, il me semble qu'il s'agit de condition sur le bloc/entité qui est tué/cassé, mais j'avoue avoir un petit doute, s'il y a des experts ici n'hésitez pas à me corriger si j'ai dit une bêtise.