Das offizielle Minecraft Wiki twittert hier: Wiki-Twitter  –  Chatte im Wiki-Discord  – Noch keinen Server gefunden? Es gibt einen Wiki-Server

Speicherzelle (Befehle)

Aus Technik Wiki
Wechseln zu: Navigation, Suche
Gruppe: Grid Redstone-Fackel.png
Schaltkreise

Grid Roter Sand blass.png mit Mechaniken

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

Die vorgestellte Technik kann in der Redstone-Welt angesehen werden.

Eine Speicherzelle kann bestimmte Werte speichern. Sei es boolesche Wahrheitswerte oder Aufzählungszustandswerte.

NOR-Latch[Bearbeiten | Quelltext bearbeiten]

Redstone-Schaltkreise Symbol.png
Diese neue oder überarbeitete Technik ist noch nicht in der aktuellen Redstone-Welt vorhanden.
In einem der nächsten Updates wird sie dort hinzugefügt werden.

Speicherzelle (Befehle) Bild 1.1.png

Die NOR-Latch-Speicherzelle speichert den aktuellen Wahrheitswert in einem Rüstungsständer. Sein Name wird in die zwei möglichen Werte "wahr" oder "falsch" geändert, wenn man auf die Chat-Nachrichten klickt.

Einschalten
  • Befehl 1.1 Das Punktestand-Ziel für das Auslösen von Klicks im Chat wird erstellt.
  • Befehl 1.2 Ein Rüstungsständer wird erzeugt, welcher die Wahrheitswerte in seinem Anzeige-Namen speichern kann.
Wiederholen
  • Befehl 1.3 Wenn ein Spieler den Auslöser mit dem Wert eins aktiviert hat, so bekommt der Rüstungsständer den Wert "wahr" zugewiesen.
  • Befehl 1.4 Umgekehrt bekommt der Rpüstungsständer beim Wert zwei den Wert "falsch" zugewiesen.
  • Befehl 1.5 Wenn eingeschaltet wird, dauert es einen Tick bis der Rüstungsständer vorhanden ist, deshalb wird nach diesem geprüft und nur wenn er existiert, bekommen alle Spieler eine Chat-Nachricht, sofern sie nicht den Wert null besitzen. Das betrifft Spieler die schonmal auf den Auslöser getippt haben genauso wie die, die noch nie den Auslöser angeklickt haben und somit keinen Wert besitzen. Die Chat-Nachricht zeigt die möglichen Werte die angenommen werden können und den aktuellen Wert. Auf diese kann man klicken um den Auslöser zu aktivieren.
  • Befehl 1.6 Spieler erhalten die Berechtigung für das Auslösen des Auslösers.
  • Befehl 1.7 Falls die Spieler den Auslöser betätigt haben oder noch keinen Wert besitzen, erhalten sie den Wert null.
Ausschalten
  • Befehl 1.8 Das Punktestand-Ziel wird wieder entfernt.
  • Befehl 1.9 Der Rüstungsständer für die Wahrheitswerte wird wieder gelöscht.

Befehlsblöcke mit Befehlen:
scoreboard objectives add PZSpeiZ.1Wert trigger ["Speicherzelle.1: ",{"text":"Wert der Variablen","bold":true}]
summon minecraft:armor_stand ~ ~1 ~ {Small:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"wahr","color":"green","bold":true}',Tags:["EtiSpeiZ.1Alle","EtiSpeiZ.1Bool"]}


execute if entity @a[distance=..25,scores={PZSpeiZ.1Wert=1}] run data merge entity @e[type=minecraft:armor_stand,tag=EtiSpeiZ.1Bool,sort=nearest,limit=1] {CustomName:'{"bold":true,"color":"green","text":"wahr"}'}
execute if entity @a[distance=..25,scores={PZSpeiZ.1Wert=2}] run data merge entity @e[type=minecraft:armor_stand,tag=EtiSpeiZ.1Bool,sort=nearest,limit=1] {CustomName:'{"bold":true,"color":"red","text":"falsch"}'}
execute if entity @e[type=minecraft:armor_stand,tag=EtiSpeiZ.1Bool,sort=nearest,limit=1] as @a[distance=..25] unless entity @s[scores={PZSpeiZ.1Wert=0}] run tellraw @a[distance=..25] ["Speicherzelle.1: ",{"text":"\nbool = ","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für Wert wahr"} },"clickEvent":{"action":"run_command","value":"/trigger PZSpeiZ.1Wert set 1"} },{"text":"wahr","color":"gray","bold":true},{"text":"\nbool = ","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für Wert falsch"} },"clickEvent":{"action":"run_command","value":"/trigger PZSpeiZ.1Wert set 2"} },{"text":"falsch","color":"gray","bold":true},{"text":"\nbool == ","bold":true},{"entity":"@e[type=minecraft:armor_stand,tag=EtiSpeiZ.1Bool,sort=nearest,limit=1]","nbt":"CustomName","interpret":true}]
execute as @a[distance=..25] unless entity @s[scores={PZSpeiZ.1Wert=0}] run scoreboard players enable @s PZSpeiZ.1Wert
execute as @a[distance=..25] unless entity @s[scores={PZSpeiZ.1Wert=0}] run scoreboard players set @s PZSpeiZ.1Wert 0


