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

Die Uhren-Anzeige kann die reale Spielzeit anzeigen, wenn man sie zu exakten Zeit startet. So kann man sich dann beispielsweise auf Minecraft-Servern die Uhrzeit anzeigen lassen.

Variante 1[]

Uhren-Anzeige (Befehle) Bild 1.1 Uhren-Anzeige (Befehle) Bild 1.2

Diese Uhren-Anzeige lässt sich durch veränderte Rüstungsständer in der Hand platzieren. Wenn die Uhren-Anzeige platziert wurde, werden drei mal drei große Ziffern beginnen die Zeit hoch zu zählen. Man kann sie jede Himmelsrichtung platzieren. Sie zeigt Sekunden, Minuten und Stunden an und kann bis 23:59:59 Uhr gehen, danach beginnt sie wieder von vorne zu laufen.

Einschalten
  • Befehl 1.1 Wenn der Hebel umgelegt wird, wird die Start-Funktion gestartet.
Wiederholen
  • Befehl 1.2 Beim Einschalten wird auch der Wiederhol-Befehlsblock gestartet, der jeden Tick die Zyklus-Funktion lädt.
Ausschalten
  • Befehl 1.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 1: Start-Funktion
Die Start-Funktion erstellt die Punktestand-Ziele und gibt den Spielern einen Rüstungsständer in die Hand.

Editor Icon uhren-anzeige:v1start.mcfunction
# Das Punktestand-Ziel für das Zählen der Uhrzeit wird erstellt.
scoreboard objectives add PZUhrA.1Zeichen dummy ["Uhrenanzeige.1: ",{"text":"Zeit der Uhr","bold":true}]

# Allen Spielern im Umkreis von 25 Metern wird ein Rüstungsständer ins Inventar gelegt, mit dem man die Uhren-Anzeige platzieren kann.
give @a[distance=..25] minecraft:armor_stand{uhren-anzeige:"v1gegenstand",Enchantments:[{id:-1}],display:{Name:'{"text":"Uhren-Anzeige","bold":true}',Lore:['"Platziere den Rüstungsständer"','"um eine Uhr"','"erscheinen zu lassen"']},EntityTag:{Invisible:true,NoGravity:true,Tags:["EtiUhrA.1Alle","EtiUhrA.1Ziffer","EtiUhrA.1Sekunden","EtiUhrA.1Erstellen"]} }

Variante 1: Zyklus-Funktion
Die Zyklus-Funktion ruft die Erstellen-Funktion bei Bedarf auf und lässt die Uhrzeit-Funktion jede Sekunde aufrufen. Jeden Tick werden die Ziffern durch Ziffern-Funktion platziert und die Punkte werden durch Konstruktionsblöcke geladen.

Editor Icon uhren-anzeige:v1zyklus.mcfunction
# Falls der Rüstungsständer gerade platziert wurde, wird von diesem aus die Erstellen-Funktion gestartet.
execute as @e[type=minecraft:armor_stand,tag=EtiUhrA.1Erstellen] at @s run function uhren-anzeige:v1erstellen

# Jeden Tick wird die Tick-Variable um eins erhöht und wenn sie die 20 erreicht hat, wird die Uhrzeit-Funktion geladen.
scoreboard players add #VarUhrA.1Tick PZUhrA.1Zeichen 1
execute if score #VarUhrA.1Tick PZUhrA.1Zeichen matches 20.. run function uhren-anzeige:v1uhrzeit

# Für alle Ziffern-Rüstungsständer wird die Ziffer-Funktion geladen.
execute as @e[type=minecraft:armor_stand,tag=EtiUhrA.1Ziffer] at @s run function uhren-anzeige:v1ziffer

