Technik Wiki
Technik Wiki
Advertisement
Grid Grasblock
Diese Seite stammt ursprünglich aus de.minecraft.wiki und wurde von der Quelle abweichend verändert.


Gruppe: Grid Kolben
Vorrichtungen

Grid Roter Sand blass mit Mechaniken

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

Der Uhrzeit-Sensor kann die echte Uhrzeit erfassen und ausgeben. Vom Spiel aus ist es nicht vorgesehen die Uhrzeit zu erhalten, daher muss man sich eines Tricks bemühen. Der Befehlsblock besitzt die Eigenschaft LastOutput, welche die echte Uhrzeit als JSON-Text beinhaltet. Durch den Befehl /data ... string ... erhält man dann die Uhrzeit als Zeichenkette und kann damit weiter verfahren. Zu beachten ist, dass die Eigenschaft LastOutput erst nach dem Ausführen des Befehls einen Inhalt besitzt, versucht man mit dem eigenen Befehlsblock die Eigenschaft abzufragen, so wird dies nicht erfolgen, da die Eigenschaft in dem Augenblick null ist.

Variante 1[]

Uhrzeit-Sensor (Befehle) Bild 1.1

Mit Hilfe dieses Uhrzeit-Sensors lässt sich die Uhrzeit darstellen. Wenn der Spieler dazu einen magischen stock in der Schnellleiste ausgewählt hat, erscheint die Uhrzeit über der Schnellleiste.

Einschalten
  • Befehl 1.1 Der Datenspeicher für das Speichern der Uhrzeit wird angelegt.
  • Befehl 1.2 Spieler erhalten einen magischen Stock, welchen man in der Schnellleiste auswählen kann, um sich die Uhrzeit anzeigen zu lassen.
Wiederholen
  • Befehl 1.3 Spieler die den Stock auswählen erhalten ein Etikett, damit man mit diesen weitere Prüfungen machen kann ohne den teuren NBT-Selektor mehrmals verwenden zu müssen.
  • Befehl 1.4 Die Eigenschaft LastOutput wird ausgelesen und so klein geschnitten, dass die exakte Uhrzeit übrig bleibt und in den Datenspeicher gelegt werden kann.
  • Befehl 1.5 Wenn der Spieler den Stock ausgewählt hat, wird ihm über der Schnellleiste die Uhrzeit angezeigt.
  • Befehl 1.6 Falls der Spieler den Stock gerade nicht mehr ausgewählt hat, wird ihm der Text über der Schnellleiste geleert,
  • Befehl 1.7 Das Etikett wird vergeben oder entfernt[B1.8], wenn der Spieler im gleichen Augenblick den stock entweder ausgewählt hat oder nicht mehr ausgewählt hat.
  • Befehl 1.9 Das Etikett für das Auswählen des Stockes wird entfernt, damit es beim nächsten Durchlauf nur vorhanden ist, wenn der Stock ausgewählt wurde.
Ausschalten
  • Befehl 1.10 Der Datenspeicher wird geleert.
  • Befehl 1.11 Das eventuell noch vorhandene Etikett wird entfernt.
  • Befehl 1.12 Der Stock wird aus allen Inventaren der Spieler entfernt.
  • Befehl 1.13 Falls der Stock auf den Boden geworfen wurde, wird er entfernt.

Befehlsblöcke mit Befehlen:
data merge storage uhrzeit-sensor:v1daten {EigUhrzeitS.1Uhrzeit:""}
give @a[distance=..15] minecraft:stick{EigUhrzeitS.1Alle:true,EigUhrzeitS.1Sensor:true,Enchantments:[{id:-1}],display:{Name:'{"text":"Uhrzeit-Sensor","color":"dark_purple","bold":true}',Lore:['"Wähle den Stock aus"','"um die Uhrzeit"','"anzuzeigen zu lassen."'] } }


tag @a[nbt={SelectedItem:{tag:{EigUhrzeitS.1Sensor:true} } }] add EtiUhrzeitS.1Ausgewaehlt
data modify storage uhrzeit-sensor:v1daten "EigUhrzeitS.1Uhrzeit" set string block ~ ~-1 ~ LastOutput 359 367
title @a[tag=EtiUhrzeitS.1Ausgewaehlt] actionbar ["",{"text":"H:M:S == ","color":"gray","bold":true},{"storage":"uhrzeit-sensor:v1daten","nbt":"\"EigUhrzeitS.1Uhrzeit\"","color":"gold","bold":true}]
title @a[tag=!EtiUhrzeitS.1Ausgewaehlt,tag=EtiUhrzeitS.1Auswahl] actionbar [""]
tag @a[tag=EtiUhrzeitS.1Ausgewaehlt,tag=!EtiUhrzeitS.1Auswahl] add EtiUhrzeitS.1Auswahl
tag @a[tag=!EtiUhrzeitS.1Ausgewaehlt,tag=EtiUhrzeitS.1Auswahl] remove EtiUhrzeitS.1Auswahl
tag @a[tag=EtiUhrzeitS.1Ausgewaehlt] remove EtiUhrzeitS.1Ausgewaehlt


