Logikgatter (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
Verfügbar in:
Wiki Redstone-Welt.png Redstone-Welt

Logikgatter verknüpfen ein oder mehrere Eingangssignale miteinander und verarbeiten diese zu einem Ausgangssignal, welches einem boolesche Wert entspricht ("wahr" oder "falsch"). In Minecraft gibt es keinen Datentyp für Wahrheitswerte, deshalb werden die beiden Werte als Wort gespeichert und angezeigt. Das Rechnen mit diesen Wahrheitswerten wird durch Vergleiche und bei kombinierten Gattern durch angelegte Zahlenwerte ermöglicht.

Der Merker (M)[Bearbeiten | Quelltext bearbeiten]

Logikgatter (Befehle) Bild 1.1.png

Der Merker lässt sich als Zuweisung verstehen. Er speichert das Ergebnis ohne Veränderung ab. Für die Merker-Darstellung im Chat werden die Namen von zwei Rüstungsständer verwendet. Der Name speichert dabei den Wahrheitswert "wahr" oder "falsch".

Einschalten
  • Befehl 1.1 Das Auslöser-Punkte-Ziel (trigger) wird erstellt.
  • Befehl 1.2 Der Rüstungsständer mit den möglichen Wahrheitswerten "wahr" und "falsch" wird erstellt und steht für die Variable "bool".
  • Befehl 1.3 Ein zweiter Rüstungsständer, der den gleichen Wahrheitswert zugewiesen bekommt, wird erstellt und die Variable "ergebnis" repräsentiert.
Wiederholen
  • Befehl 1.4 Wenn man im Chat auf das unterstrichene "wahr" für die bool-Variable geklickt hat, wird dieser Wahrheitswert der Variable im Namen des Rüstungsständer gespeichert.
  • Befehl 1.5 Wenn man im Chat auf das unterstrichene "falsch" für die bool-Variable geklickt hat, wird dieser Wahrheitswert der Variable im Namen des Rüstungsständer gespeichert.
  • Befehl 1.6 Wenn man eine der beiden Wahrheitswerte angeklickt hat, wird der aktuelle Wahrheitswert der im Namen des Rüstungsständers gespeichert ist, in den Ergebnis-Rüstungsständer kopiert.
  • Befehl 1.7 Nur wenn der Rüstungsständer, der für die bool-Variable zuständig ist, existiert, wird nach Spielern in einem Umkreis von 25 Metern Ausschau gehalten und nur wenn sie den Auslöser betätigt haben und somit nicht den Wert null besitzen erhalten sie die Chat-Nachricht. Die Nachricht zeigt immer, wenn man eine Option angeklickt hat, die aktuellen Wahrheitswerte der Variablen an.
  • Befehl 1.8 Spieler die im Umkreis von 25 Metern nicht den Wert null besitzen, erhalten die Erlaubnis für den Auslöser auszulösen und erhalten den Wert null[B1.9].
Ausschalten

Befehlsblöcke mit Befehlen:
scoreboard objectives add PZLogik.1Wert trigger ["Logikgatter.1: ",{"text":"Wert der Variablen","bold":true}]
summon minecraft:armor_stand ~ ~2 ~ {Small:true,Marker:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"falsch","color":"red","bold":true}',Tags:["EtiLogik.1Alle","EtiLogik.1Eingabe","EtiLogik.1Bool"]}
summon minecraft:armor_stand ~ ~2 ~ {Small:true,Marker:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"falsch","color":"red","bold":true}',Tags:["EtiLogik.1Alle","EtiLogik.1ZUWEISUNG"]}


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


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

Das Nicht-Gatter (¬)[Bearbeiten | Quelltext bearbeiten]

Logikgatter (Befehle) Bild 2.1.png

Das Nicht-Gatter negiert den Wahrheitswert. So wird aus einem "wahr" ein "falsch" und umgekehrt. Für das Nicht-Gatter im Chat, werden die Namen von zwei Rüstungsständer verwendet. Der Namen speichert dabei den Wahrheitswert "wahr" oder "falsch".

Einschalten
  • Befehl 2.1 Das Auslöser-Punkte-Ziel (trigger) wird erstellt.
  • Befehl 2.2 Der Rüstungsständer mit den möglichen Wahrheitswerten "wahr" und "falsch" wird erstellt und steht für die Variable "bool".
  • Befehl 2.3 Ein zweiter Rüstungsständer, der den negierten Wahrheitswerte zugewiesen bekommt, wird erstellt und die Variable "ergebnis" repräsentiert.
Wiederholen
  • Befehl 2.4 Wenn man im Chat auf das unterstrichene "wahr" für die bool-Variable geklickt hat, wird der aktuelle Wahrheitswert in den ergebnis-Rüstungsständer kopiert, sofern der aktuelle Wahrheitswert nicht bereits "wahr" ist.
  • Befehl 2.5 Wenn man im Chat auf das unterstrichene "falsch" für die bool-Variable geklickt hat, wird der aktuelle Wahrheitswert in den ergebnis-Rüstungsständer kopiert, sofern der aktuelle Wahrheitswert nicht bereits "falsch" ist.
  • Befehl 2.6 Wenn man im Chat auf das unterstrichene "wahr" für die bool-Variable geklickt hat, wird dieser Wahrheitswert der Variable im Namen des Rüstungsständer gespeichert.
  • Befehl 2.7 Wenn man im Chat auf das unterstrichene "falsch" für die bool-Variable geklickt hat, wird dieser Wahrheitswert der Variable im Namen des Rüstungsständer gespeichert.
  • Befehl 2.8 Nur wenn der Rüstungsständer, der für die bool-Variable zuständig ist, existiert, wird nach Spielern in einem Umkreis von 25 Metern Ausschau gehalten und nur wenn sie den Auslöser betätigt haben und somit nicht den Wert null besitzen erhalten sie die Chat-Nachricht. Die Nachricht zeigt immer, wenn man eine Option angeklickt hat, die aktuellen Wahrheitswerte der Variablen an.
  • Befehl 2.9 Spieler die im Umkreis von 25 Metern nicht den Wert null besitzen, erhalten die Erlaubnis für den Auslöser auszulösen und erhalten den Wert null[B2.10].
Ausschalten

Befehlsblöcke mit Befehlen:
scoreboard objectives add PZLogik.2Wert trigger ["Logikgatter.2: ",{"text":"Wert der Variablen","bold":true}]
summon minecraft:armor_stand ~ ~2 ~ {Small:true,Marker:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"falsch","color":"red","bold":true}',Tags:["EtiLogik.2Alle","EtiLogik.2Eingabe","EtiLogik.2Bool"]}
summon minecraft:armor_stand ~ ~2 ~ {Small:true,Marker:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"wahr","color":"green","bold":true}',Tags:["EtiLogik.2Alle","EtiLogik.2NICHT"]}


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


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

Das Und-Gatter (∧)[Bearbeiten | Quelltext bearbeiten]

Logikgatter (Befehle) Bild 3.1.png

Das Und-Gatter verknüpft zwei Variablen und gibt für diese einen Wahrheitswert aus. Nur wenn beide Variablen den Wert "wahr" besitzen gibt es als Ergebnis ebenfalls "wahr" aus, ansonsten immer "falsch". Für das Und-Gatter im Chat, werden die Namen von drei Rüstungsständer verwendet. Der Namen speichert dabei den Wahrheitswert "wahr" oder "falsch".

Einschalten
  • Befehl 3.1 Das Auslöser-Punkte-Ziel (trigger) wird erstellt.
  • Befehl 3.2 Der Rüstungsständer mit den möglichen Wahrheitswerten "wahr" und "falsch" wird erstellt und steht für die Variable "bool1".
  • Befehl 3.3 Ein zweiter Rüstungsständer, der den gleichen Wahrheitswert zugewiesen bekommt, wird erstellt und die Variable "bool2" repräsentiert.
  • Befehl 3.4 Ein dritter Rüstungsständer, der den Und-Verknüpfungs-Wahrheitswert zugewiesen bekommt, wird erstellt und die Variable "ergebnis" repräsentiert.
Wiederholen
  • Befehl 3.5 Wenn man im Chat auf das unterstrichene "NICHT bool1" für die bool1-Variable geklickt hat, wird der aktuelle Wahrheitswert der Variable negiert indem immer versucht wird "wahr" zu speichern, falls der Wert jedoch schon "wahr" war, schlägt der Befehl fehl und der dazu gespeicherte Zahlenwert wird null sein.
  • Befehl 3.6 Wenn man im Chat auf das unterstrichene "NICHT bool2" für die bool2-Variable geklickt hat, wird der aktuelle Wahrheitswert der Variable negiert.
  • Befehl 3.7 Wenn man den Wahrheitswert einer der beiden Variablen ändert und dabei der Rüstungsständer den Zahlenwert null besitzt, so bedeutet dass, dass er den Wahrheitswert "falsch" zugewiesen bekommt, damit der Wert negiert wurde.
  • Befehl 3.8 Wenn man den Wahrheitswert einer der beiden Variablen ändert, wird geprüft ob die beiden Rüstungsständer den Wahrheitswert "wahr" als Namen besitzen, nur wenn das der Fall ist, wird der Rüstungsständer, der die ergebnis-Variable präsentiert auf "wahr" gesetzt.
  • Befehl 3.9 Wenn man den Wahrheitswert einer der beiden Variablen ändert und mindestens ein Rüstungsständer besitzt den Wahrheitswert "falsch", dann wird der Rüstungsständer für die ergebnis-Variable auf den Wahrheitswert "falsch" gesetzt.
  • Befehl 3.10 Nur wenn der Rüstungsständer, der für die bool1-Variable zuständig ist, existiert, wird nach Spielern in einem Umkreis von 25 Metern Ausschau gehalten und nur wenn sie den Auslöser betätigt haben und somit nicht den Wert null besitzen erhalten sie die Chat-Nachricht. Die Nachricht zeigt immer, wenn man eine Option angeklickt hat, die aktuellen Wahrheitswerte der Variablen an.
  • Befehl 3.11 Spieler die im Umkreis von 25 Metern nicht den Wert null besitzen, erhalten die Erlaubnis für den Auslöser auszulösen und erhalten den Wert null[B3.12].
Ausschalten

Befehlsblöcke mit Befehlen:
scoreboard objectives add PZLogik.3Wert trigger ["Logikgatter.3: ",{"text":"Wert der Variablen","bold":true}]
summon minecraft:armor_stand ~ ~3 ~ {Small:true,Marker:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"falsch","color":"red","bold":true}',Tags:["EtiLogik.3Alle","EtiLogik.3Eingabe","EtiLogik.3Bool1"]}
summon minecraft:armor_stand ~ ~3 ~ {Small:true,Marker:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"falsch","color":"red","bold":true}',Tags:["EtiLogik.3Alle","EtiLogik.3Eingabe","EtiLogik.3Bool2"]}
summon minecraft:armor_stand ~ ~3 ~ {Small:true,Marker:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"falsch","color":"red","bold":true}',Tags:["EtiLogik.3Alle","EtiLogik.3UND"]}


execute if entity @a[distance=..25,scores={PZLogik.3Wert=1}] as @e[type=minecraft:armor_stand,tag=EtiLogik.3Bool1] store success score @s PZLogik.3Wert run data merge entity @s {CustomName:'{"bold":true,"color":"green","text":"wahr"}'}
execute if entity @a[distance=..25,scores={PZLogik.3Wert=2}] as @e[type=minecraft:armor_stand,tag=EtiLogik.3Bool2] store success score @s PZLogik.3Wert run data merge entity @s {CustomName:'{"bold":true,"color":"green","text":"wahr"}'}
execute if entity @a[distance=..25,scores={PZLogik.3Wert=1..}] as @e[type=minecraft:armor_stand,tag=EtiLogik.3Eingabe,name="wahr",scores={PZLogik.3Wert=0},sort=nearest,limit=2] run data merge entity @s {CustomName:'{"bold":true,"color":"red","text":"falsch"}'}
execute if entity @a[distance=..25,scores={PZLogik.3Wert=1..}] if entity @e[type=minecraft:armor_stand,tag=EtiLogik.3Bool1,name="wahr",sort=nearest,limit=1] if entity @e[type=minecraft:armor_stand,tag=EtiLogik.3Bool2,name="wahr",sort=nearest,limit=1] run data merge entity @e[type=minecraft:armor_stand,tag=EtiLogik.3UND,sort=nearest,limit=1] {CustomName:'{"bold":true,"color":"green","text":"wahr"}'}
execute if entity @a[distance=..25,scores={PZLogik.3Wert=1..}] if entity @e[type=minecraft:armor_stand,tag=EtiLogik.3Eingabe,name="falsch"] run data merge entity @e[type=minecraft:armor_stand,tag=EtiLogik.3UND,sort=nearest,limit=1] {CustomName:'{"bold":true,"color":"red","text":"falsch"}'}
execute if entity @e[type=minecraft:armor_stand,tag=EtiLogik.3Bool1,sort=nearest,limit=1] as @a[distance=..25] unless entity @s[scores={PZLogik.3Wert=0}] run tellraw @a[distance=..25] ["Logikgatter.3: ",{"text":"\nbool1 (","bold":true},{"text":"=NICHT bool1","color":"gray","underlined":true,"bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe um den Wert zu negieren"} },"clickEvent":{"action":"run_command","value":"/trigger PZLogik.3Wert set 1"} },{"text":") == ","bold":true},{"entity":"@e[type=minecraft:armor_stand,tag=EtiLogik.3Bool1,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"\nbool2 (","bold":true},{"text":"=NICHT bool2","color":"gray","underlined":true,"bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe um den Wert zu negieren"} },"clickEvent":{"action":"run_command","value":"/trigger PZLogik.3Wert set 2"} },{"text":") == ","bold":true},{"entity":"@e[type=minecraft:armor_stand,tag=EtiLogik.3Bool2,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"\nergebnis (","bold":true},{"text":"=bool1 UND bool2","color":"gray","bold":true},{"text":") == ","bold":true},{"entity":"@e[type=minecraft:armor_stand,tag=EtiLogik.3UND,sort=nearest,limit=1]","nbt":"CustomName","interpret":true} ]
execute as @a[distance=..25] unless entity @s[scores={PZLogik.3Wert=0}] run scoreboard players enable @s PZLogik.3Wert
execute as @a[distance=..25] unless entity @s[scores={PZLogik.3Wert=0}] run scoreboard players set @s PZLogik.3Wert 0