scoreboard objectives remove PZSpeiZ.1Wert
kill @e[type=minecraft:armor_stand,tag=EtiSpeiZ.1Alle]

T-Flip-Flop[Bearbeiten | Quelltext bearbeiten]

Redstone-Schaltkreise Symbol.png
Diese neue oder überarbeitete Technik ist noch nicht in der aktuellen Redstone-Welt vorhanden.
In einem der nächsten Updates wird sie dort hinzugefügt werden.

Speicherzelle (Befehle) Bild 2.1.png

Der T-Flip-Flop wechselt mit gleicher Eingabe seinen Zustand immer wieder zwischen "wahr" und "falsch". Die Eingabe des Zustandes erfolgt über die Chat-Nachrichten bei dem man einen Auslöser anklickt.

Einschalten
  • Befehl 2.1 Das Punktestand-Ziel für das Auslösen von Klicks im Chat wird erstellt.
  • Befehl 2.2 Ein Rüstungsständer wird erzeugt, welcher die Wahrheitswerte in seinem Anzeige-Namen speichern kann.
Wiederholen
  • Befehl 2.3 Wenn ein Spieler den Auslöser mit dem Wert eins aktiviert hat, so bekommt der Rüstungsständer den Wert "wahr" zugewiesen. Jedoch wird geprüft ob der Befehl erfolgreich ausgeführt werden konnte, wenn der Rüstungsständer den Wert bereits besaß, bekommt er den Wert null in seinen Punktestand, ansonsten den Wert eins zugewiesen.
  • Befehl 2.4 Nur wenn das Zuweisen des Wertes fehlgeschlagen ist und somit der Rüstungsständer den Wert null besitzt, erhält er, sofern er noch nicht diesen hat, den Wahrheitswert "falsch" zugewiesen.
  • Befehl 2.5 Wenn eingeschaltet wird, dauert es einen Tick bis der Rüstungsständer vorhanden ist, deshalb wird nach diesem geprüft und nur wenn er existiert, bekommen alle Spieler eine Chat-Nachricht, sofern sie nicht den Wert null besitzen. Das betrifft Spieler die schonmal auf den Auslöser getippt haben genauso wie die, die noch nie den Auslöser angeklickt haben und somit keinen Wert besitzen. Die Chat-Nachricht zeigt die mögliche Option an die angenommen werden kann. Auf diese kann man klicken um den Auslöser zu aktivieren.
  • Befehl 2.6 Spieler erhalten die Berechtigung für das Auslösen des Auslösers.
  • Befehl 2.7 Falls die Spieler den Auslöser betätigt haben oder noch keinen Wert besitzen, erhalten sie den Wert null.
Ausschalten
  • Befehl 2.8 Das Punktestand-Ziel wird wieder entfernt.
  • Befehl 2.9 Der Rüstungsständer für die Wahrheitswerte wird wieder gelöscht.

Befehlsblöcke mit Befehlen:
scoreboard objectives add PZSpeiZ.2Wert trigger ["Speicherzelle.2: ",{"text":"Wert der Variablen","bold":true}]
summon minecraft:armor_stand ~ ~1 ~ {Small:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"wahr","color":"green","bold":true}',Tags:["EtiSpeiZ.2Alle","EtiSpeiZ.2Bool"]}


execute if entity @a[distance=..25,scores={PZSpeiZ.2Wert=1}] as @e[type=minecraft:armor_stand,tag=EtiSpeiZ.2Bool] store success score @s PZSpeiZ.2Wert run data merge entity @s {CustomName:'{"bold":true,"color":"green","text":"wahr"}'}
data merge entity @e[type=minecraft:armor_stand,tag=EtiSpeiZ.2Bool,name="wahr",scores={PZSpeiZ.2Wert=0},sort=nearest,limit=1] {CustomName:'{"bold":true,"color":"red","text":"falsch"}'}
execute if entity @e[type=minecraft:armor_stand,tag=EtiSpeiZ.2Bool,sort=nearest,limit=1] as @a[distance=..25] unless entity @s[scores={PZSpeiZ.2Wert=0}] run tellraw @a[distance=..25] ["Speicherzelle.2: ",{"text":"\nbool = ","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe um den Wert zu negieren"} },"clickEvent":{"action":"run_command","value":"/trigger PZSpeiZ.2Wert set 1"} },{"text":"!bool","color":"gray","bold":true},{"text":"\nbool == ","bold":true},{"entity":"@e[type=minecraft:armor_stand,tag=EtiSpeiZ.2Bool,sort=nearest,limit=1]","nbt":"CustomName","interpret":true}]
execute as @a[distance=..25] unless entity @s[scores={PZSpeiZ.2Wert=0}] run scoreboard players enable @s PZSpeiZ.2Wert
execute as @a[distance=..25] unless entity @s[scores={PZSpeiZ.2Wert=0}] run scoreboard players set @s PZSpeiZ.2Wert 0