data remove storage uhrzeit-sensor:v1daten "EigUhrzeitS.1Uhrzeit"
tag @a[tag=EtiUhrzeitS.1Auswahl] remove EtiUhrzeitS.1Auswahl
clear @a minecraft:stick{EigUhrzeitS.1Alle:true}
kill @e[type=minecraft:item,nbt={Item:{tag:{EigUhrzeitS.1Alle:true} } }]

Variante 2[]

Uhrzeit-Sensor (Befehle) Bild 2.1

Dieser Uhrzeit-Sensor gibt die Uhrzeit aus, in dem man einen magischen Stock in der Schnellleiste ausgewählt hat. Die Uhrzeit wird dabei von Zeichenketten in Zahlenwerte umgerechnet, so könnte man beispielsweise den Sensor erweitern und mit den Zahlenwerten weiter arbeiten.

Einschalten

Wird der Hebel umgelegt, startet der Befehlsblock und führt die Start-Funktion aus.

Wiederholen

Mit dem Wiederhol-Befehlsblock wird jeden Tick die Zyklus-Funktion ausgeführt.

Ausschalten

Sobald der Hebel wieder in Ausgangsstellung zurück gelegt wurde, wird die Stopp-Funktion aktiviert.


Befehlsblöcke mit Befehlen:


Datenpaket


Variante 2: Start-Funktion
Die Start-Funktion erstellt das Punkte-Ziel und Spieler erhalten den magischen Stock. Ebenso wird eine geplante Funktion gestartet.

Editor Icon uhrzeit-sensor:v2start.mcfunction
# Ein Punkte-Ziel wird angelegt um die Zeitwerte zu speichern.
scoreboard objectives add PZUhrzeitS.2Wert dummy ["Uhrzeit-Sensor.2: ",{"text":"Zeitwerte","bold":true}]

# Konstante 10 für die Multiplikation.
scoreboard players set KonstUhrzeitS.2ZEHN PZUhrzeitS.2Wert 10

# Datenspeicher wird mit drei Eigenschaften angelegt.
data merge storage uhrzeit-sensor:v2daten {EigUhrzeitS.2Ziffer:"",EigUhrzeitS.2Uhrzeit:"",EigUhrzeitS.2Zeit:[]}

# Den Spielern im Umkreis von 15 Blöcken wird ein Stock gegeben, mit dem sie sich die Uhrzeit anzeigen können.
give @a[distance=..15] minecraft:stick{EigUhrzeitS.2Alle:true,EigUhrzeitS.2Sensor:true,Enchantments:[{id:-1}],display:{Name:'{"text":"Uhrzeit-Sensor","color":"dark_purple","bold":true}',Lore:['"Wähle den Stock aus"','"um die Uhrzeit"','"anzuzeigen zu lassen."'] } }

# Markierer, der an der Position des Widerhol-Befehlsblock erzeugt wird.
summon minecraft:marker ~ ~ ~-1 {Tags:["EtiUhrzeitS.2Alle","EtiUhrzeitS.2Sensor"]}

# Der Chunk wird aktiv gehalten, damit der Sensor auch weit ab noch funktioniert.
forceload add ~ ~

# Die Sensor-Funktion wird aufgerufen, welche für das Erhalten der Uhrzeit zuständig ist.
schedule function uhrzeit-sensor:v2sensor 1t replace


Variante 2: Zyklus-Funktion
Die Zyklus-Funktion zeigt den Spielern die Uhrzeit an, wenn diese den Stock ausgewählt haben.

Editor Icon uhrzeit-sensor:v2zyklus.mcfunction
# Wenn der Spieler den Stock ausgewählt hat, erhält er zur Erkennung ein Etikett.
tag @a[nbt={SelectedItem:{tag:{EigUhrzeitS.2Sensor:true} } }] add EtiUhrzeitS.2Ausgewaehlt