scoreboard objectives remove PZLogik.3Wert
kill @e[type=minecraft:armor_stand,tag=EtiLogik.3Alle]

Das Oder-Gatter (∨)[Bearbeiten | Quelltext bearbeiten]

Logikgatter (Befehle) Bild 4.1.png

Das Oder-Gatter verknüpft zwei Variablen und gibt für diese einen Wahrheitswert aus. Wenn mindestens eine der beiden Variablen den Wert "wahr" besitzt gibt es als Ergebnis ebenfalls "wahr" aus, nur wenn beide Variablen den Wert "falsch" besitzen wird "falsch" ausgegeben. Für das Oder-Gatter im Chat, werden die Namen von drei Rüstungsständer verwendet. Der Namen speichert dabei den Wahrheitswert "wahr" oder "falsch".

Einschalten
  • Befehl 4.1 Das Auslöser-Punkte-Ziel (trigger) wird erstellt.
  • Befehl 4.2 Der Rüstungsständer mit den möglichen Wahrheitswerten "wahr" und "falsch" wird erstellt und steht für die Variable "bool1".
  • Befehl 4.3 Ein zweiter Rüstungsständer, der den gleichen Wahrheitswert zugewiesen bekommt, wird erstellt und die Variable "bool2" repräsentiert.
  • Befehl 4.4 Ein dritter Rüstungsständer, der den Oder-Verknüpfungs-Wahrheitswert zugewiesen bekommt, wird erstellt und die Variable "ergebnis" repräsentiert.
