Minecraft Wiki
Advertisement
Diese Seite enthält Inhalte, die nur in veralteten Versionen von Minecraft existieren.
Diese Funktion war früher im Spiel vorhanden, wurde aber inzwischen entfernt.
Nutzbarkeit
 Einzelspieler ja
 Mehrspieler ja
 Cheat ja, 2
 Befehlsblock ja

/stats verknüpft Befehlsquellen mit Punkteständen. Jedesmal wenn dann die Befehlsquelle einen Befehl ausführt, setzt das den entsprechenden Punktestand in der Anzeigetafel.

Syntax[]

/stats <Befehlsquelle> <Verknüpfung>

  • Folgende Befehlsquellen können für die Verknüpfung ausgewählt werden:
entity <Spieler oder Objekt> Wenn ein Spieler als Befehlsquelle verknüpft werden soll, wird der Spielername angegeben. Auch eine Zielauswahl ist möglich. Dann wird die Befehlsausführung aller betroffenen Spieler mit dem Punktestand verknüpft. Über die Zielauswahl kann auch eine Befehlsblocklore verknüpft werden, denn sie ist ein bewegliches Objekt. Schließlich ist der Befehl /execute besonders zu beachten: die Befehlsquelle ist in diesem Fall immer das von /execute angesprochene Objekt (z.B. Spieler oder Kreatur), nicht der Ort, wo der Befehl /execute hinterlegt ist.
block <x y z> x y z sind die Koordinaten des Blockes, der eine Befehlsquelle ist (nur möglich für Befehlsblock oder Schild). Wird ein "~" vor eine Koordinate geschrieben, ist der Koordinatenwert nicht absolut, sondern relativ zu der Position die den /stats-Befehl ausführt (Spieler oder Befehlsblock), wobei deren Standort ~0 ~0 ~0 mit ~ ~ ~ abgekürzt werden kann. Für die Höhe y sind nur Werte zwischen 0 und 255 möglich. zu beachten ist, dass der Befehl /execute nicht durch den Block ausgeführt wird, in dem er hinterlegt ist, sondern durch das Objekt, das er anspricht.
  • Für die Verknüpfung mit einem Punktestand sind folgende Eingaben möglich:
set <Statistik> <Spieler oder Objekt> <Ziel> •  Folgende Statistiken können in einen Punktestand geschrieben werden. Es ist auch möglich, gleichzeitig verschiedene Statistiken desselben Befehls mit verschiedenen Punkteständen zu verknüpfen (z.B. AffectedBlocks und SuccessCount):
AffectedBlocks Jeder blockverändernde Befehl, den die Befehlsquelle ausführt, setzt den Punktestand auf die Anzahl der veränderten Blöcke. Befehle, die keine Blöcke verändern können, haben keine Auswirkung auf den Punktestand, setzen ihn also auch nicht auf 0. Blockverändernde Befehle sind z.B. der Befehl /blockdata, Befehl /clone, Befehl /fill, Befehl /setblock, Befehl /testforblock und Befehl /testforblocks.
AffectedItems Jeder gegenstandverändernde Befehl, den die Befehlsquelle ausführt, setzt den Punktestand auf die Anzahl der veränderten Gegenstände. Befehle, die keine Gegenstände verändern können, haben keine Auswirkung auf den Punktestand, setzen ihn also auch nicht auf 0. Gegenstandverändernde Befehle sind z.B. der Befehl /clear, Befehl /give und Befehl /replaceitem.
AffectedEntities Jeder objektverändernde Befehl, den die Befehlsquelle ausführt, setzt den Punktestand auf die Anzahl der veränderten Objekte. Befehle, die keine Objekte verändern können, haben keine Auswirkung auf den Punktestand, setzen ihn also auch nicht auf 0. Viele Befehle sind objektverändernd, z.B. alle die auf Spieler wirken.
QueryResult Jeder Befehl, der einen Wert abfragt, setzt den Punktestand auf diesen Wert. Befehle, die keine Werte abfragen, haben keine Auswirkung auf den Punktestand, setzen ihn also auch nicht auf 0. Wertabfragende Befehle sind z.B. der Befehl /time query daytime, Befehl /time query gametime, Befehl /worldborder get, Befehl /xp und Befehl /gamerule.

Der Befehl /xp addiert nicht nur Erfahrungspunkte oder -level, sondern liefert gleichzeitig auch das Ergebnis als QueryResult (Beispiel siehe unten).