# Jedesmal wenn die Sekunde neu beginnt, werden die Doppelpunkte platziert und nach einer halben Sekunde werden sie wieder entfernt.
execute if score #VarUhrA.1Tick PZUhrA.1Zeichen matches 0..9 at @e[type=minecraft:armor_stand,tag=EtiUhrA.1Punkte] run setblock ~ ~ ~ minecraft:structure_block{mode:"LOAD",posX:-1,posY:0,posZ:0,name:"uhren-anzeige:v1doppelpunkte"} replace
execute if score #VarUhrA.1Tick PZUhrA.1Zeichen matches 0..9 at @e[type=minecraft:armor_stand,tag=EtiUhrA.1Punkte] run setblock ~ ~1 ~ minecraft:redstone_block replace
execute if score #VarUhrA.1Tick PZUhrA.1Zeichen matches 10..19 at @e[type=minecraft:armor_stand,tag=EtiUhrA.1Punkte] run fill ~ ~ ~ ~ ~3 ~ minecraft:air replace

Variante 1: Erstellen-Funktion
Die Erstellen-Funktion erzeugt an der Stelle des Erstellen-Rüstungsständers weitere, die für das Anzeigen von Sekunden, Minuten und Stunden genutzt werden.

Editor Icon uhren-anzeige:v1erstellen.mcfunction
# Die Rüstungsständer für die Ziffern werden von der Blickrichtung des Erstellen-Rüstungsständers aus in einer Reihe erzeugt.
summon minecraft:armor_stand ^-4 ^4 ^ {Invisible:true,NoGravity:true,Tags:["EtiUhrA.1Alle","EtiUhrA.1Blickwinkel","EtiUhrA.1Ziffer","EtiUhrA.1SekundenZehner"]}
summon minecraft:armor_stand ^-7 ^4 ^ {Invisible:true,NoGravity:true,Tags:["EtiUhrA.1Alle","EtiUhrA.1Blickwinkel","EtiUhrA.1Punkte"]}
summon minecraft:armor_stand ^-10 ^4 ^ {Invisible:true,NoGravity:true,Tags:["EtiUhrA.1Alle","EtiUhrA.1Blickwinkel","EtiUhrA.1Ziffer","EtiUhrA.1Minuten"]}
summon minecraft:armor_stand ^-14 ^4 ^ {Invisible:true,NoGravity:true,Tags:["EtiUhrA.1Alle","EtiUhrA.1Blickwinkel","EtiUhrA.1Ziffer","EtiUhrA.1MinutenZehner"]}
summon minecraft:armor_stand ^-17 ^4 ^ {Invisible:true,NoGravity:true,Tags:["EtiUhrA.1Alle","EtiUhrA.1Blickwinkel","EtiUhrA.1Punkte"]}
summon minecraft:armor_stand ^-20 ^4 ^ {Invisible:true,NoGravity:true,Tags:["EtiUhrA.1Alle","EtiUhrA.1Blickwinkel","EtiUhrA.1Ziffer","EtiUhrA.1Stunden"]}
summon minecraft:armor_stand ^-24 ^4 ^ {Invisible:true,NoGravity:true,Tags:["EtiUhrA.1Alle","EtiUhrA.1Blickwinkel","EtiUhrA.1Ziffer","EtiUhrA.1StundenZehner"]}

# Die Ziffern-Rüstungsständer werden alle in die gleiche Richtung rotiert in die der Erstellen-Rüstungsständer schaut und dieser wird vier Meter hoch teleportiert.
execute as @e[type=minecraft:armor_stand,tag=EtiUhrA.1Blickwinkel] positioned as @s run teleport @s ~ ~ ~ ~ ~
teleport @s ~ ~4 ~

# Alle Ziffern erhalten den Wert null und die Etiketten für das Erstellen werden entfernt.
scoreboard players set @e[type=minecraft:armor_stand,tag=EtiUhrA.1Ziffer] PZUhrA.1Zeichen 0
tag @e[type=minecraft:armor_stand,tag=EtiUhrA.1Blickwinkel] remove EtiUhrA.1Blickwinkel
tag @s remove EtiUhrA.1Erstellen