Wiederholen
  • Befehl 4.5 Wenn man im Chat auf das unterstrichene "NICHT bool1" für die bool1-Variable geklickt hat, wird der aktuelle Wahrheitswert der Variable negiert indem immer versucht wird "wahr" zu speichern, falls der Wert jedoch schon "wahr" war, schlägt der Befehl fehl und der dazu gespeicherte Zahlenwert wird null sein.
  • Befehl 4.6 Wenn man im Chat auf das unterstrichene "NICHT bool2" für die bool2-Variable geklickt hat, wird der aktuelle Wahrheitswert der Variable negiert.
  • Befehl 4.7 Wenn man den Wahrheitswert einer der beiden Variablen ändert und dabei der Rüstungsständer den Zahlenwert null besitzt, so bedeutet dass, dass er den Wahrheitswert "falsch" zugewiesen bekommt, damit der Wert negiert wurde.
  • Befehl 4.8 Wenn man den Wahrheitswert einer der beiden Variablen ändert und mindestens ein Rüstungsständer besitzt den Wahrheitswert "wahr", dann wird der Rüstungsständer für die ergebnis-Variable auf den Wahrheitswert "wahr" gesetzt.
  • Befehl 4.9 Wenn man den Wahrheitswert einer der beiden Variablen ändert, wird geprüft ob die beiden Rüstungsständer den Wahrheitswert "falsch" als Namen besitzen, nur wenn das der Fall ist, wird der Rüstungsständer, der die ergebnis-Variable präsentiert auf "falsch" gesetzt.
  • Befehl 4.10 Nur wenn der Rüstungsständer, der für die bool1-Variable zuständig ist, existiert, wird nach Spielern in einem Umkreis von 25 Metern Ausschau gehalten und nur wenn sie den Auslöser betätigt haben und somit nicht den Wert null besitzen erhalten sie die Chat-Nachricht. Die Nachricht zeigt immer, wenn man eine Option angeklickt hat, die aktuellen Wahrheitswerte der Variablen an.
  • Befehl 4.11 Spieler die im Umkreis von 25 Metern nicht den Wert null besitzen, erhalten die Erlaubnis für den Auslöser auszulösen und erhalten den Wert null[B4.12].
Ausschalten

Befehlsblöcke mit Befehlen:
scoreboard objectives add PZLogik.4Wert trigger ["Logikgatter.4: ",{"text":"Wert der Variablen","bold":true}]
summon minecraft:armor_stand ~ ~3 ~ {Small:true,Marker:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"falsch","color":"red","bold":true}',Tags:["EtiLogik.4Alle","EtiLogik.4Eingabe","EtiLogik.4Bool1"]}
summon minecraft:armor_stand ~ ~3 ~ {Small:true,Marker:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"falsch","color":"red","bold":true}',Tags:["EtiLogik.4Alle","EtiLogik.4Eingabe","EtiLogik.4Bool2"]}
summon minecraft:armor_stand ~ ~3 ~ {Small:true,Marker:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"falsch","color":"red","bold":true}',Tags:["EtiLogik.4Alle","EtiLogik.4ODER"]}


execute if entity @a[distance=..25,scores={PZLogik.4Wert=1}] as @e[type=minecraft:armor_stand,tag=EtiLogik.4Bool1] store success score @s PZLogik.4Wert run data merge entity @s {CustomName:'{"bold":true,"color":"green","text":"wahr"}'}
execute if entity @a[distance=..25,scores={PZLogik.4Wert=2}] as @e[type=minecraft:armor_stand,tag=EtiLogik.4Bool2] store success score @s PZLogik.4Wert run data merge entity @s {CustomName:'{"bold":true,"color":"green","text":"wahr"}'}
execute if entity @a[distance=..25,scores={PZLogik.4Wert=1..}] as @e[type=minecraft:armor_stand,tag=EtiLogik.4Eingabe,name="wahr",scores={PZLogik.4Wert=0},sort=nearest,limit=2] run data merge entity @s {CustomName:'{"bold":true,"color":"red","text":"falsch"}'}
execute if entity @a[distance=..25,scores={PZLogik.4Wert=1..}] if entity @e[type=minecraft:armor_stand,tag=EtiLogik.4Eingabe,name="wahr"] run data merge entity @e[type=minecraft:armor_stand,tag=EtiLogik.4ODER,sort=nearest,limit=1] {CustomName:'{"bold":true,"color":"green","text":"wahr"}'}
execute if entity @a[distance=..25,scores={PZLogik.4Wert=1..}] if entity @e[type=minecraft:armor_stand,tag=EtiLogik.4Bool1,name="falsch",sort=nearest,limit=1] if entity @e[type=minecraft:armor_stand,tag=EtiLogik.4Bool2,name="falsch",sort=nearest,limit=1] run data merge entity @e[type=minecraft:armor_stand,tag=EtiLogik.4ODER,sort=nearest,limit=1] {CustomName:'{"bold":true,"color":"red","text":"falsch"}'}
execute if entity @e[type=minecraft:armor_stand,tag=EtiLogik.4Bool1,sort=nearest,limit=1] as @a[distance=..25] unless entity @s[scores={PZLogik.4Wert=0}] run tellraw @a[distance=..25] ["Logikgatter.4: ",{"text":"\nbool1 (","bold":true},{"text":"=NICHT bool1","color":"gray","underlined":true,"bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe um den Wert zu negieren"} },"clickEvent":{"action":"run_command","value":"/trigger PZLogik.4Wert set 1"} },{"text":") == ","bold":true},{"entity":"@e[type=minecraft:armor_stand,tag=EtiLogik.4Bool1,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"\nbool2 (","bold":true},{"text":"=NICHT bool2","color":"gray","underlined":true,"bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe um den Wert zu negieren"} },"clickEvent":{"action":"run_command","value":"/trigger PZLogik.4Wert set 2"} },{"text":") == ","bold":true},{"entity":"@e[type=minecraft:armor_stand,tag=EtiLogik.4Bool2,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"\nergebnis (","bold":true},{"text":"=bool1 ODER bool2","color":"gray","bold":true},{"text":") == ","bold":true},{"entity":"@e[type=minecraft:armor_stand,tag=EtiLogik.4ODER,sort=nearest,limit=1]","nbt":"CustomName","interpret":true} ]
execute as @a[distance=..25] unless entity @s[scores={PZLogik.4Wert=0}] run scoreboard players enable @s PZLogik.4Wert
execute as @a[distance=..25] unless entity @s[scores={PZLogik.4Wert=0}] run scoreboard players set @s PZLogik.4Wert 0


scoreboard objectives remove PZLogik.4Wert
kill @e[type=minecraft:armor_stand,tag=EtiLogik.4Alle]

Das Wenn-Dann-Gatter (→)[Bearbeiten | Quelltext bearbeiten]

Logikgatter (Befehle) Bild 5.1.png

Das Wenn-Dann-Gatter verknüpft zwei Variablen und gibt für diese einen Wahrheitswert aus. Nur wenn aus einer bool1-Variable mit dem Wahrheitswert "wahr" eine bool2-Variable mit dem Wahrheitswert "falsch" folgt, ist das Ergebnis "falsch", ansonsten immer "wahr". Für das Wenn-Dann-Gatter im Chat, werden die Namen von drei Rüstungsständer verwendet. Der Namen speichert dabei den Wahrheitswert "wahr" oder "falsch".

Einschalten
  • Befehl 5.1 Das Auslöser-Punkte-Ziel (trigger) wird erstellt.
  • Befehl 5.2 Der Rüstungsständer mit den möglichen Wahrheitswerten "wahr" und "falsch" wird erstellt und steht für die Variable "bool1".
  • Befehl 5.3 Ein zweiter Rüstungsständer, der den gleichen Wahrheitswert zugewiesen bekommt, wird erstellt und die Variable "bool2" repräsentiert.
  • Befehl 5.4 Ein dritter Rüstungsständer, der den Wenn-Dann-Verknüpfungs-Wahrheitswert zugewiesen bekommt, wird erstellt und die Variable "ergebnis" repräsentiert.
