3 votes

Sélecteurs de joueurs Minecraft basés sur des données NBT

La 1.8 a donc apporté la possibilité de tester ce que le joueur a sélectionné.

Par exemple (peut-être pas exactement, mais quelque chose comme ça),

testfor @a {SelectedItem:{id:minecraft:stick}}

Comment faites-vous pour en sélectionnant sur la base de ceci ? Je cherche quelque chose comme ça :

tp @a[SelectedItem:{id=minecraft:stick}}] ~ ~5 ~

J'ai essayé de nombreuses permutations différentes de la syntaxe, mais le bloc de commande produit toujours des erreurs. Avez-vous une idée ?

3voto

seedofc Points 78

Cela peut être fait, mais vous aurez besoin de quelques blocs de commande pour le faire. L'utilisation de la fonction de tableau d'affichage est ce qui permet à ce système de fonctionner.

Imaginons que vous vouliez téléporter un joueur détenant une étoile du Néant hors du monde (je ne sais pas pourquoi vous voudriez faire ça, mais admettons que vous le vouliez). Tout d'abord, vous devez configurer le tableau d'affichage :

scoreboard objectives add holdingstar dummy

Vous ne devez le faire qu'une fois. Maintenant que c'est fait, vous pouvez configurer vos blocs de commande (vous allez vouloir les configurer sur une horloge pour qu'ils fonctionnent en continu). Vous allez vouloir régler ce score à 1 pour tous les joueurs possédant une étoile du Néant, et à 0 pour tous les joueurs ne possédant pas d'étoile du Néant. Malheureusement, il n'y a pas de moyen de vérifier si un joueur est en possession d'une étoile du Néant. pas détenant un élément spécifique, la solution devient donc un peu plus compliquée. L'exécution de ces deux commandes en séquence devrait cependant faire l'affaire :

scoreboard players set @a holdingstar 0
scoreboard players set @a holdingstar 1 {SelectedItem:{id:minecraft:nether_star}}

Cela fixe le score de holdingstar pour tous les joueurs à 0, puis fixe le score de ceux qui détiennent une étoile à 1. Maintenant que le tableau d'affichage vérifie ce que nous voulons vérifier, nous pouvons passer le score dans un sélecteur :

tp @a[score_holdingstar_min:1] ~ -1 ~

Bye bye, tous ceux qui ont une étoile du Néant sélectionnée. Si vous faire Si vous exécutez cette commande sur une horloge, n'oubliez pas qu'elle sera répétée à l'infini ; il n'y a aucun moyen de dire au système qu'il a déjà exécuté cette commande sur ce lecteur. Cela convient pour /effect et autres, mais cela complique les choses pour les utilisateurs. /tp les commandes. C'est juste une chose à garder à l'esprit.

AlleGamers.com

AlleGamers est une communauté de gamers qui cherche à élargir la connaissance des jeux vidéo.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X