Variante 1: Uhrzeit-Funktion
Die Uhrzeit-Funktion zählt alle 20 Ticks eine Sekunde hoch. Anhand der Sekunde werden Minuten und Stunden berechnet und den Ziffern-Rüstungsständern übertragen.

Editor Icon uhren-anzeige:v1uhrzeit.mcfunction
# Die Tick-Variable wird wieder auf null gesetzt.
scoreboard players set #VarUhrA.1Tick PZUhrA.1Zeichen 0

# Jede Sekunde wird der Wert des Sekunden-Rüstungsständers erhöht und wenn er den Wert zehn erreicht hat, wird er auf null zurückgesetzt und der Erfolg von diesem Befehl wird in eine Erfolgs-Variable gespeichert.
scoreboard players add @e[type=minecraft:armor_stand,tag=EtiUhrA.1Sekunden] PZUhrA.1Zeichen 1
execute store success score #VarUhrA.1Erfolg PZUhrA.1Zeichen run scoreboard players set @e[type=minecraft:armor_stand,tag=EtiUhrA.1Sekunden,scores={PZUhrA.1Zeichen=10..}] PZUhrA.1Zeichen 0

# Wenn die Sekunde den Wert erreicht, wird die Zehner-Sekunden-Ziffer um eins erhöht. Gleichzeitig wird der Wert der Zehner-Sekunde wieder auf null gesetzt, wenn er den Wert sechs besitzt. Davon wird der Erfolg des Befehls in die gleichnamige Variable gespeichert.
execute if score #VarUhrA.1Erfolg PZUhrA.1Zeichen matches 1 run scoreboard players add @e[type=minecraft:armor_stand,tag=EtiUhrA.1SekundenZehner] PZUhrA.1Zeichen 1
execute if score #VarUhrA.1Erfolg PZUhrA.1Zeichen matches 1 store success score #VarUhrA.1Erfolg PZUhrA.1Zeichen run scoreboard players set @e[type=minecraft:armor_stand,tag=EtiUhrA.1SekundenZehner,scores={PZUhrA.1Zeichen=6..}] PZUhrA.1Zeichen 0

# Wenn 60 Sekunden erreicht sind, wird die Minute um eins erhöht. Direkt im Anschluss wird die Minute wieder auf null gesetzt, wenn sie den Wert zehn erreicht hat. Davon wird der Erfolg wieder in die Erfolgs-Variable gespeichert.
execute if score #VarUhrA.1Erfolg PZUhrA.1Zeichen matches 1 run scoreboard players add @e[type=minecraft:armor_stand,tag=EtiUhrA.1Minuten] PZUhrA.1Zeichen 1
execute if score #VarUhrA.1Erfolg PZUhrA.1Zeichen matches 1 store success score #VarUhrA.1Erfolg PZUhrA.1Zeichen run scoreboard players set @e[type=minecraft:armor_stand,tag=EtiUhrA.1Minuten,scores={PZUhrA.1Zeichen=10..}] PZUhrA.1Zeichen 0

# Wenn zehn Minuten erreicht sind, wird die Zehner-Minute um eins erhöht und wenn sie den Wert sechs erreicht wird sie wieder auf null gesetzt und das ganze wird in der Erfolgs-Variable gespeichert.
execute if score #VarUhrA.1Erfolg PZUhrA.1Zeichen matches 1 run scoreboard players add @e[type=minecraft:armor_stand,tag=EtiUhrA.1MinutenZehner] PZUhrA.1Zeichen 1
execute if score #VarUhrA.1Erfolg PZUhrA.1Zeichen matches 1 store success score #VarUhrA.1Erfolg PZUhrA.1Zeichen run scoreboard players set @e[type=minecraft:armor_stand,tag=EtiUhrA.1MinutenZehner,scores={PZUhrA.1Zeichen=6..}] PZUhrA.1Zeichen 0