Wiederholen
  • Befehl 5.5 Wenn man im Chat auf das unterstrichene "NICHT bool1" für die bool1-Variable geklickt hat, wird der aktuelle Wahrheitswert der Variable negiert indem immer versucht wird "wahr" zu speichern, falls der Wert jedoch schon "wahr" war, schlägt der Befehl fehl und der dazu gespeicherte Zahlenwert wird null sein.
  • Befehl 5.6 Wenn man im Chat auf das unterstrichene "NICHT bool2" für die bool2-Variable geklickt hat, wird der aktuelle Wahrheitswert der Variable negiert.
  • Befehl 5.7 Wenn man den Wahrheitswert einer der beiden Variablen ändert und dabei der Rüstungsständer den Zahlenwert null besitzt, so bedeutet dass, dass er den Wahrheitswert "falsch" zugewiesen bekommt, damit der Wert negiert wurde.
  • Befehl 5.8 Wenn man den Wahrheitswert einer der beiden Variablen ändert, dann wird der Rüstungsständer für die ergebnis-Variable auf den Wahrheitswert "wahr" gesetzt, sofern der bool1-Rüstungsständer den Wahrheitswert "falsch".
  • Befehl 5.9 Wenn man den Wahrheitswert einer der beiden Variablen ändert, wird geprüft ob der bool1-Rüstungsständer den Namen "wahr" hat und ob der bool2-Rüstungsständer den Namen "falsch" besitzt, nur dann bekommt die ergebnis-Variable den Wahrheitswert "wahr" zugewiesen.
  • Befehl 5.10 Wenn man den Wahrheitswert einer der beiden Variablen ändert, wird geprüft ob der bool1-Rüstungsständer den Namen "falsch" hat und ob der bool2-Rüstungsständer den Namen "wahr" besitzt, dann bekommt der Rüstungsständer, der die ergebnis-Variable präsentiert, den Wahrheitswert "falsch" gesetzt.
  • Befehl 5.11 Nur wenn der Rüstungsständer, der für die bool1-Variable zuständig ist, existiert, wird nach Spielern in einem Umkreis von 25 Metern Ausschau gehalten und nur wenn sie den Auslöser betätigt haben und somit nicht den Wert null besitzen erhalten sie die Chat-Nachricht. Die Nachricht zeigt immer, wenn man eine Option angeklickt hat, die aktuellen Wahrheitswerte der Variablen an.
  • Befehl 5.12 Spieler die im Umkreis von 25 Metern nicht den Wert null besitzen, erhalten die Erlaubnis für den Auslöser auszulösen und erhalten den Wert null[B5.13].
Ausschalten

Befehlsblöcke mit Befehlen:
scoreboard objectives add PZLogik.5Wert trigger ["Logikgatter.5: ",{"text":"Wert der Variablen","bold":true}]
summon minecraft:armor_stand ~ ~3 ~ {Small:true,Marker:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"falsch","color":"red","bold":true}',Tags:["EtiLogik.5Alle","EtiLogik.5Eingabe","EtiLogik.5Bool1"]}
summon minecraft:armor_stand ~ ~3 ~ {Small:true,Marker:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"falsch","color":"red","bold":true}',Tags:["EtiLogik.5Alle","EtiLogik.5Eingabe","EtiLogik.5Bool2"]}
summon minecraft:armor_stand ~ ~3 ~ {Small:true,Marker:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"wahr","color":"green","bold":true}',Tags:["EtiLogik.5Alle","EtiLogik.5WENN_DANN"]}


execute if entity @a[distance=..25,scores={PZLogik.5Wert=1}] as @e[type=minecraft:armor_stand,tag=EtiLogik.5Bool1] store success score @s PZLogik.5Wert run data merge entity @s {CustomName:'{"bold":true,"color":"green","text":"wahr"}'}
execute if entity @a[distance=..25,scores={PZLogik.5Wert=2}] as @e[type=minecraft:armor_stand,tag=EtiLogik.5Bool2] store success score @s PZLogik.5Wert run data merge entity @s {CustomName:'{"bold":true,"color":"green","text":"wahr"}'}
execute if entity @a[distance=..25,scores={PZLogik.5Wert=1..}] as @e[type=minecraft:armor_stand,tag=EtiLogik.5Eingabe,name="wahr",scores={PZLogik.5Wert=0},sort=nearest,limit=2] run data merge entity @s {CustomName:'{"bold":true,"color":"red","text":"falsch"}'}
execute if entity @a[distance=..25,scores={PZLogik.5Wert=1..}] if entity @e[type=minecraft:armor_stand,tag=EtiLogik.5Bool1,name="falsch",sort=nearest,limit=1] run data merge entity @e[type=minecraft:armor_stand,tag=EtiLogik.5WENN_DANN,sort=nearest,limit=1] {CustomName:'{"bold":true,"color":"green","text":"wahr"}'}
execute if entity @a[distance=..25,scores={PZLogik.5Wert=1..}] if entity @e[type=minecraft:armor_stand,tag=EtiLogik.5Bool1,name="wahr",sort=nearest,limit=1] if entity @e[type=minecraft:armor_stand,tag=EtiLogik.5Bool2,name="wahr",sort=nearest,limit=1] run data merge entity @e[type=minecraft:armor_stand,tag=EtiLogik.5WENN_DANN,sort=nearest,limit=1] {CustomName:'{"bold":true,"color":"green","text":"wahr"}'}
execute if entity @a[distance=..25,scores={PZLogik.5Wert=1..}] if entity @e[type=minecraft:armor_stand,tag=EtiLogik.5Bool1,name="wahr",sort=nearest,limit=1] if entity @e[type=minecraft:armor_stand,tag=EtiLogik.5Bool2,name="falsch",sort=nearest,limit=1] run data merge entity @e[type=minecraft:armor_stand,tag=EtiLogik.5WENN_DANN,sort=nearest,limit=1] {CustomName:'{"bold":true,"color":"red","text":"falsch"}'}
execute if entity @e[type=minecraft:armor_stand,tag=EtiLogik.5Bool1,sort=nearest,limit=1] as @a[distance=..25] unless entity @s[scores={PZLogik.5Wert=0}] run tellraw @a[distance=..25] ["Logikgatter.5: ",{"text":"\nbool1 (","bold":true},{"text":"=NICHT bool1","color":"gray","underlined":true,"bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe um den Wert zu negieren"} },"clickEvent":{"action":"run_command","value":"/trigger PZLogik.5Wert set 1"} },{"text":") == ","bold":true},{"entity":"@e[type=minecraft:armor_stand,tag=EtiLogik.5Bool1,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"\nbool2 (","bold":true},{"text":"=NICHT bool2","color":"gray","underlined":true,"bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe um den Wert zu negieren"} },"clickEvent":{"action":"run_command","value":"/trigger PZLogik.5Wert set 2"} },{"text":") == ","bold":true},{"entity":"@e[type=minecraft:armor_stand,tag=EtiLogik.5Bool2,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"\nergebnis (","bold":true},{"text":"=(NICHT bool1) ODER bool2","color":"gray","bold":true},{"text":") == ","bold":true},{"entity":"@e[type=minecraft:armor_stand,tag=EtiLogik.5WENN_DANN,sort=nearest,limit=1]","nbt":"CustomName","interpret":true} ]
execute as @a[distance=..25] unless entity @s[scores={PZLogik.5Wert=0}] run scoreboard players enable @s PZLogik.5Wert
execute as @a[distance=..25] unless entity @s[scores={PZLogik.5Wert=0}] run scoreboard players set @s PZLogik.5Wert 0


scoreboard objectives remove PZLogik.5Wert
kill @e[type=minecraft:armor_stand,tag=EtiLogik.5Alle]

Das Genau-Dann-Wenn-Gatter (≡)[Bearbeiten | Quelltext bearbeiten]

Logikgatter (Befehle) Bild 6.1.png

Das Genau-Dann-Wenn-Gatter verknüpft zwei Variablen und gibt für diese einen Wahrheitswert aus. Nur wenn beide Variablen den gleichen Wahrheitswert besitzen, wird "wahr" ausgegeben, ansonsten, wenn sie unterschiedlich sind, wird "falsch" ausgegeben. Für das Genau-Dann-Wenn-Gatter im Chat, werden die Namen von drei Rüstungsständer verwendet. Der Namen speichert dabei den Wahrheitswert "wahr" oder "falsch".

