Das offizielle Minecraft Wiki twittert hier: Wiki-Twitter     Noch keinen Server gefunden? Es gibt einen Wiki-Server
Nicht die Technik gefunden, die du suchst ? Dann schlag sie vor: Gemeinschaftsportal

We have begun migration of most wikis to our new host, Amazon Web Services. All but the top 100 wikis are in read-only mode until the migration is complete. Estimated completion: TBD -- Update: Fri 10/20 11pm UTC - We have encountered some unexpected issues. Our staff is working around the clock to complete this process as quickly as possible. Thank you for your patience.

Maschinen/Befehlerstell-System (Befehle)

Aus Technik Wiki
Wechseln zu: Navigation, Suche
Gruppe: Grid Trichter.png
Maschinen

Grid Roter Sand blass.png mit Mechaniken

Grid Redstone blass.png mit Redstone
                Hier:
Grid Befehlsblock.png mit Befehlen

Die vorgestellte Technik kann in der Mechanik-Welt angesehen werden.
Disambig color.svg

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-Befehle 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-Operatoren 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.

Inhaltsverzeichnis

Variante 1[Bearbeiten | Quelltext bearbeiten]

Maschinen Befehlerstell-System (Befehle) Animation 1.1.1.png 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[B1.1] sorgt dafür das das Punktestand-Ziel "Befehl1" erstellt wird, der zweite Befehl[B1.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[B1.3] gibt allen Spielern die noch nicht das Etikett "Schreiben" besitzen hinzu. Der vierte Befehl[B1.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[B1.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.


Befehlsblöcke mit Befehlen:

/scoreboard objectives add Befehl1 dummy
/scoreboard players set @a[tag=!Schreiben1] Befehl1 0
/scoreboard players tag @a[tag=!Schreiben1] add Schreiben1
/replaceitem entity @a[score_Befehl1_min=1] slot.hotbar.4 minecraft:writable_book 1 0
/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[B1.6] 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[B1.7] 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.


Befehlsblöcke mit Befehlen:

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

Variante 2[Bearbeiten | Quelltext bearbeiten]

Maschinen Befehlerstell-System (Befehle) Animation 2.1.1.png 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[B2.1][B2.2][B2.3][B2.4] 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[B2.5] erstellt. Dann kommt der Ketten-Befehlsblock mit dem Befehl[B2.6] der dem Spieler ein Befehlsbuch gibt. Der nächste Befehl[B2.7] 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[B2.8]. Nun erklingt bei jedem Spieler noch ein Ton, um zu signalisieren, dass der eigene Befehl den man eingibt erfolgreich war[B2.9].


Befehlsblöcke mit Befehlen:

/testfor @r[tag=Schreiben2] {Inventory:[{Slot:5b,id:"minecraft:writable_book",tag:{pages:["/"] } } ] }
/testforblock ~ ~-1 ~ repeating_command_block -1 {SuccessCount:0}
/scoreboard players tag @a[tag=Schreiben2] remove Schreiben2
/scoreboard players tag @a[score_Befehl2_min=1] remove Schreiben2
/scoreboard objectives add Befehl2 dummy
/replaceitem entity @a[tag=!Schreiben2] slot.hotbar.5 minecraft:writable_book 1 0 {pages:["/"],display:{Name:Befehlsbuch,Lore:["Gib hier Befehle ein"] } }
/scoreboard players set @a[tag=!Schreiben2] Befehl2 0
/scoreboard players tag @a[tag=!Schreiben2] add Schreiben2 {Inventory:[{Slot:5b,id:"minecraft:writable_book",tag:{pages:["/"] } } ] }
/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[B2.10][B2.11]. 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[B2.12][B2.13]. 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.


Befehlsblöcke mit Befehlen:

/scoreboard players set @a[tag=Schreiben2] Befehl2 1 {Inventory:[{Slot:5b,id:"minecraft:writable_book",tag:{pages:["/Wiki"] } } ] }
/scoreboard players set @a[tag=Schreiben2] Befehl2 1 {Inventory:[{Slot:5b,id:"minecraft:writable_book",tag:{pages:["/w"] } } ] }
/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"} }
/give @a[tag=Schreiben2,score_Befehl2_min=1,score_Befehl2=1] diamond_block 1