# Wenn 60 Minuten erreicht sind, wird die Stunde um eins erhöht und wenn sie den Wert zehn erriecht wird sie auf null zurück gesetzt. Der Erfolg davon wird gespeichert.
execute if score #VarUhrA.1Erfolg PZUhrA.1Zeichen matches 1 run scoreboard players add @e[type=minecraft:armor_stand,tag=EtiUhrA.1Stunden] PZUhrA.1Zeichen 1
execute if score #VarUhrA.1Erfolg PZUhrA.1Zeichen matches 1 store success score #VarUhrA.1Erfolg PZUhrA.1Zeichen run scoreboard players set @e[type=minecraft:armor_stand,tag=EtiUhrA.1Stunden,scores={PZUhrA.1Zeichen=10..}] PZUhrA.1Zeichen 0

# Wenn zehn Stunden erreicht sind wird die Zehner-Stunde um eins erhöht. Darunter wird geprüft ob zwei Zehner-Stunden und vier Stunden erreicht worden sind. Wenn das der Fall ist, werden beide auf null zurück und dies wird wieder in der Erfolgs-Variable gespeichert.
execute if score #VarUhrA.1Erfolg PZUhrA.1Zeichen matches 1 run scoreboard players add @e[type=minecraft:armor_stand,tag=EtiUhrA.1StundenZehner] PZUhrA.1Zeichen 1
execute store success score #VarUhrA.1Erfolg PZUhrA.1Zeichen store result score @e[type=minecraft:armor_stand,tag=EtiUhrA.1Stunden,scores={PZUhrA.1Zeichen=4..}] PZUhrA.1Zeichen run scoreboard players set @e[type=minecraft:armor_stand,tag=EtiUhrA.1StundenZehner,scores={PZUhrA.1Zeichen=2..}] PZUhrA.1Zeichen 0

# Wenn 24 Stunden erreicht wurden, werden Sekunden und Minuten auf null zurück gesetzt.
execute if score #VarUhrA.1Erfolg PZUhrA.1Zeichen matches 1 run scoreboard players set @e[type=minecraft:armor_stand,tag=EtiUhrA.1Sekunden] PZUhrA.1Zeichen 0
execute if score #VarUhrA.1Erfolg PZUhrA.1Zeichen matches 1 run scoreboard players set @e[type=minecraft:armor_stand,tag=EtiUhrA.1SekundenZehner] PZUhrA.1Zeichen 0
execute if score #VarUhrA.1Erfolg PZUhrA.1Zeichen matches 1 run scoreboard players set @e[type=minecraft:armor_stand,tag=EtiUhrA.1Minuten] PZUhrA.1Zeichen 0
execute if score #VarUhrA.1Erfolg PZUhrA.1Zeichen matches 1 run scoreboard players set @e[type=minecraft:armor_stand,tag=EtiUhrA.1MinutenZehner] PZUhrA.1Zeichen 0

Variante 1: Ziffer-Funktion
Die Ziffer-Funktion platziert je nach Blickwinkel der Ziffer-Rüstungsständer die Konstruktionsblöcke mit entsprechender Rotation. Ebenfalls wird die Ziffer abgefragt und entsprechend in dem Konstruktionsblock gespeichert ehe der Redstone-Block die Ziffer aktiviert.

Editor Icon uhren-anzeige:v1ziffer.mcfunction
# Je nach der Blickrichtung des Ziffern-Rüstungsständers, wird die Ziffer durch den Konstruktionsblock an die entsprechende Richtung angepasst.
execute if entity @s[y_rotation=135..-135] run setblock ~ ~ ~ minecraft:structure_block{mode:"LOAD",rotation:"NONE",posX:-1,posY:0,posZ:0,name:"uhren-anzeige:v1zahl_0"} replace
execute if entity @s[y_rotation=-135..-45] run setblock ~ ~ ~ minecraft:structure_block{mode:"LOAD",rotation:"CLOCKWISE_90",posX:0,posY:0,posZ:-1,name:"uhren-anzeige:v1zahl_0"} replace
execute if entity @s[y_rotation=-45..45] run setblock ~ ~ ~ minecraft:structure_block{mode:"LOAD",rotation:"CLOCKWISE_180",posX:1,posY:0,posZ:0,name:"uhren-anzeige:v1zahl_0"} replace
execute if entity @s[y_rotation=45..135] run setblock ~ ~ ~ minecraft:structure_block{mode:"LOAD",rotation:"COUNTERCLOCKWISE_90",posX:0,posY:0,posZ:1,name:"uhren-anzeige:v1zahl_0"} replace