Einschalten
  • Befehl 6.1 Das Auslöser-Punkte-Ziel (trigger) wird erstellt.
  • Befehl 6.2 Der Rüstungsständer mit den möglichen Wahrheitswerten "wahr" und "falsch" wird erstellt und steht für die Variable "bool1".
  • Befehl 6.3 Ein zweiter Rüstungsständer, der den gleichen Wahrheitswert zugewiesen bekommt, wird erstellt und die Variable "bool2" repräsentiert.
  • Befehl 6.4 Ein dritter Rüstungsständer, der den Genau-Dann-Wenn-Verknüpfungs-Wahrheitswert zugewiesen bekommt, wird erstellt und die Variable "ergebnis" repräsentiert.
Wiederholen
  • Befehl 6.5 Wenn man im Chat auf das unterstrichene "NICHT bool1" für die bool1-Variable geklickt hat, wird der aktuelle Wahrheitswert der Variable negiert indem immer versucht wird "wahr" zu speichern, falls der Wert jedoch schon "wahr" war, schlägt der Befehl fehl und der dazu gespeicherte Zahlenwert wird null sein.
  • Befehl 6.6 Wenn man im Chat auf das unterstrichene "NICHT bool2" für die bool2-Variable geklickt hat, wird der aktuelle Wahrheitswert der Variable negiert.
  • Befehl 6.7 Wenn man den Wahrheitswert einer der beiden Variablen ändert und dabei der Rüstungsständer den Zahlenwert null besitzt, so bedeutet dass, dass er den Wahrheitswert "falsch" zugewiesen bekommt, damit der Wert negiert wurde.
  • Befehl 6.8 Wenn man den Wahrheitswert einer der beiden Variablen ändert, wird in dem ergebnis-Rüstungsständer die Anzahl der Rüstungsständer mit dem Wahrheitswert "wahr" gespeichert.
  • Befehl 6.9 Wenn man den Wahrheitswert einer der beiden Variablen ändert, wird geprüft ob es genau einen Rüstungsständer mit dem Wahrheitswert "wahr" gibt, dann wird dem ergebnis-Rüstungsständer der Wahrheitswert "falsch" gegeben.
  • Befehl 6.10 Wenn man den Wahrheitswert einer der beiden Variablen ändert, wird geprüft ob es null oder zwei Rüstungsständer mit dem Wahrheitswert "wahr" gibt, indem geprüft wird ob es nicht genau einen gibt. Dann wird dem ergebnis-Rüstungsständer der Wahrheitswert "wahr" gegeben.
  • Befehl 6.11 Nur wenn der Rüstungsständer, der für die bool1-Variable zuständig ist, existiert, wird nach Spielern in einem Umkreis von 25 Metern Ausschau gehalten und nur wenn sie den Auslöser betätigt haben und somit nicht den Wert null besitzen erhalten sie die Chat-Nachricht. Die Nachricht zeigt immer, wenn man eine Option angeklickt hat, die aktuellen Wahrheitswerte der Variablen an.
  • Befehl 6.12 Spieler die im Umkreis von 25 Metern nicht den Wert null besitzen, erhalten die Erlaubnis für den Auslöser auszulösen und erhalten den Wert null[B6.13].
Ausschalten

Befehlsblöcke mit Befehlen:
scoreboard objectives add PZLogik.6Wert trigger ["Logikgatter.6: ",{"text":"Wert der Variablen","bold":true}]
summon minecraft:armor_stand ~ ~3 ~ {Small:true,Marker:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"falsch","color":"red","bold":true}',Tags:["EtiLogik.6Alle","EtiLogik.6Eingabe","EtiLogik.6Bool1"]}
summon minecraft:armor_stand ~ ~3 ~ {Small:true,Marker:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"falsch","color":"red","bold":true}',Tags:["EtiLogik.6Alle","EtiLogik.6Eingabe","EtiLogik.6Bool2"]}
summon minecraft:armor_stand ~ ~3 ~ {Small:true,Marker:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"wahr","color":"green","bold":true}',Tags:["EtiLogik.6Alle","EtiLogik.6GENAU_DANN_WENN"]}


execute if entity @a[distance=..25,scores={PZLogik.6Wert=1}] as @e[type=minecraft:armor_stand,tag=EtiLogik.6Bool1] store success score @s PZLogik.6Wert run data merge entity @s {CustomName:'{"bold":true,"color":"green","text":"wahr"}'}
execute if entity @a[distance=..25,scores={PZLogik.6Wert=2}] as @e[type=minecraft:armor_stand,tag=EtiLogik.6Bool2] store success score @s PZLogik.6Wert run data merge entity @s {CustomName:'{"bold":true,"color":"green","text":"wahr"}'}
execute if entity @a[distance=..25,scores={PZLogik.6Wert=1..}] as @e[type=minecraft:armor_stand,tag=EtiLogik.6Eingabe,name="wahr",scores={PZLogik.6Wert=0},sort=nearest,limit=2] run data merge entity @s {CustomName:'{"bold":true,"color":"red","text":"falsch"}'}
execute if entity @a[distance=..25,scores={PZLogik.6Wert=1..}] as @e[type=minecraft:armor_stand,tag=EtiLogik.6GENAU_DANN_WENN,sort=nearest,limit=1] store result score @s PZLogik.6Wert if entity @e[type=minecraft:armor_stand,tag=EtiLogik.6Eingabe,name="wahr",sort=nearest,limit=2]
execute if entity @a[distance=..25,scores={PZLogik.6Wert=1..}] run data merge entity @e[type=minecraft:armor_stand,tag=EtiLogik.6GENAU_DANN_WENN,scores={PZLogik.6Wert=1},sort=nearest,limit=1] {CustomName:'{"bold":true,"color":"red","text":"falsch"}'}
execute if entity @a[distance=..25,scores={PZLogik.6Wert=1..}] as @e[type=minecraft:armor_stand,tag=EtiLogik.6GENAU_DANN_WENN,sort=nearest,limit=1] unless entity @s[scores={PZLogik.6Wert=1}] run data merge entity @s {CustomName:'{"bold":true,"color":"green","text":"wahr"}'}
execute if entity @e[type=minecraft:armor_stand,tag=EtiLogik.6Bool1,sort=nearest,limit=1] as @a[distance=..25] unless entity @s[scores={PZLogik.6Wert=0}] run tellraw @a[distance=..25] ["Logikgatter.6: ",{"text":"\nbool1 (","bold":true},{"text":"=NICHT bool1","color":"gray","underlined":true,"bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe um den Wert zu negieren"} },"clickEvent":{"action":"run_command","value":"/trigger PZLogik.6Wert set 1"} },{"text":") == ","bold":true},{"entity":"@e[type=minecraft:armor_stand,tag=EtiLogik.6Bool1,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"\nbool2 (","bold":true},{"text":"=NICHT bool2","color":"gray","underlined":true,"bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe um den Wert zu negieren"} },"clickEvent":{"action":"run_command","value":"/trigger PZLogik.6Wert set 2"} },{"text":") == ","bold":true},{"entity":"@e[type=minecraft:armor_stand,tag=EtiLogik.6Bool2,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"\nergebnis (","bold":true},{"text":"=(bool1 UND bool2) ODER ((NICHT bool1) UND (NICHT bool2))","color":"gray","bold":true},{"text":") == ","bold":true},{"entity":"@e[type=minecraft:armor_stand,tag=EtiLogik.6GENAU_DANN_WENN,sort=nearest,limit=1]","nbt":"CustomName","interpret":true} ]
execute as @a[distance=..25] unless entity @s[scores={PZLogik.6Wert=0}] run scoreboard players enable @s PZLogik.6Wert
execute as @a[distance=..25] unless entity @s[scores={PZLogik.6Wert=0}] run scoreboard players set @s PZLogik.6Wert 0


scoreboard objectives remove PZLogik.6Wert
kill @e[type=minecraft:armor_stand,tag=EtiLogik.6Alle]

Das Entweder-Oder-Gatter (⊻)[Bearbeiten | Quelltext bearbeiten]

Logikgatter (Befehle) Bild 7.1.png