Der Befehl /gamerule Regelname liefert den aktuellen Wert einer Grundeinstellung, den man in einen Punktestand schreiben kann. Dies ist insbesondere für Pseudo-Grundeinstellungen gedacht (siehe Befehl /gamerule Freitext). Allerdings lässt sich das auch weniger umständlich lösen (Beispiel siehe unten).

SuccessCount Jeder Befehl, den die Befehlsquelle erfolgreich ausführt, setzt den Punktestand auf 1 (Oder höher, wenn beispielsweise nach mehreren Objekten gesucht wird). Jeder Befehl, den die Befehlsquelle ohne Erfolg ausführt, setzt den Punktestand auf 0. Am Punktestand kann man also immer den Erfolg des zuletzt ausgeführten Befehls dieser Befehlsquelle ablesen.

•  Spieler oder Objekt ist ein Spielername, für den der Punktestand verändert werden soll. Ebenso ist auch ein Anzeigetafel-Zähler möglich.
•  Ziel ist der Name des Punktestandes, der verändert werden soll.

clear <Statistik> durch Angabe der Statistik (mögliche Auswahl siehe oben) wird die Verknüpfung zwischen der Befehlsquelle und der Anzeigetafel wieder gelöst.

Zur Eingabe eines Befehls siehe Befehl#Eingabe.

Beispiele[]

Für alle nachfolgenden Beispiele wird in der Anzeigetafel ein Zähler namens "ZZZ" und ein Ziel (Punktestand) namens "PPP" angelegt:
/scoreboard objectives add PPP dummy
  legt das Ziel "PPP" an.
/scoreboard players set ZZZ PPP 0
  legt den Zähler "ZZZ" an, indem seine Punkte "PPP" auf 0 gesetzt werden. Statt eines Zählers kann aber auch z.B. die Zielauswahl @p verwendet werden. Das setzt den Punktestand PPP des jeweils nächststehenden Spielers. Dann müsste das Anlegen des Punktestandes für alle Spieler mit /scoreboard players set @a PPP 0 geschehen.

/stats entity oyo123 set SuccessCount ZZZ PPP
  verknüpft den Spieler oyo123 als Befehlsquelle mit dem Punktestand PPP von Zähler ZZZ.
  • Sobald oyo123 irgendeinen Befehl erfolgreich in die Chat-Konsole eingibt, z.B. /say hallo, wird PPP von Zähler ZZZ auf 1 gesetzt.
  • Gibt oyo einen Befehl erfolglos ein, z.B. weil er sich vertippt (/yay hallo), wird PPP von Zähler ZZZ auf 0 gesetzt.
  • Auch wenn ein /execute-Befehl für oyo123 erfolgreich ausgeführt wird, z.B. /execute oyo123 ~ ~ ~ /say ich grüße euch, wird PPP von Zähler ZZZ auf 1 gesetzt.
/stats entity @e[type=rabbit,r=10] set SuccessCount ZZZ PPP
  verknüpft alle Kaninchen im Umkreis von 10 Blöcken als Befehlsquelle mit dem Punktestand PPP von Zähler ZZZ.
  • Sobald ein /execute-Befehl für ein verknüpftes Kaninchen ausgeführt wird, z.B. /execute @e[type=rabbit] ~ ~ ~ /setblock ~ ~-1 ~ air, wird PPP von Zähler ZZZ auf 1 gesetzt. Kann der Befehl für das Kaninchen nicht ausgeführt werden (z.B. weil es auf einer Kante sitzt und unter ihm ist schon Luft), wird PPP von Zähler ZZZ auf 0 gesetzt. Auch bei vielen Kaninchen kann nur 1 oder 0 herauskommen, je nachdem ob der Befehl für das letzte Kaninchen erfolgreich war oder nicht.
/stats entity @e[type=commandblock_minecart,x=50,y=64,z=-20] set SuccessCount ZZZ PPP
  verknüpft die Befehlsblocklore an der Position 50/64/-20 als Befehlsquelle mit dem Punktestand PPP von Zähler ZZZ.
  • Sobald die Befehlsblocklore irgendeinen Befehl erfolgreich ausgeführt hat, z.B. /say ich bin eine Lore, wird PPP von Zähler ZZZ auf 1 gesetzt.
/stats block ~ ~-2 ~ set AffectedBlocks ZZZ PPP
  verknüpft den Befehlsblock, der sich in diesem Beispiel 2 Blöcke über dem /stats-Befehl befindet, als Befehlsquelle mit dem Punktestand PPP von Zähler ZZZ.
  • Wenn der Befehlsblock einen Befehl enthält, der Blöcke verändert oder prüft, z.B. /clone ~1 ~ ~ ~5 ~ ~ ~10 ~ ~ masked (kopiert 5 Blöcke ohne Luft), wird PPP von Zähler ZZZ auf die Anzahl der Blöcke gesetzt. Wenn im Beispiel alle 5 Blöcke existieren, wäre das Ergebnis 5. Wären 2 davon Luft, wäre das Ergebnis 3 (weil masked verwendet wird).