# Der Wert des Ziffern-Rüstungsständers entscheidet, welche Ziffer in dem Konstruktionsblock geladen werden soll.
execute if entity @s[scores={PZUhrA.1Zeichen=1}] run data merge block ~ ~ ~ {name:"uhren-anzeige:v1zahl_1"}
execute if entity @s[scores={PZUhrA.1Zeichen=2}] run data merge block ~ ~ ~ {name:"uhren-anzeige:v1zahl_2"}
execute if entity @s[scores={PZUhrA.1Zeichen=3}] run data merge block ~ ~ ~ {name:"uhren-anzeige:v1zahl_3"}
execute if entity @s[scores={PZUhrA.1Zeichen=4}] run data merge block ~ ~ ~ {name:"uhren-anzeige:v1zahl_4"}
execute if entity @s[scores={PZUhrA.1Zeichen=5}] run data merge block ~ ~ ~ {name:"uhren-anzeige:v1zahl_5"}
execute if entity @s[scores={PZUhrA.1Zeichen=6}] run data merge block ~ ~ ~ {name:"uhren-anzeige:v1zahl_6"}
execute if entity @s[scores={PZUhrA.1Zeichen=7}] run data merge block ~ ~ ~ {name:"uhren-anzeige:v1zahl_7"}
execute if entity @s[scores={PZUhrA.1Zeichen=8}] run data merge block ~ ~ ~ {name:"uhren-anzeige:v1zahl_8"}
execute if entity @s[scores={PZUhrA.1Zeichen=9}] run data merge block ~ ~ ~ {name:"uhren-anzeige:v1zahl_9"}

# Um den Konstruktionsblock zu aktivieren, wird ein Redstone-Block direkt darüber platziert.
setblock ~ ~1 ~ minecraft:redstone_block replace

Variante 1: Stopp-Funktion
Die Stopp-Funktion löscht das Punktestand, die Ziffern als Blöcke, sowie die Rüstungsständer im Inventar wie auch in der Welt.

Editor Icon uhren-anzeige:v1stopp.mcfunction
# Das Punktestand-Ziel wird gelöscht.
scoreboard objectives remove PZUhrA.1Zeichen

# An der Position aller Ziffern wird der Bereich durch Luft ersetzt.
execute at @e[type=minecraft:armor_stand,tag=EtiUhrA.1Alle] run fill ~-1 ~ ~-1 ~1 ~2 ~1 minecraft:air replace minecraft:quartz_block
execute at @e[type=minecraft:armor_stand,tag=EtiUhrA.1Alle] run fill ~-1 ~ ~-1 ~1 ~2 ~1 minecraft:air replace minecraft:quartz_stairs
execute at @e[type=minecraft:armor_stand,tag=EtiUhrA.1Alle] run fill ~-1 ~ ~-1 ~1 ~2 ~1 minecraft:air replace minecraft:quartz_slab

# Alle Spieler bekommen den Rüstungsständer aus dem Inventar entfernt
clear @a minecraft:armor_stand{uhren-anzeige:"v1gegenstand"}

# Rüstungsständer die gedroppt wurden erhalten ein Etikett und alle Objekte mit dem Etikett werden entfernt.
tag @e[type=minecraft:item,nbt={Item:{tag:{uhren-anzeige:"v1gegenstand"} } }] add EtiUhrA.1Alle
kill @e[tag=EtiUhrA.1Alle]
Advertisement