2 votes

Comment remplacer un élément SPÉCIFIQUE de la barre d'outils d'un joueur par un autre élément spécifique ?

Je veux faire en sorte d'avoir un bloc de commande qui teste si un joueur a une bouteille en verre sélectionnée dans l'emplacement 1 de sa barre de tâches. Si c'est le cas, ce joueur spécifique et seulement ce joueur est ajouté à une équipe. Tous les joueurs de cette équipe obtiennent un effet de potion d'invisibilité temporaire pendant 30 secondes, puis la bouteille en verre de la barre d'énergie de la personne est remplacée par une bouteille d'eau et la personne est retirée de l'équipe. La raison pour laquelle je veux faire cela est que je veux créer un pouvoir temporaire, rechargeable qu'un joueur peut activer de sorte qu'il utilise un objet, obtient une capacité, après un certain temps perd la capacité et récupère l'objet original après que le "pouvoir" ait été rechargé.

Le problème que j'ai est... Je peux tester si un joueur a un objet spécifique dans un slot spécifique, et ensuite avoir un comparateur qui sort du bloc de commande qui obtient une sortie si la commande testfor devient vraie pour n'importe quel joueur. Mais alors je ne sais pas comment cibler seulement ce joueur spécifique avec la bouteille de verre pour être mis dans une équipe puisque les seules commandes de ciblage sont @a, @p, ou @r. Ces commandes de ciblage ne fonctionnent pas car je ne veux pas que tous les joueurs soient ajoutés à l'équipe et obtiennent les effets de la potion et je ne veux pas que le joueur le plus proche du bloc de commande soit ajouté à l'équipe et obtienne les effets de la potion car le joueur qui a activé le bloc de commande testfor peut être plus éloigné du bloc de commande qu'une autre personne. Et bien sûr, un joueur aléatoire ne fonctionnerait pas non plus. Donc, existe-t-il une commande qui me permette de cibler tous les joueurs qui ont une bouteille de verre dans l'emplacement 1 de leur barre d'outils et de les ajouter à une équipe plutôt que de voir si un joueur a une bouteille de verre dans l'emplacement 1 de sa barre d'outils et d'ajouter toutes les personnes à une équipe.

Désolé pour la longue explication, je ne suis pas très bon pour expliquer les choses, si quelqu'un peut aider, ce serait grandement apprécié.

1voto

MrLemon Points 17073

Vous devrez "traduire" la balise de données de la bouteille de verre en quelque chose qui fonctionne avec les sélecteurs de cible (@a, etc.). La méthode la plus simple consiste à utiliser des valeurs de tableau d'affichage fictives ou, dans la version 1.9, des balises de tableau d'affichage.

En 1.8, créez un objectif en utilisant

scoreboard objectives add bottleInOne dummy

Créez une horloge de remplissage et exécutez les deux commandes suivantes

scoreboard players set @a[score_bottleInOne_min=1] bottleInOne 0
scoreboard players set @a[score_bottleInOne=0] bottleInOne 1 {SelectedItemSlot:0,SelectedItem:{id:minecraft:glass_bottle}}

Si la partie équipe est nécessaire, vous pouvez maintenant ajouter @a[score_bottleInOne_min=1] à l'équipe, et retirer @a[score_bottleInOne=0] à partir de celui-ci, en utilisant la même horloge de remplissage. Vous pouvez également utiliser ces sélecteurs de cible directement pour la fonction /effect y /replaceitem des commandes, si la partie équipe était juste votre idée de sélectionner ce joueur pour l'effet.


En 1.9, vous pouvez omettre l'objectif du tableau d'affichage au profit des balises. En utilisant une chaîne de blocs de commandes Repeat/Chain, exécutez

scoreboard players tag @a[tag=bottleInOne] remove bottleInOne
scoreboard players tag @a[tag=!bottleInOne] add bottleInOne {SelectedItemSlot:0,SelectedItem:{id:minecraft:glass_bottle}}

Dans les commandes suivantes, vous pouvez alors utiliser @a[tag=bottleInOne] o @a[tag=!bottleInOne] pour cibler les joueurs avec et sans la bouteille sélectionnée dans le slot 0, respectivement.

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