# Spieler die das Etikett besitzen, erhalten über der Schnellleiste die Uhrzeit.
title @a[tag=EtiUhrzeitS.2Ausgewaehlt] actionbar ["",{"text":"H:M:S == ","color":"gray","bold":true},{"storage":"uhrzeit-sensor:v2daten","nbt":"\"EigUhrzeitS.2Zeit\"[0]","color":"red","bold":true},{"text":":","color":"gray","bold":true},{"storage":"uhrzeit-sensor:v2daten","nbt":"\"EigUhrzeitS.2Zeit\"[1]","color":"dark_green","bold":true},{"text":":","color":"gray","bold":true},{"storage":"uhrzeit-sensor:v2daten","nbt":"\"EigUhrzeitS.2Zeit\"[2]","color":"blue","bold":true}]

# Wenn der Stock nicht mehr ausgewählt ist, wird die Nachricht über der Schnellleiste geleert.
title @a[tag=!EtiUhrzeitS.2Ausgewaehlt,tag=EtiUhrzeitS.2Auswahl] actionbar [""]

# Um zu erfassen ob der Spieler gerade den Stock ausgewählt hat oder ihn nicht mehr auswählt, wird ihm ein Etikett gegeben oder entfernt.
tag @a[tag=EtiUhrzeitS.2Ausgewaehlt,tag=!EtiUhrzeitS.2Auswahl] add EtiUhrzeitS.2Auswahl
tag @a[tag=!EtiUhrzeitS.2Ausgewaehlt,tag=EtiUhrzeitS.2Auswahl] remove EtiUhrzeitS.2Auswahl

# Das Etikett wird wieder entfernt.
tag @a[tag=EtiUhrzeitS.2Ausgewaehlt] remove EtiUhrzeitS.2Ausgewaehlt


Variante 2: Sensor-Funktion
Die Sensor-Funktion ließt von dem Widerhol-Befehlsblock die Uhrzeit aus und sorgt dafür, dass die Stunden, Minuten und Sekunden in Variablen gespeichert sind, die abgerufen werden können.

Editor Icon uhrzeit-sensor:v2sensor.mcfunction
# An der Position des Markierers befindet sich der Widerhol-Befehlsblock. Von diesem wird die Uhrzeit geholt und in den Datenspeicher geschrieben.
execute at @e[type=minecraft:marker,tag=EtiUhrzeitS.2Sensor,sort=nearest,limit=1] run data modify storage uhrzeit-sensor:v2daten "EigUhrzeitS.2Uhrzeit" set string block ~ ~ ~ LastOutput 107 116

# Die Zeit-Eigenschaft wird geleert, bevor sie später wieder in der Zeit-Funktion aufgefüllt wird.
data merge storage uhrzeit-sensor:v2daten {EigUhrzeitS.2Zeit:[]}
function uhrzeit-sensor:v2zeit

# Diese Funktion wird in einer Sekunde erneut aufgerufen.
schedule function uhrzeit-sensor:v2sensor 1s replace


Variante 2: Zeit-Funktion
Die Zeit-Funktion ließt die zwei Ziffern der Uhrzeit aus und berechnet daraus die Zahlenwerte. Dies geschieht insgesamt dreimal für Stunden, Minuten und Sekunden.

Editor Icon uhrzeit-sensor:v2zeit.mcfunction
# Da die Uhrzeit Klammern und Doppelpunkte besitzt, müssen diese zuerst entfernt werden.
data modify storage uhrzeit-sensor:v2daten "EigUhrzeitS.2Uhrzeit" set string storage uhrzeit-sensor:v2daten "EigUhrzeitS.2Uhrzeit" 1

# Die Ziffern-Funktion wird aufgerufen berechnet die linke Ziffer, diese wird dazu mal zehn genommen und in die Zeit-Variable gespeichert.
function uhrzeit-sensor:v2ziffer
execute store result score VarUhrzeitS.2Zeit PZUhrzeitS.2Wert run scoreboard players operation VarUhrzeitS.2Ziffer PZUhrzeitS.2Wert *= KonstUhrzeitS.2ZEHN PZUhrzeitS.2Wert

# Die rechte Ziffer wird durch die Ziffern-Funktion berechnet. Die beiden Ziffern werden durch die Addition zusammen gelegt und in einer Liste gespeichert.
function uhrzeit-sensor:v2ziffer
data modify storage uhrzeit-sensor:v2daten "EigUhrzeitS.2Zeit" append value 0
execute store result storage uhrzeit-sensor:v2daten "EigUhrzeitS.2Zeit"[-1] int 1 run scoreboard players operation VarUhrzeitS.2Zeit PZUhrzeitS.2Wert += VarUhrzeitS.2Ziffer PZUhrzeitS.2Wert

# Solange nicht alle drei Zahlen der Uhrzeit berechnet sind, wird diese Funktion sich selbst erneut aufrufen.
execute unless data storage uhrzeit-sensor:v2daten {EigUhrzeitS.2Uhrzeit:""} run function uhrzeit-sensor:v2zeit


