Technik Wiki
Registrieren
Advertisement
Gruppe: Grid Redstone-Fackel
Schaltkreise

Grid Roter Sand blass mit Mechaniken

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

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

NOR-Latch[]

Speicherzelle (Befehle) Bild 1.1

Die NOR-Latch-Speicherzelle speichert den aktuellen Wahrheitswert in einen Markierer. 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 Punkte-Ziel für das Auslösen von Klicks im Chat wird erstellt.
  • Befehl 1.2 Ein Markierer 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 Markierer den Wert "wahr" zugewiesen.
  • Befehl 1.4 Umgekehrt bekommt der Markierer beim Wert zwei den Wert "falsch" zugewiesen.
  • Befehl 1.5 Wenn eingeschaltet wird, dauert es einen Tick bis der Markierer 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 Punkte-Ziel wird wieder entfernt.
  • Befehl 1.9 Der Markierer 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:marker ~ ~1 ~ {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:marker,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:marker,tag=EtiSpeiZ.1Bool,sort=nearest,limit=1] {CustomName:'{"bold":true,"color":"red","text":"falsch"}'}
execute if entity @e[type=minecraft:marker,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:\n",{"text":"bool = ","bold":true},{"text":"wahr","color":"gray","bold":true,"underlined":true,"hoverEvent":{"action":"show_text","contents":{"text":"Tippe für Wert wahr"} },"clickEvent":{"action":"run_command","value":"/trigger PZSpeiZ.1Wert set 1"} },"\n",{"text":"bool = ","bold":true},{"text":"falsch","color":"gray","bold":true,"underlined":true,"hoverEvent":{"action":"show_text","contents":{"text":"Tippe für Wert falsch"} },"clickEvent":{"action":"run_command","value":"/trigger PZSpeiZ.1Wert set 2"} },"\n",{"text":"bool == ","bold":true},{"entity":"@e[type=minecraft:marker,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:marker,tag=EtiSpeiZ.1Alle]

T-Flip-Flop[]

Speicherzelle (Befehle) Bild 2.1

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 Punkte-Ziel für das Auslösen von Klicks im Chat wird erstellt.
  • Befehl 2.2 Ein Markierer 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 Markierer den Wert "wahr" zugewiesen. Jedoch wird geprüft ob der Befehl erfolgreich ausgeführt werden konnte, wenn der Markierer 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 Markierer 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 Markierer 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 Punkte-Ziel wird wieder entfernt.
  • Befehl 2.9 Der Markierer 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:marker ~ ~1 ~ {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:marker,tag=EtiSpeiZ.2Bool] store success score @s PZSpeiZ.2Wert run data merge entity @s {CustomName:'{"bold":true,"color":"green","text":"wahr"}'}
execute if entity @a[distance=..25,scores={PZSpeiZ.2Wert=1}] run data merge entity @e[type=minecraft:marker,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:marker,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:\n",{"text":"bool = ","bold":true},{"text":"NICHT bool","color":"gray","bold":true,"underlined":true,"hoverEvent":{"action":"show_text","contents":{"text":"Tippe um den Wert zu negieren"} },"clickEvent":{"action":"run_command","value":"/trigger PZSpeiZ.2Wert set 1"} },"\n",{"text":"bool == ","bold":true},{"entity":"@e[type=minecraft:marker,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:marker,tag=EtiSpeiZ.2Alle]

Analog-Flip-Flop[]

Speicherzelle (Befehle) Bild 3.1

Das Analog-Flip-Flop kann Aufzählungszustandswerte speichern. Hier im Beispiel wird ein Punkte-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 Punkte-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 Punkte-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..5}] 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:\n",{"text":"enum = ","bold":true},{"text":"wert_1","color":"gray","bold":true,"underlined":true,"hoverEvent":{"action":"show_text","contents":{"text":"Tippe für den Wert"} },"clickEvent":{"action":"run_command","value":"/trigger PZSpeiZ.3Wert set 1"} },"\n",{"text":"enum = ","bold":true},{"text":"wert_2","color":"gray","bold":true,"underlined":true,"hoverEvent":{"action":"show_text","contents":{"text":"Tippe für den Wert"} },"clickEvent":{"action":"run_command","value":"/trigger PZSpeiZ.3Wert set 2"} },"\n",{"text":"enum = ","bold":true},{"text":"wert_3","color":"gray","bold":true,"underlined":true,"hoverEvent":{"action":"show_text","contents":{"text":"Tippe für den Wert"} },"clickEvent":{"action":"run_command","value":"/trigger PZSpeiZ.3Wert set 3"} },"\n",{"text":"enum = ","bold":true},{"text":"wert_4","color":"gray","bold":true,"underlined":true,"hoverEvent":{"action":"show_text","contents":{"text":"Tippe für den Wert"} },"clickEvent":{"action":"run_command","value":"/trigger PZSpeiZ.3Wert set 4"} },"\n",{"text":"enum = ","bold":true},{"text":"wert_5","color":"gray","bold":true,"underlined":true,"hoverEvent":{"action":"show_text","contents":{"text":"Tippe für den Wert"} },"clickEvent":{"action":"run_command","value":"/trigger PZSpeiZ.3Wert set 5"} },"\n",{"text":"enum == ","bold":true},{"text":"wert_","color":"dark_purple","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
Advertisement