Technik Wiki
Registrieren
Advertisement
Gruppe: Grid Redstone-Komparator
Schaltwerke

Grid Roter Sand blass mit Mechaniken

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

Das Dividierwerk kann zwei Zahlen ganzzahlig teilen und das Ergebnis in eine Variable speichern. Man kann zwar durch null teilen, aber ein sinnvoll definierter Wert kann dabei nicht berechnet werden. Den Divisionsrest kann das Dividierwerk nicht berechnen, dazu wird ein Moduluswerk benutzt.

Variante 1[]

Dividierwerk (Befehle) Bild 1.1

Das Dividierwerk ermöglicht es einem, Variablen-Werte ganzzahlig zu teilen. Das Ergebnis wird in eine eigene Variable gespeichert. Durch null teilen ergibt den Wert der geteilt werden sollte, auch wenn er grundsätzlich nicht definiert ist.

Einschalten

Wenn man das Dividierwerk einschaltet, wird das Punkte-Ziel erstellt und alle Variablen mit Werten gesetzt.

  • Befehl 1.1 Das Wert-Ziel das durch den trigger-Befehl ausgelöst werden kann, dient zur Speicherung der Werte von Variablen.
  • Befehl 1.2 Die Variable 1 und die Ergebnis-Variable werden durch den operation-Befehl gesetzt, welche automatisch den Wert 0 erhalten und die Variable 2 erhält aus dieser Zuweisung wiederum durch den success-Befehl den Wert 1 zugewiesen.
Wiederholen

Beim Einschalten wird ebenfalls der Wiederhol-Befehlsblock aktiv.

  • Befehl 1.3 Wenn der Spieler auf die erste Variable geklickt hat, so erhält er den Wert 1 und das lässt die Variable 1 um den Wert 1 erhöhen.
  • Befehl 1.4 Wie auch bei der Variable 1 wird durch das Klicken auf die zweite Variable, dieser der Wert um eins erhöht.
  • Befehl 1.5 Hat man auf den Quotienten der beiden Variablen geklickt, so erhält der Spieler den Wert 3. Hierbei wird der Wert von Variable 1 der Ergebnis-Variable zugewiesen.
  • Befehl 1.6 Gleich im Anschluss wird auf die Ergebnis-Variable der Wert von der zweiten Variable geteilt.
  • Befehl 1.7 Bevor die tellraw-Nachricht ausgegeben wird, muss geprüft werden ob die Variable 1 bereits einen Wert besitzt, ansonsten erscheint beim Einschalten des Dividierwerks die Nachricht mehrmals. Nach dieser Prüfung wird getestet ob der Spieler nicht den Wert 0 hat, denn dann hat er auf eine der Variablen geklickt und so diese Nachricht ausgelöst. Die Nachricht selbst gibt die aktuellen Werte der Variablen und das Ergebnis aus. Jedoch muss auf das Ergebnis selbst geklickt werden damit es aktuell ist.
  • Befehl 1.8 Alle Spieler die in einem Radius von 15 Metern um die Befehlsquelle stehen und nicht den Wert 0 besitzen, erhalten die Freischaltung für den trigger-Befehl.
  • Befehl 1.9 Und ebenfalls wird ihnen der Wert auf 0 gesetzt.
Ausschalten

Wenn man das Dividierwerk wieder ausschaltet, wird das Punkte-Ziel entfernt

  • Befehl 1.10 Das Ziel für die Variablen-Werte wird gelöscht.

Befehlsblöcke mit Befehlen:
scoreboard objectives add PZDivW.1Wert trigger ["Dividierwerk.1: ",{"text":"Wert der Variablen","bold":true}]
execute store success score VarDivW.1Variable2 PZDivW.1Wert run scoreboard players operation VarDivW.1Ergebnis PZDivW.1Wert = VarDivW.1Variable1 PZDivW.1Wert


execute if entity @p[distance=..15,scores={PZDivW.1Wert=1}] run scoreboard players add VarDivW.1Variable1 PZDivW.1Wert 1
execute if entity @p[distance=..15,scores={PZDivW.1Wert=2}] run scoreboard players add VarDivW.1Variable2 PZDivW.1Wert 1
execute if entity @p[distance=..15,scores={PZDivW.1Wert=3}] run scoreboard players operation VarDivW.1Ergebnis PZDivW.1Wert = VarDivW.1Variable1 PZDivW.1Wert
execute if entity @p[distance=..15,scores={PZDivW.1Wert=3}] run scoreboard players operation VarDivW.1Ergebnis PZDivW.1Wert /= VarDivW.1Variable2 PZDivW.1Wert
execute if score VarDivW.1Variable1 PZDivW.1Wert matches 0.. as @a[distance=..15] unless entity @s[scores={PZDivW.1Wert=0}] run tellraw @a[distance=..15] ["Dividierwerk.1:\n",{"text":"var1 (","bold":true},{"text":"=var1 + 1","color":"gray","bold":true,"underlined":true,"hoverEvent":{"action":"show_text","contents":{"text":"Tippe für Variable1 + 1 (Divident)"} },"clickEvent":{"action":"run_command","value":"/trigger PZDivW.1Wert set 1"} },{"text":") == ","bold":true},{"score":{"name":"VarDivW.1Variable1","objective":"PZDivW.1Wert"},"color":"dark_purple","bold":true},"\n",{"text":"var2 (","bold":true},{"text":"=var2 + 1","color":"gray","bold":true,"underlined":true,"hoverEvent":{"action":"show_text","contents":{"text":"Tippe für Variable2 + 1 (Divisor)"} },"clickEvent":{"action":"run_command","value":"/trigger PZDivW.1Wert set 2"} },{"text":") == ","bold":true},{"score":{"name":"VarDivW.1Variable2","objective":"PZDivW.1Wert"},"color":"dark_purple","bold":true},"\n",{"text":"ergebnis (","bold":true},{"text":"=var1 / var2","color":"gray","bold":true,"underlined":true,"hoverEvent":{"action":"show_text","contents":{"text":"Tippe für das Ergebnis (Quotient)"} },"clickEvent":{"action":"run_command","value":"/trigger PZDivW.1Wert set 3"} },{"text":") == ","bold":true},{"score":{"name":"VarDivW.1Ergebnis","objective":"PZDivW.1Wert"},"color":"dark_purple","bold":true} ]
execute as @a[distance=..15] unless entity @s[scores={PZDivW.1Wert=0}] run scoreboard players enable @s PZDivW.1Wert
execute as @a[distance=..15] unless entity @s[scores={PZDivW.1Wert=0}] run scoreboard players set @s PZDivW.1Wert 0


scoreboard objectives remove PZDivW.1Wert


Disambig color
Advertisement