Minecraft Command Blocks Help – Sélection de la cible précédente dans un second bloc de commande

J'essaie de créer un système qui empêche les joueurs d'utiliser certains objets:

Dans un bloc de commande, j'ai la commande suivante "clear @a diamond_sword" exécutant constamment à travers une horloge.

Sur le côté de ce bloc de commande, j'ai un comparateur redstone pour capturer la sortie et émettre un signal si la commande est exécutée avec succès (elle a réussi à effacer une épée Diamond de l'inventaire d'un joueur).

Ce comparateur est censé déclencher un autre bloc de commande qui utilise "/ tell" pour envoyer un message à ce joueur qui a eu son Diamond Sword supprimé un message comme "Vous n'êtes pas autorisé à utiliser Diamond Swords".

Ma question est de savoir quelle commande puis-je utiliser dans le deuxième bloc de commande pour envoyer ce message uniquement aux joueurs qui ont épinglé Diamond Swords sur leur inventaire?

"/ Tell @p …" ne fonctionne pas car il sélectionne simplement le joueur le plus proche, "/ tell @r …" ciblera un joueur aléatoire et "/ tell @a …" signalera à tout le monde. Comment puis-je le faire de sorte qu'il cible la dernière cible du bloc de commande précédent (celui avec la commande / clear)?

Merci.

  • Puis-je casser la poitrine de mon apiculteur sans que mes abeilles ne se répandent?
  • Pourquoi Minecraft est-il bloqué lorsque javaw.exe atteint 757.356kb d'utilisation de mémoire?
  • Ne pas avoir un dossier .minecraft sur Windows 10 PC
  • Comment dire quand un joueur ne bouge pas?
  • Minecraft se bloque sur un système ubuntu 11.04 avec une carte vidéo EVGA GT 240 [fermé]
  • Est-ce que le port de multiples pièces d'armure de protection contre le feu empilera leurs effets?
  • 2 Solutions collect form web for “Minecraft Command Blocks Help – Sélection de la cible précédente dans un second bloc de commande”

    Vous voulez le faire avec des tableaux de bord. Ma solution n'empêchera pas les épées de diamants, mais cela empêchera de les fabriquer et de les utiliser, c'est-à-dire qu'un joueur peut avoir un épée de diamant dans leur inventaire, pourvu qu'ils ne l'utilisent jamais. La façon dont il arrive sans l'élaborer est cependant presque impossible sans triche.

    Tout d'abord, vous devez mettre en place 2 objectifs du tableau de bord, un pour l'artisanat et l'autre pour l'utilisation:

    /scoreboard objectives add craftedDiamondSword stat.craftItem.276 /scoreboard objectives add usedDiamondSword stat.useItem.276 

    Ensuite, vous devez configurer deux chaînes de commandes presque identiques, une pour chaque objectif de tableau de bord. Cela fonctionnera sur une horloge comme vous l'avez déjà. Je ne donnerai que les commandes à utiliser, alors remplacez-le dans la deuxième chaîne par l'objectif de l'artisanat.

    Tout d'abord, nettoyer les inventaires de ces joueurs:

     clear @a[score_usedDiamondSword_min=1] 276 

    Ensuite, dites aux joueurs qui ont utilisé un épée de diamant pour ne pas l'utiliser, et réinitialisez leur score:

     tell @a[score_usedDiamondSword_min=1] Don't use diamond swords! scoreboard players set @a[score_usedDiamondSword_min=1] usedDiamondSword 0 

    Ce dernier bloc de commande n'a pas vraiment besoin de [score_usedDiamondSword_min=1] mais c'est utile.

    J'ai obtenu que cela fonctionne dans une seule ligne de blocs de commande avec Redstone sur le dessus pour la chaîne d'utilisation, mais cela ne fonctionnerait pas pour l'artisanat. La solution consiste à canaliser le résultat du bloc de commande clair dans les blocs de commandes Tell et setboardboard avec des comparateurs. Voici une image des deux configurations:

    Diamond Sword clearer

    Utilisez l'horloge que vous voulez.

    En outre, si vous ne voulez jamais que les joueurs aient un épée diamantée, même dans leur inventaire, et même s'ils ne l'utilisent pas, vous pouvez toujours effacer de @a , puis say simplement de ne pas utiliser d'épées de diamant si l'on est a trouvé.


    Mise à jour pour la fonctionnalité 1.8 ajoutée:

    Les 1.8 snapshots ont ajouté l'option de faire correspondre les joueurs à l'étiquette de l' Inventory NBT lors du réglage ou de l'incrémentation d'un objectif de tableau de bord. Cela signifie que nous pouvons configurer un objectif de tableau de bord fictif pour suivre chaque fois que quelqu'un a une épée de diamant dans leur inventaire, peu importe s'ils l'ont utilisé ou travaillé. Tout d'abord, configurez l'objectif du tableau de bord:

     /scoreboard objectives add hasDiamondSword dummy 

    Ensuite, nous devons exécuter deux blocs de commande sur la même horloge; Un pour définir les scores des joueurs, et un autre pour vérifier les scores de ces joueurs et effacer les épées du diamant:

     scoreboard players add @a hasDiamondSword 1 {Inventory:[{id:"minecraft:diamond_sword"}]} clear @a[score_hasDiamondSword_min=1] minecraft:diamond_sword 

    La deuxième commande est assez similaire aux anciennes commandes, sauf au lieu d'utiliser l'ancien numéro d'identification, j'utilise le nom à la place. La première est un peu plus compliquée, alors passons à travers elle. Fondamentalement, il dit ajouter à tous les joueurs sur leur objectif hasDiamondSword la valeur 1 si ce joueur a un inventaire et cet inventaire contient un épée diamant. Donc, pour toute personne ayant un épée diamant dans leur inventaire, leur objectif hasDiamondSword sera incrémenté.

    Enfin, comme dans l'ancienne version, nous devons tell aux joueurs de ne pas utiliser les épées de diamant et de réinitialiser leur objectif hasDiamondSword :

     tell @a[score_hasDiamondSword_min=1] Don't use diamond swords! scoreboard players set @a[score_hasDiamondSword_min=1] hasDiamondSword 0 

    J'ai empilé ces deux blocs de commandes (avec le tell on bottom) et je les ai alimentés avec un comparateur à partir du bloc de commande clear . C'est à quoi ressemble tout à la fin:

    Configuration du bloc de commande

    Je ne suis pas sûr, mais il me semble que vous pourriez aviser tous les joueurs d'un épingle diamant, puis supprimer toutes les épées diamantées. Je ne l'ai pas testé mais

     tell @a {Inventory:[{id:"minecraft:diamond_sword"}]} Don't use diamond swords! 

    Et seulement alors

     clear @a diamond_sword