Variante 2: Ziffer-Funktion
Die Ziffern-Funktion ließt die Ziffern-Eigenschaft und berechnet anhand dieser den Zahlenwert.

Editor Icon uhrzeit-sensor:v2ziffer.mcfunction
# Das erste Zeichen wird in einer separaten Eigenschaft gespeichert und anschließend wird das erste Zeichen aus Uhrzeit-Eigenschaft entfernt.
data modify storage uhrzeit-sensor:v2daten "EigUhrzeitS.2Ziffer" set string storage uhrzeit-sensor:v2daten "EigUhrzeitS.2Uhrzeit" 0 1
data modify storage uhrzeit-sensor:v2daten "EigUhrzeitS.2Uhrzeit" set string storage uhrzeit-sensor:v2daten "EigUhrzeitS.2Uhrzeit" 1

# Es wird geprüft um welchen Wert es sich bei dem Zeichen handelt und dann der Wert in eine Variable gespeichert.
execute store success score VarUhrzeitS.2Ziffer PZUhrzeitS.2Wert if data storage uhrzeit-sensor:v2daten {EigUhrzeitS.2Ziffer:"1"}
execute if data storage uhrzeit-sensor:v2daten {EigUhrzeitS.2Ziffer:"2"} run scoreboard players set VarUhrzeitS.2Ziffer PZUhrzeitS.2Wert 2
execute if data storage uhrzeit-sensor:v2daten {EigUhrzeitS.2Ziffer:"3"} run scoreboard players set VarUhrzeitS.2Ziffer PZUhrzeitS.2Wert 3
execute if data storage uhrzeit-sensor:v2daten {EigUhrzeitS.2Ziffer:"4"} run scoreboard players set VarUhrzeitS.2Ziffer PZUhrzeitS.2Wert 4
execute if data storage uhrzeit-sensor:v2daten {EigUhrzeitS.2Ziffer:"5"} run scoreboard players set VarUhrzeitS.2Ziffer PZUhrzeitS.2Wert 5
execute if data storage uhrzeit-sensor:v2daten {EigUhrzeitS.2Ziffer:"6"} run scoreboard players set VarUhrzeitS.2Ziffer PZUhrzeitS.2Wert 6
execute if data storage uhrzeit-sensor:v2daten {EigUhrzeitS.2Ziffer:"7"} run scoreboard players set VarUhrzeitS.2Ziffer PZUhrzeitS.2Wert 7
execute if data storage uhrzeit-sensor:v2daten {EigUhrzeitS.2Ziffer:"8"} run scoreboard players set VarUhrzeitS.2Ziffer PZUhrzeitS.2Wert 8
execute if data storage uhrzeit-sensor:v2daten {EigUhrzeitS.2Ziffer:"9"} run scoreboard players set VarUhrzeitS.2Ziffer PZUhrzeitS.2Wert 9


Variante 2: Stopp-Funktion
Die Stopp-Funktion löscht das Punkte-Ziel wieder, entfernt das Etikett und löscht den magischen Stock. Die geplante Funktion wird gestoppt.

Editor Icon uhrzeit-sensor:v2stopp.mcfunction
# Das Punkte-Ziel wird entfernt.
scoreboard objectives remove PZUhrzeitS.2Wert

# Die drei Eigenschaften des Datenspeichers werden entfernt.
data remove storage uhrzeit-sensor:v2daten "EigUhrzeitS.2Ziffer"
data remove storage uhrzeit-sensor:v2daten "EigUhrzeitS.2Uhrzeit"
data remove storage uhrzeit-sensor:v2daten "EigUhrzeitS.2Zeit"

# Das Etikett zur Auswahl des Stocks, wird wieder entfernt, falls es noch vorhanden war.
tag @a[tag=EtiUhrzeitS.2Auswahl] remove EtiUhrzeitS.2Auswahl

# Der Stock wird aus dem Inventar entfernt.
clear @a minecraft:stick{EigUhrzeitS.2Alle:true}

# Falls der Stock auf dem Boden geworfen wurde, wird der Drop entfernt. Ebenso der Markierer.
tag @e[type=minecraft:item,nbt={Item:{tag:{EigUhrzeitS.2Alle:true} } }] add EtiUhrzeitS.2Alle
kill @e[tag=EtiUhrzeitS.2Alle]

# Der aktive Chunk wird wieder entladen.
forceload remove ~ ~

# Die Plan-Funktion wird gestoppt.
schedule clear uhrzeit-sensor:v2sensor


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