Gruppe: Schaltnetze |
mit Mechaniken |
mit Redstone |
Hier: mit Befehlen |
Verfügbar in: Redstone-Welt |
Der Vergleicher kann erkennen, je nach Ausführung, ob die Werte von den zu vergleichenden Variablen gleich groß =
, ungleich !=
, kleiner <
, kleiner gleich <=
, größer >
oder größer gleich >=
sind.
Variante 1[]
Folgende Voraussetzungen werden benötigt: | ||
---|---|---|
|
Folgende Materialien werden benötigt: | |
---|---|
|
Dieser Vergleicher kann zwei Variablen die man mit Hilfe der Chat-Eingabe erhöhen kann, auf Gleichheit und Ungleichheit prüfen. Die Ergebnisse davon werden ebenfalls im Chat angezeigt.
- Einschalten
- Befehl 1.1 Das Punktestand-Ziel wird erstellt, welches es ermöglicht, dass man im Chat auf Nachrichten etwas auslösen kann.
- Befehl 1.2 Ein Rüstungsständer für die Gleichheit mit dem Namen "wahr" wird erstellt.
- Befehl 1.3 Ein Rüstungsständer für die Ungleichheit mit dem Namen "falsch" wird erstellt.
- Befehl 1.4 Den beiden Rüstungsständern sowie den beiden Variablen wird der Wert null zugewiesen. Dies funktioniert, weil keine der Variablen einen Wert besitzt und dann wird einfach der Wert null angenommen.
- Wiederholen
- Befehl 1.5 Wenn der Spieler den Auslöser im Chat für die erste Variable ausgelöst hat, besitzt er den Wert eins und lässt somit den Wert der Variable 1 um eins erhöhen.
- Befehl 1.6 Gleiches gilt für die zweite Variable, auch hier wird sie um eins erhöht wenn der Spieler auf diese geklickt hat.
- Befehl 1.7 Wenn der Spieler irgend eine Schaltfläche im Chat angeklickt hat, wird geprüft ob die beiden Variablen gleich sind. Das Ergebnis daraus wird dann in den Gleichheits-Rüstungsständer gespeichert.
- Befehl 1.8 Gleiches gilt für den Ungleichheits-Rüstungsständer.
- Befehl 1.9 Im gleichen Moment wird aus dem Wert des Rüstungsständer auch der entsprechende Name gesetzt:
1
für "wahr" und0
für "falsch"[B1.10] - Befehl 1.11 Wenn sich der Gleichheits-Rüstungsständer in der Welt befindet, wird allen Spielern im Umkreis von 25 Metern eine Chat-Nachricht angezeigt, wenn sie nicht den Wert null besitzen. In dieser können die beiden Variablen angeklickt werden und die Ergebnisse werden angezeigt.
- Befehl 1.12 Spieler die nicht den Wert null besitzen erhalten die Möglichkeit den Auslöser zu betätigen.
- Befehl 1.13 Ebenfalls wird diesen Spielern auch der Wert auf null gesetzt.
- Ausschalten
- Befehl 1.14 Das Punktestand-Ziel wird entfernt
- Befehl 1.15 Alle Rüstungsständer die erstellt wurden, werden wieder gelöscht.
Befehlsblöcke mit Befehlen: |
|
Variante 2[]
Folgende Voraussetzungen werden benötigt: | ||
---|---|---|
|
Folgende Materialien werden benötigt: | |
---|---|
|
Mit diesem Vergleicher kann man zwei Variablen auf Gleichheit, Ungleichheit, größergleich, kleinergleich, größer und kleiner prüfen. Die Variablen lassen sich per Chat-Eingabe erhöhen oder erniedrigen. Die Ergebnisse werden auch im Chat ausgegeben.
- Einschalten
- Befehl 2.1 Wenn der Hebel umgelegt wird, wird die Start-Funktion gestartet.
- Wiederholen
- Befehl 2.2 Beim Einschalten wird auch der Wiederhol-Befehlsblock gestartet, der jeden Tick die Zyklus-Funktion lädt.
- Ausschalten
- Befehl 2.3 Wenn der Hebel wieder in Ausgangsstellung zurück gelegt wird, wird die Stopp-Funktion ausgelöst und schaltet alles wieder ab.
Befehlsblöcke mit Befehlen: |
|
Variante 2: Start-Funktion
Die Start-Funktion erstellt ein Punktestand-Ziel mit den Variablen die verglichen werden sollen, inklusive der Rüstungsständern mit "wahr" und "falsch" als Namen.
vergleicher:v2start.mcfunction
|
# Das Punktestand-Ziel wird erstellt scoreboard objectives add PZVergl.2Bool trigger ["Vergleicher.2: ",{"text":"Boolescher Wert der Variablen","bold":true}] # Sechs Rüstungsständer mit Wahrheitswerten im Namen für gleich, ungleich, größergleich, kleinergleich, größer und kleiner werden erstellt summon minecraft:armor_stand ~ ~1 ~ {Small:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"wahr","color":"green","bold":true}',Tags:["EtiVergl.2Alle","EtiVergl.2GLEICH"]} summon minecraft:armor_stand ~ ~2 ~ {Small:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"falsch","color":"red","bold":true}',Tags:["EtiVergl.2Alle","EtiVergl.2UNGLEICH"]} summon minecraft:armor_stand ~ ~3 ~ {Small:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"wahr","color":"green","bold":true}',Tags:["EtiVergl.2Alle","EtiVergl.2GROESSERGLEICH"]} summon minecraft:armor_stand ~ ~4 ~ {Small:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"wahr","color":"green","bold":true}',Tags:["EtiVergl.2Alle","EtiVergl.2KLEINERGLEICH"]} summon minecraft:armor_stand ~ ~5 ~ {Small:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"falsch","color":"red","bold":true}',Tags:["EtiVergl.2Alle","EtiVergl.2GROESSER"]} summon minecraft:armor_stand ~ ~6 ~ {Small:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"falsch","color":"red","bold":true}',Tags:["EtiVergl.2Alle","EtiVergl.2KLEINER"]} # Die Variablen 1 und 2 werden mit den Werten null erstellt scoreboard players set VarVergl.2Variable1 PZVergl.2Bool 0 scoreboard players set VarVergl.2Variable2 PZVergl.2Bool 0 # Die Rüstungsständer erhalten die Werte null und eins, für ihr jeweiliges Ergebnis scoreboard players set @e[type=minecraft:armor_stand,tag=EtiVergl.2GLEICH,sort=nearest,limit=1] PZVergl.2Bool 1 scoreboard players set @e[type=minecraft:armor_stand,tag=EtiVergl.2UNGLEICH,sort=nearest,limit=1] PZVergl.2Bool 0 scoreboard players set @e[type=minecraft:armor_stand,tag=EtiVergl.2GROESSERGLEICH,sort=nearest,limit=1] PZVergl.2Bool 1 scoreboard players set @e[type=minecraft:armor_stand,tag=EtiVergl.2KLEINERGLEICH,sort=nearest,limit=1] PZVergl.2Bool 1 scoreboard players set @e[type=minecraft:armor_stand,tag=EtiVergl.2GROESSER,sort=nearest,limit=1] PZVergl.2Bool 0 scoreboard players set @e[type=minecraft:armor_stand,tag=EtiVergl.2KLEINER,sort=nearest,limit=1] PZVergl.2Bool 0 |
Variante 2: Zyklus-Funktion
Die Zyklus-Funktion gibt dem Spieler eine Chat-Nachricht mit zwei Variablen die er erhöhen oder verringern kann. Je nach Werte die eingestellt sind, werden dann die Ausgaben der Vergleiche angezeigt.
vergleicher:v2zyklus.mcfunction
|
# Wenn ein Spieler auf den Auslöser geklickt hat, wird je nach Klick-Wert die Variable 1 oder 2 um eins erhöht oder verringert execute if entity @a[distance=..25,scores={PZVergl.2Bool=1}] run scoreboard players add VarVergl.2Variable1 PZVergl.2Bool 1 execute if entity @a[distance=..25,scores={PZVergl.2Bool=2}] run scoreboard players remove VarVergl.2Variable1 PZVergl.2Bool 1 execute if entity @a[distance=..25,scores={PZVergl.2Bool=3}] run scoreboard players add VarVergl.2Variable2 PZVergl.2Bool 1 execute if entity @a[distance=..25,scores={PZVergl.2Bool=4}] run scoreboard players remove VarVergl.2Variable2 PZVergl.2Bool 1 # Wenn im Chat auf ein Feld geklickt wurde, besitzt der Spieler mindestens den Wert eins. Die Ergebnisse werden daraufhin als Wert in die Rüstungsständer gespeichert execute if entity @a[distance=..25,scores={PZVergl.2Bool=1..}] store success score @e[type=minecraft:armor_stand,tag=EtiVergl.2GLEICH,sort=nearest,limit=1] PZVergl.2Bool if score VarVergl.2Variable1 PZVergl.2Bool = VarVergl.2Variable2 PZVergl.2Bool execute if entity @a[distance=..25,scores={PZVergl.2Bool=1..}] store success score @e[type=minecraft:armor_stand,tag=EtiVergl.2UNGLEICH,sort=nearest,limit=1] PZVergl.2Bool unless score VarVergl.2Variable1 PZVergl.2Bool = VarVergl.2Variable2 PZVergl.2Bool execute if entity @a[distance=..25,scores={PZVergl.2Bool=1..}] store success score @e[type=minecraft:armor_stand,tag=EtiVergl.2GROESSERGLEICH,sort=nearest,limit=1] PZVergl.2Bool if score VarVergl.2Variable1 PZVergl.2Bool >= VarVergl.2Variable2 PZVergl.2Bool execute if entity @a[distance=..25,scores={PZVergl.2Bool=1..}] store success score @e[type=minecraft:armor_stand,tag=EtiVergl.2KLEINERGLEICH,sort=nearest,limit=1] PZVergl.2Bool if score VarVergl.2Variable1 PZVergl.2Bool <= VarVergl.2Variable2 PZVergl.2Bool execute if entity @a[distance=..25,scores={PZVergl.2Bool=1..}] store success score @e[type=minecraft:armor_stand,tag=EtiVergl.2GROESSER,sort=nearest,limit=1] PZVergl.2Bool if score VarVergl.2Variable1 PZVergl.2Bool > VarVergl.2Variable2 PZVergl.2Bool execute if entity @a[distance=..25,scores={PZVergl.2Bool=1..}] store success score @e[type=minecraft:armor_stand,tag=EtiVergl.2KLEINER,sort=nearest,limit=1] PZVergl.2Bool if score VarVergl.2Variable1 PZVergl.2Bool < VarVergl.2Variable2 PZVergl.2Bool # Die Rüstungsständer können den Wert ein oder null besitzen. Je nach Wert wird dann der Wahrheitswert als Name für den jeweiligen Rüstungsständer festgesetzt execute if entity @a[distance=..25,scores={PZVergl.2Bool=1..}] as @e[type=minecraft:armor_stand,tag=EtiVergl.2Alle,scores={PZVergl.2Bool=1}] run data merge entity @s {CustomName:'{"bold":true,"color":"green","text":"wahr"}'} execute if entity @a[distance=..25,scores={PZVergl.2Bool=1..}] as @e[type=minecraft:armor_stand,tag=EtiVergl.2Alle,scores={PZVergl.2Bool=0}] run data merge entity @s {CustomName:'{"bold":true,"color":"red","text":"falsch"}'} # Wenn eingeschaltet wird, benötigt das Erzeugen der Rüstungsständer einen Tick, deshalb wird nach einem geprüft. Hat der Spieler nicht den Wert null, so erhält er die Chat-Nachricht. Dort sieht er die Ergebnisse der Vergleiche execute if entity @e[type=minecraft:armor_stand,tag=EtiVergl.2GLEICH,sort=nearest,limit=1] as @a[distance=..25] unless entity @s[scores={PZVergl.2Bool=0}] run tellraw @s ["Vergleicher.2: ",{"text":"\nvar1 (","bold":true},{"text":"+1","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für die Variable1 +1"} },"clickEvent":{"action":"run_command","value":"/trigger PZVergl.2Bool set 1"} },{"text":"!","bold":true},{"text":"-1","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für die Variable1 -1"} },"clickEvent":{"action":"run_command","value":"/trigger PZVergl.2Bool set 2"} },{"text":") == ","bold":true},{"score":{"name":"VarVergl.2Variable1","objective":"PZVergl.2Bool"},"color":"dark_purple","bold":true},{"text":"\nvar2 (","bold":true},{"text":"+1","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für die Variable2 +1"} },"clickEvent":{"action":"run_command","value":"/trigger PZVergl.2Bool set 3"} },{"text":"!","bold":true},{"text":"-1","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für die Variable2 -1"} },"clickEvent":{"action":"run_command","value":"/trigger PZVergl.2Bool set 4"} },{"text":") == ","bold":true},{"score":{"name":"VarVergl.2Variable2","objective":"PZVergl.2Bool"},"color":"dark_purple","bold":true},{"text":"\n(var1 == var2) == ","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für den Wahrheitswert (Gleichheit)"} },"clickEvent":{"action":"run_command","value":"/trigger PZVergl.2Bool set 5"} },{"entity":"@e[type=minecraft:armor_stand,tag=EtiVergl.2GLEICH,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"\n(var1 != var2) == ","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für den Wahrheitswert (Ungleichheit)"} },"clickEvent":{"action":"run_command","value":"/trigger PZVergl.2Bool set 5"} },{"entity":"@e[type=minecraft:armor_stand,tag=EtiVergl.2UNGLEICH,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"\n(var1 >= var2) == ","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für den Wahrheitswert (Größergleich)"} },"clickEvent":{"action":"run_command","value":"/trigger PZVergl.2Bool set 5"} },{"entity":"@e[type=minecraft:armor_stand,tag=EtiVergl.2GROESSERGLEICH,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"\n(var1 <= var2) == ","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für den Wahrheitswert (Kleinergleich)"} },"clickEvent":{"action":"run_command","value":"/trigger PZVergl.2Bool set 5"} },{"entity":"@e[type=minecraft:armor_stand,tag=EtiVergl.2KLEINERGLEICH,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"\n(var1 > var2) == ","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für den Wahrheitswert (Größer)"} },"clickEvent":{"action":"run_command","value":"/trigger PZVergl.2Bool set 5"} },{"entity":"@e[type=minecraft:armor_stand,tag=EtiVergl.2GROESSER,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"\n(var1 < var2) == ","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für den Wahrheitswert (Kleiner)"} },"clickEvent":{"action":"run_command","value":"/trigger PZVergl.2Bool set 5"} },{"entity":"@e[type=minecraft:armor_stand,tag=EtiVergl.2KLEINER,sort=nearest,limit=1]","nbt":"CustomName","interpret":true}] # Spieler die keinen Wert besitzen oder einen über null erhalten die Erlaubnis einen Auslöser zu nutzen und bekommen den Wert null zugewiesen execute as @a[distance=..25] unless entity @s[scores={PZVergl.2Bool=0}] run scoreboard players enable @s PZVergl.2Bool execute as @a[distance=..25] unless entity @s[scores={PZVergl.2Bool=0}] run scoreboard players set @s PZVergl.2Bool 0 |
Variante 2: Stopp-Funktion
Die Stopp-Funktion löscht das Punktestand-Ziel und die Rüstungsständer wieder.
vergleicher:v2stopp.mcfunction
|
# Das Punktestand-Ziel sowie alle Rüstungsständer werden entfernt scoreboard objectives remove PZVergl.2Bool kill @e[type=minecraft:armor_stand,tag=EtiVergl.2Alle] |
|
Zähler => Redstone (erweitert), Befehle; Halbaddierer => Redstone; Volladdierer => Redstone; Halbsubtrahierer => Redstone; Vollsubtrahierer => Redstone; Bitschieber => Redstone; Kodierer und Dekodierer => Redstone, Befehle; Zahlen-Anzeige => Redstone; Vergleicher => Redstone, Befehle; Abzweig-Konstrukt => Befehle; Schleifen-Konstrukt => Befehle; Nur-Lese-Speicher => Redstone (erweitert); Direktzugriffsspeicher => Redstone, Befehle (erweitert); |
|