Technik Wiki
Advertisement
Gruppe: Unbekannter Gruppenname
[[]]

Grid Roter Sand blass mit Mechaniken

Grid Redstone blass mit Redstone
                Hier:
Grid Befehlsblock mit Befehlen
Verfügbar in:
Wiki Mechanik-Welt Mechanik-Welt

Eigene Befehle kann man nicht direkt in der Chatleiste von Minecraft schreiben, man kann jedoch in einem Geschrieben Buch abfragen was ein Spieler dort hineinschreibt. Dazu wird dann ein Befehlsblock-Mechanismus genommen der jeden Tick abfragt ob der Spieler etwas hineingeschrieben hat. Darauf aufbauend, kann man dann auch abfragen ob er bestimmte Buchstabenkombinationen verwendet hat, sprich Kodewörter oder vereinfacht, Befehle. Bestimmte Minecraft-Vorlage:Dee sind relativ lang (Beispiel: Der Befehl /gamerule commandBlockOutput false ) und wenn man diese häufig nutzen will, kann es als störend angesehen werden, wenn man diese immer wieder komplett eingeben muss. Natürlich kann man mit der Taste die schon zuvor eingegebenen Befehle erneut abrufen, aber bei einer größeren Anzahl an Befehlen kann auch das Durchsuchen der schon eingegebenen Befehle lästig sein. Es gibt zwar auch noch die Methode der Autovervollständigung, aber auch dies muss mit größeren Aufwand betrieben werden. Deswegen kann man mit Hilfe dieser Methode die Befehle beliebig verkürzen und obendrein auch noch vielseitiger gestalten. So kann man auch einen speziellen Gegenstand der die verschiedensten JSON-Formatierungen besitzt mit nur einen kleinen Wort als Befehl gegeben werden. Die einzige Frage stellt sich jetzt, warum ein programmierbares Buch erstellen, statt ein Buch mit einer Vielzahl an JSON-Formatierungen die einen beim Anklick das gleiche geben könnte? Hier ist der Vorteil ein ganz essentieller, möchte man beispielsweise auf einem Server dafür sorgen dass auch Nicht-Vorlage:Deen Befehle ausführen dürfen, so kann man das mit diesen Befehlsbuchsystem erreichen, oder möchte man weitere Befehle einbauen, braucht man nur diesen als neue Befehlsblöcke aufzustellen und die Punktestandsnummer zu ändern, dann ist das Befehlsbuch bereit. Beim formatierten Buch muss man den gesamten Befehl für dieses Buch nochmal komplett aus dem Befehlsblock holen, ihn bearbeiten und ihn neu abspeichern und dann ist es auch nicht möglich dass Nicht-Operatoren solche Befehle ausführen können.

Variante 1

Datei:Maschinen Befehlerstell-System (Befehle) Animation 1.1.1.png Datei:Maschinen Befehlerstell-System (Befehle) Animation 1.1.2.png

Auf dem Bild kann man eine 5 Block hohe Befehlsblocksäule sehen und daneben noch eine 2 hohe Befehlsblockreihe. Die erste 5 Block hohe Säule sorgt dafür, dass wenn der Spieler einen benutzerdefinierten Befehl ausführt, das Buch wieder komplett leer ist und der Spieler wieder in Ausgangsstellung von den Punkteständen gebracht wird. Diese Säule beinhaltet folgende Befehle: Der erste Befehl[B 1 1] sorgt dafür das das Punktestand-Ziel "Befehl1" erstellt wird, der zweite Befehl[B 1 2] setzt jedem Spieler der nicht das Etikett "Schreiben" besitzt den Punktestand auf null (Damit entsprechend Punktestände für schon ausgeführte Befehle wieder beim Spieler zurückgesetzt werden). Der nächste Befehl[B 1 3] gibt allen Spielern die noch nicht das Etikett "Schreiben" besitzen hinzu. Der vierte Befehl[B 1 4] gibt anschließend jedem Spieler der den Punktestand von mindestens eins hat ein neues Buch in den Slot 4. Da man nur durch das Schreiben von Befehlen in das Buch einen Punktestand höher als null bekommt. Der fünfte und letzte Befehl[B 1 5] entfernt das Etikett "Schreiben" wieder, damit der Kreislauf geschlossen ist und diese Spieler die davon betroffen sind, sofort wieder beim zweiten Befehl erfasst werden können.