Das Entweder-Oder-Gatter verknüpft zwei Variablen und gibt für diese einen Wahrheitswert aus. Nur wenn beide Variablen nicht den gleichen Wahrheitswert besitzen, wird "wahr" ausgegeben, ansonsten, wenn sie gleich sind, wird "falsch" ausgegeben. Für das Entweder-Oder-Gatter im Chat, werden die Namen von drei Rüstungsständer verwendet. Der Namen speichert dabei den Wahrheitswert "wahr" oder "falsch".

Einschalten
  • Befehl 7.1 Das Auslöser-Punkte-Ziel (trigger) wird erstellt.
  • Befehl 7.2 Der Rüstungsständer mit den möglichen Wahrheitswerten "wahr" und "falsch" wird erstellt und steht für die Variable "bool1".
  • Befehl 7.3 Ein zweiter Rüstungsständer, der den gleichen Wahrheitswert zugewiesen bekommt, wird erstellt und die Variable "bool2" repräsentiert.
  • Befehl 7.4 Ein dritter Rüstungsständer, der den Entweder-Oder-Verknüpfungs-Wahrheitswert zugewiesen bekommt, wird erstellt und die Variable "ergebnis" repräsentiert.
Wiederholen
  • Befehl 7.5 Wenn man im Chat auf das unterstrichene "NICHT bool1" für die bool1-Variable geklickt hat, wird der aktuelle Wahrheitswert der Variable negiert indem immer versucht wird "wahr" zu speichern, falls der Wert jedoch schon "wahr" war, schlägt der Befehl fehl und der dazu gespeicherte Zahlenwert wird null sein.
  • Befehl 7.6 Wenn man im Chat auf das unterstrichene "NICHT bool2" für die bool2-Variable geklickt hat, wird der aktuelle Wahrheitswert der Variable negiert.
  • Befehl 7.7 Wenn man den Wahrheitswert einer der beiden Variablen ändert und dabei der Rüstungsständer den Zahlenwert null besitzt, so bedeutet dass, dass er den Wahrheitswert "falsch" zugewiesen bekommt, damit der Wert negiert wurde.
  • Befehl 7.8 Wenn man den Wahrheitswert einer der beiden Variablen ändert, wird in dem ergebnis-Rüstungsständer die Anzahl der Rüstungsständer mit dem Wahrheitswert "wahr" gespeichert.
  • Befehl 7.9 Wenn man den Wahrheitswert einer der beiden Variablen ändert, wird geprüft ob es genau einen Rüstungsständer mit dem Wahrheitswert "wahr" gibt, dann wird dem ergebnis-Rüstungsständer der Wahrheitswert "wahr" gegeben.
  • Befehl 7.10 Wenn man den Wahrheitswert einer der beiden Variablen ändert, wird geprüft ob es null oder zwei Rüstungsständer mit dem Wahrheitswert "wahr" gibt, indem geprüft wird ob es nicht genau einen gibt. Dann wird dem ergebnis-Rüstungsständer der Wahrheitswert "falsch" gegeben.
  • Befehl 7.11 Nur wenn der Rüstungsständer, der für die bool1-Variable zuständig ist, existiert, wird nach Spielern in einem Umkreis von 25 Metern Ausschau gehalten und nur wenn sie den Auslöser betätigt haben und somit nicht den Wert null besitzen erhalten sie die Chat-Nachricht. Die Nachricht zeigt immer, wenn man eine Option angeklickt hat, die aktuellen Wahrheitswerte der Variablen an.
  • Befehl 7.12 Spieler die im Umkreis von 25 Metern nicht den Wert null besitzen, erhalten die Erlaubnis für den Auslöser auszulösen und erhalten den Wert null[B7.13].
Ausschalten

Befehlsblöcke mit Befehlen:
scoreboard objectives add PZLogik.7Wert trigger ["Logikgatter.7: ",{"text":"Wert der Variablen","bold":true}]
summon minecraft:armor_stand ~ ~3 ~ {Small:true,Marker:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"falsch","color":"red","bold":true}',Tags:["EtiLogik.7Alle","EtiLogik.7Eingabe","EtiLogik.7Bool1"]}
summon minecraft:armor_stand ~ ~3 ~ {Small:true,Marker:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"falsch","color":"red","bold":true}',Tags:["EtiLogik.7Alle","EtiLogik.7Eingabe","EtiLogik.7Bool2"]}
summon minecraft:armor_stand ~ ~3 ~ {Small:true,Marker:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"falsch","color":"red","bold":true}',Tags:["EtiLogik.7Alle","EtiLogik.7ENTWEDER_ODER"]}


execute if entity @a[distance=..25,scores={PZLogik.7Wert=1}] as @e[type=minecraft:armor_stand,tag=EtiLogik.7Bool1] store success score @s PZLogik.7Wert run data merge entity @s {CustomName:'{"bold":true,"color":"green","text":"wahr"}'}
execute if entity @a[distance=..25,scores={PZLogik.7Wert=2}] as @e[type=minecraft:armor_stand,tag=EtiLogik.7Bool2] store success score @s PZLogik.7Wert run data merge entity @s {CustomName:'{"bold":true,"color":"green","text":"wahr"}'}
execute if entity @a[distance=..25,scores={PZLogik.7Wert=1..}] as @e[type=minecraft:armor_stand,tag=EtiLogik.7Eingabe,name="wahr",scores={PZLogik.7Wert=0},sort=nearest,limit=2] run data merge entity @s {CustomName:'{"bold":true,"color":"red","text":"falsch"}'}
execute if entity @a[distance=..25,scores={PZLogik.7Wert=1..}] as @e[type=minecraft:armor_stand,tag=EtiLogik.7ENTWEDER_ODER,sort=nearest,limit=1] store result score @s PZLogik.7Wert if entity @e[type=minecraft:armor_stand,tag=EtiLogik.7Eingabe,name="wahr",sort=nearest,limit=2]
execute if entity @a[distance=..25,scores={PZLogik.7Wert=1..}] run data merge entity @e[type=minecraft:armor_stand,tag=EtiLogik.7ENTWEDER_ODER,scores={PZLogik.7Wert=1},sort=nearest,limit=1] {CustomName:'{"bold":true,"color":"green","text":"wahr"}'}
execute if entity @a[distance=..25,scores={PZLogik.7Wert=1..}] as @e[type=minecraft:armor_stand,tag=EtiLogik.7ENTWEDER_ODER,sort=nearest,limit=1] unless entity @s[scores={PZLogik.7Wert=1}] run data merge entity @s {CustomName:'{"bold":true,"color":"red","text":"falsch"}'}
execute if entity @e[type=minecraft:armor_stand,tag=EtiLogik.7Bool1,sort=nearest,limit=1] as @a[distance=..25] unless entity @s[scores={PZLogik.7Wert=0}] run tellraw @a[distance=..25] ["Logikgatter.7: ",{"text":"\nbool1 (","bold":true},{"text":"=NICHT bool1","color":"gray","underlined":true,"bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe um den Wert zu negieren"} },"clickEvent":{"action":"run_command","value":"/trigger PZLogik.7Wert set 1"} },{"text":") == ","bold":true},{"entity":"@e[type=minecraft:armor_stand,tag=EtiLogik.7Bool1,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"\nbool2 (","bold":true},{"text":"=NICHT bool2","color":"gray","underlined":true,"bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe um den Wert zu negieren"} },"clickEvent":{"action":"run_command","value":"/trigger PZLogik.7Wert set 2"} },{"text":") == ","bold":true},{"entity":"@e[type=minecraft:armor_stand,tag=EtiLogik.7Bool2,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"\nergebnis (","bold":true},{"text":"=((NICHT bool1) UND bool2) ODER (bool1 UND (NICHT bool2))","color":"gray","bold":true},{"text":") == ","bold":true},{"entity":"@e[type=minecraft:armor_stand,tag=EtiLogik.7ENTWEDER_ODER,sort=nearest,limit=1]","nbt":"CustomName","interpret":true} ]
execute as @a[distance=..25] unless entity @s[scores={PZLogik.7Wert=0}] run scoreboard players enable @s PZLogik.7Wert
execute as @a[distance=..25] unless entity @s[scores={PZLogik.7Wert=0}] run scoreboard players set @s PZLogik.7Wert 0


