Wie gehe ich auf Spieler, die von / testfor gefunden wurden?

Normalerweise bin ich gut in Befehlsblöcken, aber ich habe eine Straßensperre getroffen.
Ich benutze einen Test für Befehl:

/testfor @a {Inventory: [{id:minecraft:leather_boots,Damage:0s,Count:1b,Slot:100b}, {id:minecraft:leather_leggings,Damage:0s,Count:1b,Slot:101b}, {id:minecraft:leather_chestplate,Damage:0s,Count:1b,Slot:102b}, {id:minecraft:leather_helmet,Damage:0s,Count:1b,Slot:103b}]} 

Für ein kleines Attentäter-Kit, weißt du? Wie auch immer, ich möchte, dass die Person mit dieser Rüstung eine Geschwindigkeit hat und springt, wie kann ich die gleiche Person oder mehr mit den Effekten bekommen? Beachten Sie auch, dass ich keine Leute ohne den Satz mit den Effekten will.

  • Minecraft Inventory Saving
  • Wie schaffe ich unzerbrechliche Blöcke?
  • Wie teste ich, ob alle Minecraft-Spieler auf einem Server im Radius sind?
  • Wie wähle ich zwei Arten von Entitäten in Minecraft mit dem Typwähler aus?
  • Rüstung nicht bieten Rüstung Bars / Schutz
  • Zufälliger Spawn für Multiplayer Minecraft Server
  • One Solution collect form web for “Wie gehe ich auf Spieler, die von / testfor gefunden wurden?”

    Der /testfor Befehl ist im Wesentlichen nutzlos in der Erfüllung, dass, da alles, was Sie bietet, ist, ob es ein Spiel gab.

    Sie müssen stattdessen den Befehl /scoreboard , um ein Etikett für Ziele zuzuweisen, die mit NBT-Daten übereinstimmen, und Sie können dann in der Lage sein, sie auf der Grundlage des Etiketts in anderen Befehlen zu zielen. Sie können entweder eine Partitur oder ein "Tag" verwenden.

    Ergebnis

    Sie müssen zuerst ein Ziel erstellen, um die Noten zu halten. Sie würden das ein einziges Mal im Chat laufen lassen:

     /scoreboard objectives add assassinKit dummy 

    Sie können dann folgendes auf einer Uhr verwenden, die zuerst die "assassinKit" -Preis des Spielers standardmäßig auf 0 setzt, falls sie die Rüstung ausschalten und dann auf 1 setzen, wenn sie noch das jeweilige Rüstungsset tragen:

     /scoreboard players set @a[score_assassinKit_min=1] assassinKit 0 /scoreboard players set @a assassinKit 1 {Inventory:[{id:minecraft:leather_boots,Damage:0s,Count:1b,Slot:100b},{id:minecraft:leather_leggings,Damage:0s,Count:1b,Slot:101b},{id:minecraft:leather_chestplate,Damage:0s,Count:1b,Slot:102b},{id:minecraft:leather_helmet,Damage:0s,Count:1b,Slot:103b}]} 

    Und schließlich, Ziel sie auf der Grundlage ihrer Punktzahl:

     /say Players wearing the assassin kit: @a[score_assassinKit_min=1] /effect @a[score_assassinKit_min=1] minecraft:speed 

    Tag

    Ein "Tag" ist ein sehr einfaches String-Label, das kein Ziel erfordert und wird auf dem Ziel unter einer Liste von anderen "Tags" gespeichert. Gleich wie vorher und auf einer Uhr, würdest du es zuerst standardmäßig entfernen und es dann erneut anwenden:

     /scoreboard players tag @a[tag=assassinKit] remove assassinKit /scoreboard players tag @a add assassinKit {Inventory:[{id:minecraft:leather_boots,Damage:0s,Count:1b,Slot:100b},{id:minecraft:leather_leggings,Damage:0s,Count:1b,Slot:101b},{id:minecraft:leather_chestplate,Damage:0s,Count:1b,Slot:102b},{id:minecraft:leather_helmet,Damage:0s,Count:1b,Slot:103b}]} 

    Und schließlich, Ziel sie auf ihrem Tag:

     /say Players wearing the assassin kit: @a[tag=assassinKit] /effect @a[tag=assassinKit] minecraft:speed 

    Der Nachteil von Tags im Vergleich zu Scores ist die erhöhte Schwierigkeit bei der Ausrichtung auf etwas basiert auf mehreren Tags. Alle Selector-Parameterschlüssel müssen eindeutig sein, also @e[tag=1,tag=2] funktioniert nicht (Auswahl nur Spieler mit der zuletzt angegebenen eindeutigen Taste). Sie müssten stattdessen ein weiteres Tag (oder Score) auf der Grundlage der Ziel- Tags NBT-Liste hinzufügen:

     /scoreboard players tag @a[tag=hasMultipleTags] remove hasMultipleTags /scoreboard players tag @a[tag=tag1] add hasMultipleTags {Tags:["tag2","tag3"]} /say Players with tags "tag1", "tag2", and "tag3": @a[tag=hasMultipleTags]