Befehle für die Konfiguration:

  1. Befehl /scoreboard objectives add Befehl1 dummy
  2. Befehl /scoreboard players set @a[tag=!Schreiben1] Befehl1 0
  3. Befehl /scoreboard players tag @a[tag=!Schreiben1] add Schreiben1
  4. Befehl /replaceitem entity @a[score_Befehl1_min=1] slot.hotbar.4 minecraft:writable_book 1 0
  5. Befehl /scoreboard players tag @a[score_Befehl1_min=1] remove Schreiben1

Nun möchte man nach der Konfiguration auch eigene Befehle schreiben, dazu nimmt man außerhalb der fünf Block hohen Säule einen Wiederhol-Befehlsblock mit Ketten-Befehlsblock (minimalste Ausführung). Der Wiederhol-Befehlsblock wird mit dem Befehl[B 2 1] ausgestattet. Der prüft nun nach dem selbst eingegebenen Befehl. Dort wird der Name des Befehls festgelegt und dort wird auch der Punktestand festgelegt, welchen dieser bestimmte Befehl tragen soll. Denn nun darf kein anderer eigener Befehl diesen Punktestand auch auf den Spieler übertragen. Nun wird der Ketten-Befehlsblock im bedingten Modus mit dem Befehl[B 2 2] ausgestattet. Hier kommt der Befehl rein, der durch den eigenen Befehl ausgelöst werden soll. Dabei kann man alle Befehle nutzen die einem zur Verfügung stehen. Man könnte auch mehrere Befehle damit auslösen. Man kann aber auch mit mehreren eigenen Befehlen das gleiche auslösen. Das steht jedem frei, so wie er gerne es hätte. In diesen Beispiel muss man in ein Buch das Wort "/Befehlsblock" eingeben, damit man anschließend einen erhält.

Befehle für die eigenen Befehle:

  1. Befehl /scoreboard players set @a[tag=Schreiben1] Befehl1 1 {Inventory:[{Slot:4b,id:"minecraft:writable_book",tag:{pages:["/Befehlsblock"] } } ] }
  2. Befehl /give @a[score_Befehl1_min=1,score_Befehl1=1,tag=Schreiben1] command_block

Variante 2

Datei:Maschinen Befehlerstell-System (Befehle) Animation 2.1.1.png Datei:Maschinen Befehlerstell-System (Befehle) Animation 2.1.2.png

Die Variante 1 prüft nur was der Spieler ins Buch geschrieben hat, kann aber nicht das Buch erneuern, falls dieses verloren geht oder im Kreativmodus aus versehen gelöscht wird. Genauso kann sie auch nicht mit verschiedenen Befehlen die das gleiche auslösen sollen, zurecht kommen. Dazu wird die Variante 2 verwendet. Diese besitzt auch eine Konfigurationssäule. In der werden vier Befehle[B 3 1] von unten nach oben ausgelöst. Diese prüfen ob ein zufälliger Spieler in seinem Inventar das "Befehlsbuch" enthält, welches mit der Textzeile "/" beginnt. Wenn dies vorhanden ist, wird der Ketten-Befehlsblock feststellen, dass der Wiederhol-Befehlsblock unter ihm, den Befehl erfolgreich ausführen konnte und so, wird er selbst nicht erfolgreich sein, bei seiner Suche nach einem fehlgeschlagenen Wiederhol-Befehlsblock sein. Der dritte Befehlsblock im bedingten Modus nimmt allen Spielern das Etikett "Schreiben2" weg. Der vierte Befehlsblock in der Kette nimmt allen Spielern, die den Punktestand von "Befehl2" über den Wert von eins haben, das Etikett "Schreiben2" ebenfalls weg.