scoreboard objectives remove PZLogik.7Wert
kill @e[type=minecraft:armor_stand,tag=EtiLogik.7Alle]

Das Nicht-Und-Gatter (⊼)[Bearbeiten | Quelltext bearbeiten]

Logikgatter (Befehle) Bild 8.1.png

Das Nicht-Und-Gatter verknüpft zwei Variablen und gibt für diese einen Wahrheitswert aus. Nur wenn beide Variablen den Wert "wahr" besitzen gibt es als Ergebnis ebenfalls "falsch" aus, ansonsten immer "wahr". Für das Nicht-Und-Gatter im Chat, werden die Namen von drei Rüstungsständer verwendet. Der Namen speichert dabei den Wahrheitswert "wahr" oder "falsch".

Einschalten
  • Befehl 8.1 Das Auslöser-Punkte-Ziel (trigger) wird erstellt.
  • Befehl 8.2 Der Rüstungsständer mit den möglichen Wahrheitswerten "wahr" und "falsch" wird erstellt und steht für die Variable "bool1".
  • Befehl 8.3 Ein zweiter Rüstungsständer, der den gleichen Wahrheitswert zugewiesen bekommt, wird erstellt und die Variable "bool2" repräsentiert.
  • Befehl 8.4 Ein dritter Rüstungsständer, der den Nicht-Und-Verknüpfungs-Wahrheitswert zugewiesen bekommt, wird erstellt und die Variable "ergebnis" repräsentiert.
Wiederholen
  • Befehl 8.5 Wenn man im Chat auf das unterstrichene "NICHT bool1" für die bool1-Variable geklickt hat, wird der aktuelle Wahrheitswert der Variable negiert indem immer versucht wird "wahr" zu speichern, falls der Wert jedoch schon "wahr" war, schlägt der Befehl fehl und der dazu gespeicherte Zahlenwert wird null sein.
  • Befehl 8.6 Wenn man im Chat auf das unterstrichene "NICHT bool2" für die bool2-Variable geklickt hat, wird der aktuelle Wahrheitswert der Variable negiert.
  • Befehl 8.7 Wenn man den Wahrheitswert einer der beiden Variablen ändert und dabei der Rüstungsständer den Zahlenwert null besitzt, so bedeutet dass, dass er den Wahrheitswert "falsch" zugewiesen bekommt, damit der Wert negiert wurde.
  • Befehl 8.8 Wenn man den Wahrheitswert einer der beiden Variablen ändert, wird geprüft ob die beiden Rüstungsständer den Wahrheitswert "falsch" als Namen besitzen, nur wenn das der Fall ist, wird der Rüstungsständer, der die ergebnis-Variable präsentiert auf "wahr" gesetzt.
  • Befehl 8.9 Wenn man den Wahrheitswert einer der beiden Variablen ändert und mindestens ein Rüstungsständer besitzt den Wahrheitswert "wahr", dann wird der Rüstungsständer für die ergebnis-Variable auf den Wahrheitswert "falsch" gesetzt.
  • Befehl 8.10 Nur wenn der Rüstungsständer, der für die bool1-Variable zuständig ist, existiert, wird nach Spielern in einem Umkreis von 25 Metern Ausschau gehalten und nur wenn sie den Auslöser betätigt haben und somit nicht den Wert null besitzen erhalten sie die Chat-Nachricht. Die Nachricht zeigt immer, wenn man eine Option angeklickt hat, die aktuellen Wahrheitswerte der Variablen an.
  • Befehl 8.11 Spieler die im Umkreis von 25 Metern nicht den Wert null besitzen, erhalten die Erlaubnis für den Auslöser auszulösen und erhalten den Wert null[B8.12].
Ausschalten

Befehlsblöcke mit Befehlen:
scoreboard objectives add PZLogik.8Wert trigger ["Logikgatter.8: ",{"text":"Wert der Variablen","bold":true}]
summon minecraft:armor_stand ~ ~3 ~ {Small:true,Marker:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"falsch","color":"red","bold":true}',Tags:["EtiLogik.8Alle","EtiLogik.8Eingabe","EtiLogik.8Bool1"]}
summon minecraft:armor_stand ~ ~3 ~ {Small:true,Marker:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"falsch","color":"red","bold":true}',Tags:["EtiLogik.8Alle","EtiLogik.8Eingabe","EtiLogik.8Bool2"]}
summon minecraft:armor_stand ~ ~3 ~ {Small:true,Marker:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"wahr","color":"green","bold":true}',Tags:["EtiLogik.8Alle","EtiLogik.8NICHT_UND"]}


execute if entity @a[distance=..25,scores={PZLogik.8Wert=1}] as @e[type=minecraft:armor_stand,tag=EtiLogik.8Bool1] store success score @s PZLogik.8Wert run data merge entity @s {CustomName:'{"bold":true,"color":"green","text":"wahr"}'}
execute if entity @a[distance=..25,scores={PZLogik.8Wert=2}] as @e[type=minecraft:armor_stand,tag=EtiLogik.8Bool2] store success score @s PZLogik.8Wert run data merge entity @s {CustomName:'{"bold":true,"color":"green","text":"wahr"}'}
execute if entity @a[distance=..25,scores={PZLogik.8Wert=1..}] as @e[type=minecraft:armor_stand,tag=EtiLogik.8Eingabe,name="wahr",scores={PZLogik.8Wert=0},sort=nearest,limit=2] run data merge entity @s {CustomName:'{"bold":true,"color":"red","text":"falsch"}'}
execute if entity @a[distance=..25,scores={PZLogik.8Wert=1..}] if entity @e[type=minecraft:armor_stand,tag=EtiLogik.8Eingabe,name="falsch",sort=nearest,limit=1] run data merge entity @e[type=minecraft:armor_stand,tag=EtiLogik.8NICHT_UND,sort=nearest,limit=1] {CustomName:'{"bold":true,"color":"green","text":"wahr"}'}
execute if entity @a[distance=..25,scores={PZLogik.8Wert=1..}] if entity @e[type=minecraft:armor_stand,tag=EtiLogik.8Bool1,name="wahr",sort=nearest,limit=1] if entity @e[type=minecraft:armor_stand,tag=EtiLogik.8Bool2,name="wahr",sort=nearest,limit=1] run data merge entity @e[type=minecraft:armor_stand,tag=EtiLogik.8NICHT_UND,sort=nearest,limit=1] {CustomName:'{"bold":true,"color":"red","text":"falsch"}'}
execute if entity @e[type=minecraft:armor_stand,tag=EtiLogik.8Bool1,sort=nearest,limit=1] as @a[distance=..25] unless entity @s[scores={PZLogik.8Wert=0}] run tellraw @a[distance=..25] ["Logikgatter.8: ",{"text":"\nbool1 (","bold":true},{"text":"=NICHT bool1","color":"gray","underlined":true,"bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe um den Wert zu negieren"} },"clickEvent":{"action":"run_command","value":"/trigger PZLogik.8Wert set 1"} },{"text":") == ","bold":true},{"entity":"@e[type=minecraft:armor_stand,tag=EtiLogik.8Bool1,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"\nbool2 (","bold":true},{"text":"=NICHT bool2","color":"gray","underlined":true,"bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe um den Wert zu negieren"} },"clickEvent":{"action":"run_command","value":"/trigger PZLogik.8Wert set 2"} },{"text":") == ","bold":true},{"entity":"@e[type=minecraft:armor_stand,tag=EtiLogik.8Bool2,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"\nergebnis (","bold":true},{"text":"=NICHT(bool1 UND bool2)","color":"gray","bold":true},{"text":") == ","bold":true},{"entity":"@e[type=minecraft:armor_stand,tag=EtiLogik.8NICHT_UND,sort=nearest,limit=1]","nbt":"CustomName","interpret":true} ]
execute as @a[distance=..25] unless entity @s[scores={PZLogik.8Wert=0}] run scoreboard players enable @s PZLogik.8Wert
execute as @a[distance=..25] unless entity @s[scores={PZLogik.8Wert=0}] run scoreboard players set @s PZLogik.8Wert 0


scoreboard objectives remove PZLogik.8Wert
kill @e[type=minecraft:armor_stand,tag=EtiLogik.8Alle]

