Das offizielle Minecraft Wiki twittert hier: Wiki-Twitter  –  Chatte im Wiki-Discord  – Noch keinen Server gefunden? Es gibt einen Wiki-Server

Hello there! We are conducting a survey to better understand the user experience in making a first edit. If you have ever made an edit on Gamepedia, please fill out the survey. Thank you!

Moduluswerk (Befehle)

Aus Technik Wiki
Wechseln zu: Navigation, Suche
Gruppe: Grid Redstone-Komparator.png
Schaltwerke

Grid Roter Sand blass.png mit Mechaniken

Grid Redstone blass.png mit Redstone
                Hier:
Grid Befehlsblock.png mit Befehlen

Die vorgestellte Technik kann in der Redstone-Welt angesehen werden.

Das Moduluswerk berechnet mit Hilfe des Modulus den Divisionsrest einer Division. Die Formel für den Modulus lautet a mod b = a-(a/b)*b, wobei dort eine Ganzzahldivision durchgeführt wird.

Inhaltsverzeichnis

Variante 1[Bearbeiten | Quelltext bearbeiten]

Redstone-Schaltkreise Symbol.png
Diese neue oder überarbeitete Technik ist noch nicht in der aktuellen Redstone-Welt vorhanden.
In einem der nächsten Updates wird sie dort hinzugefügt werden.

Moduluswerk (Befehle) Bild 1.1.png

Das Moduluswerk berechnet mit Hilfe von zwei Variablen den Quotienten, sowie den Divisionsrest aus.

Einschalten

Wenn man das Moduluswerk einschaltet, wird das Punktestand-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 2 werden durch den operation-Befehl gesetzt, welche automatisch den Wert 0 erhalten und die Divisions- sowie die Modulus-Ergebnis-Variable erhalten aus dieser Zuweisung wiederum durch den result-Befehl den Wert 0.
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 oder den Modulus-Term der beiden Variablen geklickt, so erhält der Spieler den Wert 3. Hierbei wird der Wert von Variable 1 der Divisions- und Modulus-Ergebnis-Variable zugewiesen.
  • Befehl 1.6 Gleich im Anschluss wird auf die Ergebnis-Variable der Wert von der zweiten Variable geteilt.
  • Befehl 1.7 Auch die Modulus-Ergebnis-Variable mit der zweiten Variable durch den Modulus verrechnet.
  • Befehl 1.8 Bevor die tellraw-Nachricht ausgegeben wird, muss geprüft werden ob die Variable 1 bereits einen Wert besitzt, ansonsten erscheint beim Einschalten des Moduluswerks 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.9 Alle Spieler die in einem Radius von 25 Metern um die Befehlsquelle stehen und nicht den Wert 0 besitzen, erhalten die Freischaltung für den trigger-Befehl.
  • Befehl 1.10 Und ebenfalls wird ihnen der Wert auf 0 gesetzt.
Ausschalten

Wenn man das Moduluswerk wieder ausschaltet, wird das Punktestand-Ziel entfernt

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

Befehlsblöcke mit Befehlen:
scoreboard objectives add PZModW.1Wert trigger ["Moduluswerk.1: ",{"text":"Wert der Variablen","bold":true}]
execute store result score VarModW.1ModErgebnis PZModW.1Wert store result score VarModW.1DivErgebnis PZModW.1Wert run scoreboard players operation VarModW.1Variable1 PZModW.1Wert = VarModW.1Variable2 PZModW.1Wert


execute if entity @a[distance=..25,scores={PZModW.1Wert=1}] run scoreboard players add VarModW.1Variable1 PZModW.1Wert 1
execute if entity @a[distance=..25,scores={PZModW.1Wert=2}] run scoreboard players add VarModW.1Variable2 PZModW.1Wert 1
execute if entity @a[distance=..25,scores={PZModW.1Wert=3}] store result score VarModW.1ModErgebnis PZModW.1Wert run scoreboard players operation VarModW.1DivErgebnis PZModW.1Wert = VarModW.1Variable1 PZModW.1Wert
execute if entity @a[distance=..25,scores={PZModW.1Wert=3}] run scoreboard players operation VarModW.1DivErgebnis PZModW.1Wert /= VarModW.1Variable2 PZModW.1Wert
execute if entity @a[distance=..25,scores={PZModW.1Wert=3}] run scoreboard players operation VarModW.1ModErgebnis PZModW.1Wert %= VarModW.1Variable2 PZModW.1Wert
execute if score VarModW.1Variable1 PZModW.1Wert matches 0.. as @a[distance=..25] unless entity @s[scores={PZModW.1Wert=0}] run tellraw @s ["Moduluswerk.1: ",{"text":"\nvar1 = ","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für Variable 1 (Divident)"} },"clickEvent":{"action":"run_command","value":"/trigger PZModW.1Wert set 1"} },{"score":{"name":"VarModW.1Variable1","objective":"PZModW.1Wert"},"color":"dark_purple","bold":true},{"text":"\nvar2 = ","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für Variable 2 (Divisor)"} },"clickEvent":{"action":"run_command","value":"/trigger PZModW.1Wert set 2"} },{"score":{"name":"VarModW.1Variable2","objective":"PZModW.1Wert"},"color":"dark_purple","bold":true},{"text":"\nvar1 / var2 = ","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für das Ergebnis (Quotient)"} },"clickEvent":{"action":"run_command","value":"/trigger PZModW.1Wert set 3"} },{"score":{"name":"VarModW.1DivErgebnis","objective":"PZModW.1Wert"},"color":"dark_purple","bold":true},{"text":"\nvar1 % var2 = ","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für das Ergebnis (Modulus)"} },"clickEvent":{"action":"run_command","value":"/trigger PZModW.1Wert set 3"} },{"score":{"name":"VarModW.1ModErgebnis","objective":"PZModW.1Wert"},"color":"dark_purple","bold":true}]
execute as @a[distance=..25] unless entity @s[scores={PZModW.1Wert=0}] run scoreboard players enable @s PZModW.1Wert
execute as @a[distance=..25] unless entity @s[scores={PZModW.1Wert=0}] run scoreboard players set @s PZModW.1Wert 0


scoreboard objectives remove PZModW.1Wert


Disambig color.svg