/stats block ~ ~-2 ~ set AffectedEntities ZZZ PPP
  verknüpft das Schild, das sich in diesem Beispiel 2 Blöcke über dem /stats-Befehl befindet, als Befehlsquelle mit dem Punktestand PPP von Zähler ZZZ.
  • Wenn das Schild mit einem Befehl programmiert wurde, der Objekte verändert oder prüft, z.B. /testfor @e[type=creeper,r=20] (prüft ob in einem Umkreis von 20 Blöcken Creeper existieren), wird PPP von Zähler ZZZ auf die Anzahl der Objekte gesetzt.
/stats block ~ ~-2 ~ set QueryResult @p PPP
  verknüpft den Befehlsblock, der sich in diesem Beispiel 2 Blöcke über dem /stats-Befehl befindet, als Befehlsquelle mit dem Punktestand PPP des nächstgelegenen Spielers.
  • Wenn der Befehlsblock den Befehl /xp 0 @p enthält, werden dem nächstgelegenen Spieler 0 Erfahrungspunkte addiert und gleichzeitig der aktuelle Stand seiner Erfahrungspunkte als QueryResult geliefert. Durch die /stats-Verknüpfung werden sie in den Punktestand PPP des Spielers geschrieben. Enthält der Befehlsblock dagegen den Befehl /xp 0L @p, werden dem nächstgelegenen Spieler 0 Erfahrungslevel addiert und gleichzeitig der aktuelle Stand seiner Erfahrungslevel als QueryResult geliefert.


Beispiel für QueryResult mit Pseudo-Grundeinstellungen:
In diesem Beispiel soll geprüft werden, ob ein Spieler schon in Kammer 23 war oder nicht.
/scoreboard objectives add Kammer23 dummy
  legt den Punktestand "Kammer23" an.
/scoreboard players set @a Kammer23 0
  setzt für alle Spieler den Punktestand "Kammer23" auf 0.
/gamerule Schatzkammer-23-erreicht 1
  belegt die Pseudo-Grundeinstellung "Schatzkammer-23-erreicht" mit dem Wert 1.
/stats block ~ ~2 ~ set QueryResult @p Kammer23
  verknüpft den Befehlsblock, der sich hier 2 Blöcke über dem /stats-Befehl befindet, als Befehlsquelle mit dem Punktestand "Kammer23" des nächstgelegenen Spielers @p.
/gamerule Schatzkammer-23-erreicht
  dieser Befehl muss in dem Befehlsblock, der sich 2 Blöcke über dem /stats-Befehl befindet, hinterlegt sein. Sobald ein Spieler diesen Befehlsblock aktiviert (z.B. durch eine Druckplatte), wird der Befehl ausgeführt. Das Ergebnis ist "1", weil dies als Pseudo-Grundeinstellung so festgelegt wurde. Dieses Ergebnis wird in den Punktestand "Kammer23" des nächstgelegenen Spielers geschrieben, weil der Befehlsblock mit seinem Punktestand verknüpft wurde.
/testfor @p[score_Kammer23_min=1]
  wenn der Spieler die Tür zu Kammer 24 öffnen will, fragt ein Befehlsblock zuerst seinen Punktestand für Kammer 23 ab. Nur wenn dieser mindestens 1 beträgt, wird die Tür geöffnet.

Es geht aber auch einfacher: Statt der drei Befehle
/gamerule Schatzkammer-23-erreicht 1
/stats block ~ ~2 ~ set QueryResult @p Kammer23
/gamerule Schatzkammer-23-erreicht
kann man einfach folgenden Befehl verwenden:
/scoreboard players set @p Kammer23 1
Das heißt, die Pseudo-Grundeinstellungen des /gamerule-Befehls scheinen überflüssig zu sein, sie werden im Spiel nicht benötigt. Statt das Ergebnis des /gamerule-Befehls mit einem Punktestand zu verknüpfen, kann man den gewünschte Wert auch direkt in den Punktestand schreiben.

Geschichte[]

Versionsgeschichte der Java Edition
Vollversion 1.8 (14w28a)
  • Der Befehl /stats wird hinzugefügt
Vollversion 1.13 (17w45a)
  • Der Befehl /stats wurde entfernt. Mit dem Befehl /execute store kann ein ähnliches Verhalten erreicht werden

Advertisement