Das Nicht-Oder-Gatter (⊽)[Bearbeiten | Quelltext bearbeiten]

Logikgatter (Befehle) Bild 9.1.png

Das Nicht-Oder-Gatter verknüpft zwei Variablen und gibt für diese einen Wahrheitswert aus. Wenn mindestens eine der beiden Variablen den Wert "wahr" besitzt gibt es als Ergebnis ebenfalls "falsch" aus, nur wenn beide Variablen den Wert "falsch" besitzen wird "wahr" ausgegeben. Für das Nicht-Oder-Gatter im Chat, werden die Namen von drei Rüstungsständer verwendet. Der Namen speichert dabei den Wahrheitswert "wahr" oder "falsch".

Einschalten
  • Befehl 9.1 Das Auslöser-Punkte-Ziel (trigger) wird erstellt.
  • Befehl 9.2 Der Rüstungsständer mit den möglichen Wahrheitswerten "wahr" und "falsch" wird erstellt und steht für die Variable "bool1".
  • Befehl 9.3 Ein zweiter Rüstungsständer, der den gleichen Wahrheitswert zugewiesen bekommt, wird erstellt und die Variable "bool2" repräsentiert.
  • Befehl 9.4 Ein dritter Rüstungsständer, der den Nicht-Oder-Verknüpfungs-Wahrheitswert zugewiesen bekommt, wird erstellt und die Variable "ergebnis" repräsentiert.
Wiederholen
  • Befehl 9.5 Wenn man im Chat auf das unterstrichene "NICHT bool1" für die bool1-Variable geklickt hat, wird der aktuelle Wahrheitswert der Variable negiert indem immer versucht wird "wahr" zu speichern, falls der Wert jedoch schon "wahr" war, schlägt der Befehl fehl und der dazu gespeicherte Zahlenwert wird null sein.
  • Befehl 9.6 Wenn man im Chat auf das unterstrichene "NICHT bool2" für die bool2-Variable geklickt hat, wird der aktuelle Wahrheitswert der Variable negiert.
  • Befehl 9.7 Wenn man den Wahrheitswert einer der beiden Variablen ändert und dabei der Rüstungsständer den Zahlenwert null besitzt, so bedeutet dass, dass er den Wahrheitswert "falsch" zugewiesen bekommt, damit der Wert negiert wurde.
  • Befehl 9.8 Wenn man den Wahrheitswert einer der beiden Variablen ändert und mindestens ein Rüstungsständer besitzt den Wahrheitswert "wahr", dann wird der Rüstungsständer für die ergebnis-Variable auf den Wahrheitswert "falsch" gesetzt.
  • Befehl 9.9 Wenn man den Wahrheitswert einer der beiden Variablen ändert, wird geprüft ob die beiden Rüstungsständer den Wahrheitswert "falsch" als Namen besitzen, nur wenn das der Fall ist, wird der Rüstungsständer, der die ergebnis-Variable präsentiert auf "wahr" gesetzt.
  • Befehl 9.10 Nur wenn der Rüstungsständer, der für die bool1-Variable zuständig ist, existiert, wird nach Spielern in einem Umkreis von 25 Metern Ausschau gehalten und nur wenn sie den Auslöser betätigt haben und somit nicht den Wert null besitzen erhalten sie die Chat-Nachricht. Die Nachricht zeigt immer, wenn man eine Option angeklickt hat, die aktuellen Wahrheitswerte der Variablen an.
  • Befehl 9.11 Spieler die im Umkreis von 25 Metern nicht den Wert null besitzen, erhalten die Erlaubnis für den Auslöser auszulösen und erhalten den Wert null[B9.12].
Ausschalten

Befehlsblöcke mit Befehlen:
scoreboard objectives add PZLogik.9Wert trigger ["Logikgatter.9: ",{"text":"Wert der Variablen","bold":true}]
summon minecraft:armor_stand ~ ~3 ~ {Small:true,Marker:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"falsch","color":"red","bold":true}',Tags:["EtiLogik.9Alle","EtiLogik.9Eingabe","EtiLogik.9Bool1"]}
summon minecraft:armor_stand ~ ~3 ~ {Small:true,Marker:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"falsch","color":"red","bold":true}',Tags:["EtiLogik.9Alle","EtiLogik.9Eingabe","EtiLogik.9Bool2"]}
summon minecraft:armor_stand ~ ~3 ~ {Small:true,Marker:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"wahr","color":"green","bold":true}',Tags:["EtiLogik.9Alle","EtiLogik.9NICHT_ODER"]}


execute if entity @a[distance=..25,scores={PZLogik.9Wert=1}] as @e[type=minecraft:armor_stand,tag=EtiLogik.9Bool1] store success score @s PZLogik.9Wert run data merge entity @s {CustomName:'{"bold":true,"color":"green","text":"wahr"}'}
execute if entity @a[distance=..25,scores={PZLogik.9Wert=2}] as @e[type=minecraft:armor_stand,tag=EtiLogik.9Bool2] store success score @s PZLogik.9Wert run data merge entity @s {CustomName:'{"bold":true,"color":"green","text":"wahr"}'}
execute if entity @a[distance=..25,scores={PZLogik.9Wert=1..}] as @e[type=minecraft:armor_stand,tag=EtiLogik.9Eingabe,name="wahr",scores={PZLogik.9Wert=0},sort=nearest,limit=2] run data merge entity @s {CustomName:'{"bold":true,"color":"red","text":"falsch"}'}
execute if entity @a[distance=..25,scores={PZLogik.9Wert=1..}] if entity @e[type=minecraft:armor_stand,tag=EtiLogik.9Bool1,name="falsch",sort=nearest,limit=1] if entity @e[type=minecraft:armor_stand,tag=EtiLogik.9Bool2,name="falsch",sort=nearest,limit=1] run data merge entity @e[type=minecraft:armor_stand,tag=EtiLogik.9NICHT_ODER,sort=nearest,limit=1] {CustomName:'{"bold":true,"color":"green","text":"wahr"}'}
execute if entity @a[distance=..25,scores={PZLogik.9Wert=1..}] if entity @e[type=minecraft:armor_stand,tag=EtiLogik.9Eingabe,name="wahr",sort=nearest,limit=1] run data merge entity @e[type=minecraft:armor_stand,tag=EtiLogik.9NICHT_ODER,sort=nearest,limit=1] {CustomName:'{"bold":true,"color":"red","text":"falsch"}'}
execute if entity @e[type=minecraft:armor_stand,tag=EtiLogik.9Bool1,sort=nearest,limit=1] as @a[distance=..25] unless entity @s[scores={PZLogik.9Wert=0}] run tellraw @a[distance=..25] ["Logikgatter.9: ",{"text":"\nbool1 (","bold":true},{"text":"=NICHT bool1","color":"gray","underlined":true,"bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe um den Wert zu negieren"} },"clickEvent":{"action":"run_command","value":"/trigger PZLogik.9Wert set 1"} },{"text":") == ","bold":true},{"entity":"@e[type=minecraft:armor_stand,tag=EtiLogik.9Bool1,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"\nbool2 (","bold":true},{"text":"=NICHT bool2","color":"gray","underlined":true,"bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe um den Wert zu negieren"} },"clickEvent":{"action":"run_command","value":"/trigger PZLogik.9Wert set 2"} },{"text":") == ","bold":true},{"entity":"@e[type=minecraft:armor_stand,tag=EtiLogik.9Bool2,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"\nergebnis (","bold":true},{"text":"=NICHT(bool1 ODER bool2)","color":"gray","bold":true},{"text":") == ","bold":true},{"entity":"@e[type=minecraft:armor_stand,tag=EtiLogik.9NICHT_ODER,sort=nearest,limit=1]","nbt":"CustomName","interpret":true} ]
execute as @a[distance=..25] unless entity @s[scores={PZLogik.9Wert=0}] run scoreboard players enable @s PZLogik.9Wert
execute as @a[distance=..25] unless entity @s[scores={PZLogik.9Wert=0}] run scoreboard players set @s PZLogik.9Wert 0


scoreboard objectives remove PZLogik.9Wert
kill @e[type=minecraft:armor_stand,tag=EtiLogik.9Alle]