scoreboard objectives remove PZSpeiZ.2Wert
kill @e[type=minecraft:armor_stand,tag=EtiSpeiZ.2Alle]

Analog-Flip-Flop[Bearbeiten | Quelltext bearbeiten]

Redstone-Schaltkreise Symbol.png
Diese neue oder überarbeitete Technik ist noch nicht in der aktuellen Redstone-Welt vorhanden.
In einem der nächsten Updates wird sie dort hinzugefügt werden.

Speicherzelle (Befehle) Bild 3.1.png

Das Anlalog-Flip-Flop kann Aufzählungszustandswerte speichern. Hier im Beispiel wird ein Punktestand-Ziel verwendet, das fünf mögliche Werte einer Ganzzahl anbietet. Man klickt im Chat auf eine der Zustände und ie Variable nimmt diesen Wert an. Klickt man auf einen anderen wird dieser zugewiesen.

Einschalten
  • Befehl 3.1 Das Punktestand-Ziel für das Auslösen von Klicks im Chat wird erstellt.
  • Befehl 3.2 Die Variable die im Chat die zugewiesenen Werte erhält, wird mit dem Wert null gesetzt.
Wiederholen
  • Befehl 3.3 Wenn ein Spieler den Auslöser mit einem Wert größer gleich eins aktiviert hat, wird in die Variable der Wert des Spielers eingespeichert.
  • Befehl 3.4 Zuerst wird geprüft ob die Variable bereits gesetzt wurde, ansonsten würde im Chat kein Wert der Variable im ersten Tick angezeigt werden. Anschließend erhalten alle Spieler die nicht den Wert null besitzen und im Umkreis von 25 Metern sind, eine Chat-Nachricht in der alle möglichen Werte der Aufzählungs-Variable (enum) möglich sind.
  • Befehl 3.5 Spieler erhalten die Berechtigung für das Auslösen des Auslösers.
  • Befehl 3.6 Falls die Spieler den Auslöser betätigt haben oder noch keinen Wert besitzen, erhalten sie den Wert null.
Ausschalten
  • Befehl 3.7 Das Punktestand-Ziel wird wieder entfernt und somit auch die Variable.

Befehlsblöcke mit Befehlen:
scoreboard objectives add PZSpeiZ.3Wert trigger ["Speicherzelle.3: ",{"text":"Wert der Variablen","bold":true}]
scoreboard players set VarSpeiZ.3Variable PZSpeiZ.3Wert 0


execute as @a[distance=..25,scores={PZSpeiZ.3Wert=1..}] run scoreboard players operation VarSpeiZ.3Variable PZSpeiZ.3Wert = @s PZSpeiZ.3Wert
execute if score VarSpeiZ.3Variable PZSpeiZ.3Wert matches 0.. as @a[distance=..25] unless entity @s[scores={PZSpeiZ.3Wert=0}] run tellraw @a[distance=..25] ["Speicherzelle.3: ",{"text":"\nenum = ","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für den Wert"} },"clickEvent":{"action":"run_command","value":"/trigger PZSpeiZ.3Wert set 1"} },{"text":"1","color":"gray","bold":true},{"text":"\nenum = ","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für den Wert"} },"clickEvent":{"action":"run_command","value":"/trigger PZSpeiZ.3Wert set 2"} },{"text":"2","color":"gray","bold":true},{"text":"\nenum = ","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für den Wert"} },"clickEvent":{"action":"run_command","value":"/trigger PZSpeiZ.3Wert set 3"} },{"text":"3","color":"gray","bold":true},{"text":"\nenum = ","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für den Wert"} },"clickEvent":{"action":"run_command","value":"/trigger PZSpeiZ.3Wert set 4"} },{"text":"4","color":"gray","bold":true},{"text":"\nenum = ","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für den Wert"} },"clickEvent":{"action":"run_command","value":"/trigger PZSpeiZ.3Wert set 5"} },{"text":"5","color":"gray","bold":true},{"text":"\nenum == ","bold":true},{"score":{"name":"VarSpeiZ.3Variable","objective":"PZSpeiZ.3Wert"},"color":"dark_purple","bold":true}]
execute as @a[distance=..25] unless entity @s[scores={PZSpeiZ.3Wert=0}] run scoreboard players enable @s PZSpeiZ.3Wert
execute as @a[distance=..25] unless entity @s[scores={PZSpeiZ.3Wert=0}] run scoreboard players set @s PZSpeiZ.3Wert 0


scoreboard objectives remove PZSpeiZ.3Wert


Disambig color.svg