Technik Wiki
Registrieren
Advertisement
Gruppe: Grid Redstone-Verstärker
Schaltnetze

Grid Roter Sand blass mit Mechaniken

Grid Redstone mit Redstone
                Hier:
Grid Befehlsblock mit Befehlen
Verfügbar in:
Wiki Redstone-Welt 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[]

Vergleicher (Befehle) Bild 1.1

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" und 0 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:
scoreboard objectives add PZVergl.1Bool trigger ["Vergleicher.1: ",{"text":"Boolescher Wert der Variablen","bold":true}]
summon minecraft:armor_stand ~ ~3 ~ {Small:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"wahr","color":"green","bold":true}',Tags:["EtiVergl.1Alle","EtiVergl.1GLEICH"]}
summon minecraft:armor_stand ~ ~3 ~ {Small:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"falsch","color":"red","bold":true}',Tags:["EtiVergl.1Alle","EtiVergl.1UNGLEICH"]}
execute store result score @e[type=minecraft:armor_stand,tag=EtiVergl.1GLEICH,sort=nearest,limit=1] PZVergl.1Bool store result score @e[type=minecraft:armor_stand,tag=EtiVergl.1UNGLEICH,sort=nearest,limit=1] PZVergl.1Bool run scoreboard players operation VarVergl.1Variable1 PZVergl.1Bool = VarVergl.1Variable2 PZVergl.1Bool


execute if entity @a[distance=..25,scores={PZVergl.1Bool=1}] run scoreboard players add VarVergl.1Variable1 PZVergl.1Bool 1
execute if entity @a[distance=..25,scores={PZVergl.1Bool=2}] run scoreboard players add VarVergl.1Variable2 PZVergl.1Bool 1
execute if entity @a[distance=..25,scores={PZVergl.1Bool=1..}] store success score @e[type=minecraft:armor_stand,tag=EtiVergl.1GLEICH,sort=nearest,limit=1] PZVergl.1Bool if score VarVergl.1Variable1 PZVergl.1Bool = VarVergl.1Variable2 PZVergl.1Bool
execute if entity @a[distance=..25,scores={PZVergl.1Bool=1..}] store success score @e[type=minecraft:armor_stand,tag=EtiVergl.1UNGLEICH,sort=nearest,limit=1] PZVergl.1Bool unless score VarVergl.1Variable1 PZVergl.1Bool = VarVergl.1Variable2 PZVergl.1Bool
execute if entity @a[distance=..25,scores={PZVergl.1Bool=1..}] run data merge entity @e[type=minecraft:armor_stand,tag=EtiVergl.1Alle,scores={PZVergl.1Bool=1},sort=nearest,limit=1] {CustomName:'{"bold":true,"color":"green","text":"wahr"}'}
execute if entity @a[distance=..25,scores={PZVergl.1Bool=1..}] run data merge entity @e[type=minecraft:armor_stand,tag=EtiVergl.1Alle,scores={PZVergl.1Bool=0},sort=nearest,limit=1] {CustomName:'{"bold":true,"color":"red","text":"falsch"}'}
execute if entity @e[type=minecraft:armor_stand,tag=EtiVergl.1GLEICH,sort=nearest,limit=1] as @a[distance=..25] unless entity @s[scores={PZVergl.1Bool=0}] run tellraw @s ["Vergleicher.1: ",{"text":"\nvar1 + 1 = ","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für die Variable 1"} },"clickEvent":{"action":"run_command","value":"/trigger PZVergl.1Bool set 1"} },{"score":{"name":"VarVergl.1Variable1","objective":"PZVergl.1Bool"},"color":"dark_purple","bold":true},{"text":"\nvar2 + 1 = ","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für die Variable 2"} },"clickEvent":{"action":"run_command","value":"/trigger PZVergl.1Bool set 2"} },{"score":{"name":"VarVergl.1Variable2","objective":"PZVergl.1Bool"},"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.1Bool set 3"} },{"entity":"@e[type=minecraft:armor_stand,tag=EtiVergl.1GLEICH,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.1Bool set 3"} },{"entity":"@e[type=minecraft:armor_stand,tag=EtiVergl.1UNGLEICH,sort=nearest,limit=1]","nbt":"CustomName","interpret":true}]
execute as @a[distance=..25] unless entity @s[scores={PZVergl.1Bool=0}] run scoreboard players enable @s PZVergl.1Bool
execute as @a[distance=..25] unless entity @s[scores={PZVergl.1Bool=0}] run scoreboard players set @s PZVergl.1Bool 0


scoreboard objectives remove PZVergl.1Bool
kill @e[type=minecraft:armor_stand,tag=EtiVergl.1Alle]

Variante 2[]

Vergleicher (Befehle) Bild 2.1 Vergleicher (Befehle) Bild 2.2

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.

Editor Icon 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.

Editor Icon 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.

Editor Icon 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]


Disambig color
 
Grid Grasblock
Auch im Minecraft Wiki wird das Thema dieser Technik behandelt:
Redstone-Komparator
Advertisement