Darüber wird der Befehl [B 3 2] erstellt. Dann kommt der Ketten-Befehlsblock mit dem Befehl [B 3 3] der dem Spieler ein Befehlsbuch gibt. Der nächste Befehl [B 3 4] setzt den Punktestand von jeden Spieler der das Etikett "Schreiben2" nicht hat auf null. Danach bekommt jeder Spieler der das Etikett "Schreiben2" nicht hat dieses Etikett mit dem Befehl [B 3 5]. Nun erklingt bei jedem Spieler noch ein Ton, um zu signalisieren, dass der eigene Befehl den man eingibt erfolgreich war [B 3 6].

Befehle für die Konfiguration:

  1. Befehl /testfor @r[tag=Schreiben2] {Inventory:[{Slot:5b,id:"minecraft:writable_book",tag:{pages:["/"] } } ] }
    Befehl /testforblock ~ ~-1 ~ repeating_command_block -1 {SuccessCount:0}
    Befehl /scoreboard players tag @a[tag=Schreiben2] remove Schreiben2
    Befehl /scoreboard players tag @a[score_Befehl2_min=1] remove Schreiben2
  2. Befehl /scoreboard objectives add Befehl2 dummy
  3. Befehl /replaceitem entity @a[tag=!Schreiben2] slot.hotbar.5 minecraft:writable_book 1 0 {pages:["/"],display:{Name:Befehlsbuch,Lore:["Gib hier Befehle ein"] } }
  4. Befehl /scoreboard players set @a[tag=!Schreiben2] Befehl2 0
  5. Befehl /scoreboard players tag @a[tag=!Schreiben2] add Schreiben2 {Inventory:[{Slot:5b,id:"minecraft:writable_book",tag:{pages:["/"] } } ] }
  6. Befehl /execute @a[score_Befehl2_min=1] ~ ~ ~ /playsound entity.player.levelup voice @a[tag=Schreiben2,r=0] ~ ~ ~ 0.2 2

Nun müssen auch die eigenen Befehle programmiert werden, hierbei nimmt man aber gleich mehrere Befehlswörter für den gleichen Befehl[B 4 1]. Dazu geben beide Befehlswörter dem Spieler den gleichen Punktestand. Damit nun auch mehrere Befehle mit dem gleichen Befehlswort ausgelöst werden können, muss man mehrere Befehlen auch die gleiche Auslösesequenz geben, sprich den gleichen Punktestand[B 4 2]. In dem Beispiel gibt man "/Wiki" oder "/w" ein um einen Link ins Minecraft Wiki zu bekommen und um 1 Diamantblock zu erhalten. Das ganze mit nur einen eigenen Befehl. Wichtig ist dabei, dass man den Hebel an der Konfigurationssäule als letztes umlegt, da diese Befehle als letztes ausgeführt werden müssen, denn sonst funktioniert das System nicht.

Befehle für die eigenen Befehle:

  1. Befehl /scoreboard players set @a[tag=Schreiben2] Befehl2 1 {Inventory:[{Slot:5b,id:"minecraft:writable_book",tag:{pages:["/Wiki"] } } ] }
    Befehl /scoreboard players set @a[tag=Schreiben2] Befehl2 1 {Inventory:[{Slot:5b,id:"minecraft:writable_book",tag:{pages:["/w"] } } ] }
  2. Befehl /tellraw @a[tag=Schreiben2,score_Befehl2_min=1,score_Befehl2=1] {"text":" \u00a7aZur Wiki-Seite: \u00a7e'Minecraft Wiki'","color":"green","hoverEvent":{"action":"show_text","value":"Klick mich!"},"clickEvent":{"action":"open_url","value":"http://minecraft-de.gamepedia.com/Minecraft_Wiki"} }
    Befehl /give @a[tag=Schreiben2,score_Befehl2_min=1,score_Befehl2=1] diamond_block 1
Advertisement