Technik Wiki
Registrieren
Advertisement
Gruppe: Grid Ketten-Befehlsblock
Systeme

Grid Roter Sand blass mit Mechaniken

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

Das Steinbruch-System baut Blöcke mit einem Bohrer ab, welche an einer Stelle gesammelt werden können. Hierzu baut man in der Regel ein Gerüst auf, in welchen der dazu gehörige Bohrer hängt und seine Arbeit verrichtet. Der Bohrer gräbt ein Loch bis zum unteren Ende der Karte. Die gedroppten Blöcke werden dann zu einer Sammelstelle gebracht wo der Spieler selbst oder ein Trichter diese einsammeln kann.

Variante 1[]

Steinbruch-System (Befehle) Bild 1.1 Steinbruch-System (Befehle) Bild 1.2 Steinbruch-System (Befehle) Bild 1.3

Dieses Steinbruch-System gibt dem Spieler die Möglichkeit, mit Hilfe eines zu errichtendes Gerüst einen Bohrer zu kreieren, der bis zum unteren Ende der Karte unentwegt bohrt und dabei die Blöcke abbaut. Beim Einschalten erhält der Spieler Rüstungsständer die dem Bohrer, dem Sammler und dem Gerüst entsprechen. Zuerst muss an einer beliebigen Stelle das Gerüst platziert werden. Anschließend muss man den Bohrer direkt daneben in der Nähe des Gerüst platzieren. Dann beginnt der Bohrer auch schon die Blöcke abzubauen. Dabei läuft er Reihe für Reihe ab und baut so einen Schacht. Damit die gedroppten Blöcke gesammelt werden, kann man den Sammler platzieren. An dessen Stelle werden dann die Blöcke hin befördert. Dort kann der Spieler sie dann einsammeln oder das einen Trichter erledigen lassen. Werden mehrere Sammler platziert, wird an allen was befördert, dies geschieht zufallsabhängig. Möchte man das Gerüst entfernen, selbst wenn der Bohrer schon angebracht wurde, muss man einfach den Gerüst-Rüstungsständer ganz in der Nähe des vorhandenen Gerüsts platzieren, dann wird dieses wieder entfernt und die Rüstungsständer gedroppt.

Einschalten

Wenn man den Hebel auf dem Wiederhol-Befehlsblock umlegt wird auch der Befehlsblock aktiviert, welcher die Start-Funktion auslöst.

Wiederholen

Der Wiederhol-Befehlsblock aktiviert die Zyklus-Funktion jeden Tick, sodass sie ständig ausgeführt wird.

Ausschalten

Legt man den Hebel wieder um, so wird die Stopp-Funktion durch den Befehlsblock ausgelöst.


Befehlsblöcke mit Befehlen:


Datenpaket


Variante 1: Start-Funktion
Die Start-Funktion erstellt zwei Punkte-Ziele die für das Bewegen des Bohrers verwendet werden. Gleichzeitig bekommen die Spieler die Rüstungsständer, die platziert werden können, um das Gerüst, den Bohrer und den Sammler zu erzeugen. Als letztes wird ein Kubus aus Granit erstellt, auf dem das Steinbruch-System eingesetzt werden kann.

Editor Icon steinbruch-system:v1start.mcfunction
# Zwei Punkte-Ziele für das Bewegen des Bohrers, werden erstellt.
scoreboard objectives add PZStBrSy.1Wert dummy ["Steinbruch-System.1: ",{"text":"Schritte des Bohrers","bold":true}]
scoreboard objectives add PZStBrSy.1Versetzen dummy ["Steinbruch-System.1: ",{"text":"Versetzen des Bohrers","bold":true}]

# Der Bohrer, der Sammler und das Gerüst werden in Form von Rüstungsständern den Spielern gegeben.
give @a[distance=..15] minecraft:armor_stand{EigStBrSy.1Alle:true,display:{Name:'{"text":"Bohrer","bold":true}',Lore:['"Platziere den Rüstungsständer"','"neben einem Gerüst"','"damit der Bohrer"','"aufgebaut wird."']},EntityTag:{Marker:true,ShowArms:true,NoBasePlate:true,NoGravity:true,DisabledSlots:2039552,ArmorItems:[{},{},{},{id:"minecraft:iron_trapdoor",Count:1b}],Pose:{LeftLeg:[0.0f,0.0f,12.0f],RightLeg:[0.0f,0.0f,-12.0f],LeftArm:[180.0f],RightArm:[180.0f]},Tags:["EtiStBrSy.1Alle","EtiStBrSy.1Bohrer","EtiStBrSy.1Erstellen"] } } 16

give @a[distance=..15] minecraft:armor_stand{EigStBrSy.1Alle:true,display:{Name:'{"text":"Sammler","bold":true}',Lore:['"Platziere den Rüstungsständer"','"damit die Gegenstände"','"vom Bohrer an der Stelle des"','"Sammlers aufgesammelt werden."']},EntityTag:{Small:true,Marker:true,Invisible:true,NoGravity:true,ArmorItems:[{},{},{},{id:"minecraft:chest",Count:1b}],Tags:["EtiStBrSy.1Alle","EtiStBrSy.1Sammler"] } } 16

give @a[distance=..15] minecraft:armor_stand{EigStBrSy.1Alle:true,display:{Name:'{"text":"Gerüst","bold":true}',Lore:['"Platziere den Rüstungsständer"','"um das Gerüst für"','"den Bohrer zu erstellen."','"Ein erneutes Platzieren neben"','"einem vorhandenen Gerüst"','"entfernt dieses samt Bohrer wieder."']},EntityTag:{Marker:true,Invisible:true,Tags:["EtiStBrSy.1Alle","EtiStBrSy.1Geruest","EtiStBrSy.1Erstellen"] } } 16

# Spieler erhalten eine kurze Anleitung wie sie das System nutzen können.
tellraw @a[distance=..15] ["Steinbruch-System.1:\n",{"text":"Begibt dich auf den Granit-Hügel und drücke E um ins Inventar-Menü zu gelangen. Bewege die Maus auf die Gegenstände um zu erfahren wie man sie benutzt.","bold":true}]

# Es wird eine Felswand aus Granit erstellt, die durchbohrt werden kann.
fill ~ ~ ~-20 ~20 ~20 ~-40 minecraft:granite replace minecraft:air

Variante 1: Zyklus-Funktion
Die Zyklus-Funktion ermöglicht den Aufruf für das Gerüst und den Bohrer und sorgt dafür, dass in einem bestimmten Takt der Bohrer bewegt wird.

Editor Icon steinbruch-system:v1zyklus.mcfunction
# Die Bauwerk-Funktion wird von gerade platzierten Gerüsten aufgerufen.
execute as @e[type=minecraft:armor_stand,tag=EtiStBrSy.1Geruest,tag=EtiStBrSy.1Erstellen] at @s run function steinbruch-system:v1bauwerk

# Die Erstellen-Funktion wird für platzierte Bohrer aufgerufen.
execute as @e[type=minecraft:armor_stand,tag=EtiStBrSy.1Bohrer,tag=EtiStBrSy.1Erstellen] at @s run function steinbruch-system:v1erstellen

# Der Boherer wird gedreht und erzeugt Partikel.
execute as @e[type=minecraft:armor_stand,tag=EtiStBrSy.1Bohrer] at @s run teleport @s ~ ~ ~ ~15 ~
execute at @e[type=minecraft:armor_stand,tag=EtiStBrSy.1Bohrer] run particle minecraft:poof ~ ~ ~ 0.3 0.3 0.3 0.005 1

# Alle 30 Ticks wird die Schritt-Funktion vom Bohrer ausgeführt und Gerüst-Rüstungsständer erhalten einen Wert, abhängig ob der Bohrer an diesem Gerüst vorhanden ist oder nicht.
scoreboard players add VarStBrSy.1Tick PZStBrSy.1Wert 1
execute if score VarStBrSy.1Tick PZStBrSy.1Wert matches 30.. as @e[type=minecraft:armor_stand,tag=EtiStBrSy.1Bohrer] at @s run function steinbruch-system:v1schritt
execute if score VarStBrSy.1Tick PZStBrSy.1Wert matches 30.. as @e[type=minecraft:armor_stand,tag=EtiStBrSy.1Geruest] at @s store success score @s PZStBrSy.1Wert positioned ~-5 ~ ~-5 if entity @e[dx=10,dy=-512,dz=10,type=minecraft:armor_stand,tag=EtiStBrSy.1Bohrer,sort=nearest,limit=1]
execute if score VarStBrSy.1Tick PZStBrSy.1Wert matches 30.. run scoreboard players set VarStBrSy.1Tick PZStBrSy.1Wert 0


Variante 1: Bauwerks-Funktion
Die Bauwerks-Funktion sorgt dafür, dass das Gerüst aus Zäunen erzeugt wird. Hierbei wird zuvor geprüft ob sich ein anderes Gerüst bereits in der Nähe befindet. Wenn eins in der Nähe ist, wird dieses entfernt, wenn keins vorhanden ist, wird ein neues Gerüst erzeugt.

Editor Icon steinbruch-system:v1bauwerk.mcfunction
# Es wird geprüft ob bereits ein Gerüst in der Nähe ist.
execute store result score VarStBrSy.1Bauwerk PZStBrSy.1Wert if entity @e[distance=..10,type=minecraft:armor_stand,tag=EtiStBrSy.1Geruest,tag=!EtiStBrSy.1Erstellen,sort=nearest,limit=1]

# Eine Nachricht um zu melden dass das Gerüst abgebaut wurde.
execute if score VarStBrSy.1Bauwerk PZStBrSy.1Wert matches 1 run tellraw @a[distance=..15] ["Steinbruch-System.1:\n",{"text":"Der Steinbruch wurde entfernt.","color":"yellow","bold":true}]

# Wenn ein Gerüst sich in der Nähe befindet, wird dieses samt Bohrer und Sammlern abgebaut und entfernt. Die Gegenstände für das System werden gedroppt.
execute if score VarStBrSy.1Bauwerk PZStBrSy.1Wert matches 1 at @e[distance=..10,type=minecraft:armor_stand,tag=EtiStBrSy.1Geruest,tag=!EtiStBrSy.1Erstellen,sort=nearest,limit=1] run fill ~-4 ~ ~-4 ~4 ~4 ~4 minecraft:air replace minecraft:oak_fence

# Der Bohrer wird entfernt und als Drop wieder erzeugt.
execute if score VarStBrSy.1Bauwerk PZStBrSy.1Wert matches 1 at @e[distance=..10,type=minecraft:armor_stand,tag=EtiStBrSy.1Geruest,sort=furthest,limit=1] positioned ~-5 ~ ~-5 store success score VarStBrSy.1Abbauen PZStBrSy.1Wert run kill @e[dx=10,dy=-512,dz=10,type=minecraft:armor_stand,tag=EtiStBrSy.1Bohrer,sort=nearest,limit=1]
execute if score VarStBrSy.1Bauwerk PZStBrSy.1Wert matches 1 if score VarStBrSy.1Abbauen PZStBrSy.1Wert matches 1 run summon minecraft:item ~ ~ ~ {Item:{id:"minecraft:armor_stand",Count:1b,tag:{EigStBrSy.1Alle:true,display:{Name:'{"text":"Bohrer","bold":true}',Lore:['"Platziere den Rüstungsständer"','"neben einem Gerüst"','"damit der Bohrer"','"aufgebaut wird."']},EntityTag:{Marker:true,ShowArms:true,NoBasePlate:true,NoGravity:true,DisabledSlots:2039552,ArmorItems:[{},{},{},{id:"minecraft:iron_trapdoor",Count:1b}],Pose:{LeftLeg:[0.0f,0.0f,12.0f],RightLeg:[0.0f,0.0f,-12.0f],LeftArm:[180.0f],RightArm:[180.0f]},Tags:["EtiStBrSy.1Alle","EtiStBrSy.1Bohrer","EtiStBrSy.1Erstellen"] } } } }

# Das Gerüst und die Sammler werden gelöscht.
execute if score VarStBrSy.1Bauwerk PZStBrSy.1Wert matches 1 run summon minecraft:item ~ ~ ~ {Item:{id:"minecraft:armor_stand",Count:2b,tag:{EigStBrSy.1Alle:true,display:{Name:'{"text":"Gerüst","bold":true}',Lore:['"Platziere den Rüstungsständer"','"um das Gerüst für"','"den Bohrer zu erstellen."','"Ein erneutes Platzieren neben"','"einem vorhandenen Gerüst"','"entfernt dieses samt Bohrer wieder."']},EntityTag:{Marker:true,Invisible:true,Tags:["EtiStBrSy.1Alle","EtiStBrSy.1Geruest","EtiStBrSy.1Erstellen"] } } } }
execute if score VarStBrSy.1Bauwerk PZStBrSy.1Wert matches 1 at @e[distance=..8,type=minecraft:armor_stand,tag=EtiStBrSy.1Sammler,sort=nearest] run summon minecraft:item ~ ~ ~ {Item:{id:"minecraft:armor_stand",Count:1b,tag:{EigStBrSy.1Alle:true,display:{Name:'{"text":"Sammler","bold":true}',Lore:['"Platziere den Rüstungsständer"','"damit die Gegenstände"','"vom Bohrer an der Stelle des"','"Sammlers aufgesammelt werden."']},EntityTag:{Small:true,Marker:true,Invisible:true,NoGravity:true,ArmorItems:[{},{},{},{id:"minecraft:chest",Count:1b}],Tags:["EtiStBrSy.1Alle","EtiStBrSy.1Sammler"] } } } }

# Das Gerüst und die Sammler werden als Drops erzeugt.
execute if score VarStBrSy.1Bauwerk PZStBrSy.1Wert matches 1 run kill @e[distance=..10,type=minecraft:armor_stand,tag=EtiStBrSy.1Geruest,sort=nearest,limit=2]
execute if score VarStBrSy.1Bauwerk PZStBrSy.1Wert matches 1 run kill @e[distance=..8,type=minecraft:armor_stand,tag=EtiStBrSy.1Sammler,sort=nearest]

# Eine Nachricht um zu bestätigen, dass das Gerüst errichtet wurde.
execute if score VarStBrSy.1Bauwerk PZStBrSy.1Wert matches 0 run tellraw @a[distance=..15] ["Steinbruch-System.1:\n",{"text":"Der Steinbruch konnte erfolgreich errichtet werden.","color":"green","bold":true}]

# Zäune werden gerüstartig errichtet.
execute if score VarStBrSy.1Bauwerk PZStBrSy.1Wert matches 0 run fill ~-4 ~ ~-4 ~4 ~4 ~4 minecraft:oak_fence replace
execute if score VarStBrSy.1Bauwerk PZStBrSy.1Wert matches 0 run fill ~-3 ~ ~-3 ~3 ~4 ~3 minecraft:air replace
execute if score VarStBrSy.1Bauwerk PZStBrSy.1Wert matches 0 run fill ~-4 ~1 ~-3 ~4 ~3 ~3 minecraft:air replace
execute if score VarStBrSy.1Bauwerk PZStBrSy.1Wert matches 0 run fill ~-3 ~1 ~-4 ~3 ~3 ~4 minecraft:air replace

# Das Etikett wird entfernt damit diese Funktion nicht nochmal aufgerufen werden kann und das Gerüst erhält den wert null, da noch kein Bohrer vorhanden ist.
execute if score VarStBrSy.1Bauwerk PZStBrSy.1Wert matches 0 run tag @s remove EtiStBrSy.1Erstellen
execute if score VarStBrSy.1Bauwerk PZStBrSy.1Wert matches 0 run scoreboard players set @s PZStBrSy.1Wert 0

Variante 1: Erstellen-Funktion
Die Erstellen-Funktion fügt den Bohrer zum Gerüst hinzu, falls noch kein Bohrer vorhanden ist, andernfalls wird der zusätzliche Bohrer abgelehnt.

Editor Icon steinbruch-system:v1erstellen.mcfunction
# Abhängig davon, ob ein Gerüst vorhanden ist, wird das Etikett entfernt.
execute store success score @e[distance=..8,type=minecraft:armor_stand,tag=EtiStBrSy.1Geruest,scores={PZStBrSy.1Wert=0},limit=1] PZStBrSy.1Wert run tag @s remove EtiStBrSy.1Erstellen

# Eine Erfolgs-Nachricht, wenn ein gerüst vorhanden ist.
execute if entity @s[tag=!EtiStBrSy.1Erstellen] run tellraw @a[distance=..15] ["Steinbruch-System.1:\n",{"text":"Der Steinbruch wurde erfolgreich mit dem Bohrer ausgestattet.","color":"green","bold":true}]

# Eine Fehler-Meldung wenn das Gerüst nicht vorhanden ist.
execute if entity @s[tag=EtiStBrSy.1Erstellen] run tellraw @a[distance=..15] ["Steinbruch-System.1:\n",{"text":"Es gibt in der Nähe keinen freies Steinbruch-Gerüst, woran der Bohrer befestigt werden könnte.","color":"red","bold":true}]

# Wenn kein Gerüst vorhanden ist, wird der Bohrer gedroppt und anschließend der Bohrer selbst gelöscht.
execute if entity @s[tag=EtiStBrSy.1Erstellen] run summon minecraft:item ~ ~ ~ {Item:{id:"minecraft:armor_stand",Count:1b,tag:{EigStBrSy.1Alle:true,display:{Name:'{"text":"Bohrer","bold":true}',Lore:['"Platziere den Rüstungsständer"','"neben einem Gerüst"','"damit der Bohrer"','"aufgebaut wird."']},EntityTag:{Marker:true,ShowArms:true,NoBasePlate:true,NoGravity:true,DisabledSlots:2039552,ArmorItems:[{},{},{},{id:"minecraft:iron_trapdoor",Count:1b}],Pose:{LeftLeg:[0.0f,0.0f,12.0f],RightLeg:[0.0f,0.0f,-12.0f],LeftArm:[180.0f],RightArm:[180.0f]},Tags:["EtiStBrSy.1Alle","EtiStBrSy.1Bohrer","EtiStBrSy.1Erstellen"] } } } }
kill @s[tag=EtiStBrSy.1Erstellen]

# Der Bohrer wird an seine Start-Position gebracht.
execute at @e[distance=..8,type=minecraft:armor_stand,tag=EtiStBrSy.1Geruest,scores={PZStBrSy.1Wert=1},limit=1] run teleport @s[tag=!EtiStBrSy.1Erstellen] ~-3 ~ ~-3

Variante 1: Schritt-Funktion
Die Schritt-Funktion sorgt dafür dass die Schritte des Bohrers gezählt werden, sodass er sich in den bestimmten Bereich nur bewegen kann. Gleichzeitig sorgt sie auch dafür, dass der Block an dem sich der Bohrer derzeit befindet abgebaut wird. Falls das nicht möglich ist, wird der Bohrer entfernt und gedroppt.

Editor Icon steinbruch-system:v1schritt.mcfunction
# Es wird geprüft ob der Block unter dem Bohrer abgebaut werden kann, nur dann wird er abgebaut und der Bohrer wird bewegt.
execute store success score VarStBrSy.1Abbauen PZStBrSy.1Wert unless block ~ ~-1 ~ #wither_immune
execute if score VarStBrSy.1Abbauen PZStBrSy.1Wert matches 1 run setblock ~ ~-1 ~ minecraft:air destroy
execute if score VarStBrSy.1Abbauen PZStBrSy.1Wert matches 1 run teleport @s ~1 ~ ~ ~ ~
execute if score VarStBrSy.1Abbauen PZStBrSy.1Wert matches 1 run playsound minecraft:block.anvil.use master @a[distance=..25] ~ ~ ~ 1 0.5 1

# Wenn der Bohrer nicht abbauen konnte, wird er gedroppt und anschließend entfernt.
execute if score VarStBrSy.1Abbauen PZStBrSy.1Wert matches 0 run summon minecraft:item ~ ~ ~ {Item:{id:"minecraft:armor_stand",Count:1b,tag:{EigStBrSy.1Alle:true,EigStBrSy.1Bohrer:true,display:{Name:'{"text":"Bohrer","bold":true}',Lore:['"Platziere den Rüstungsständer"','"damit der Bohrer"','"aufgebaut wird."']},EntityTag:{ShowArms:true,NoBasePlate:true,NoGravity:true,DisabledSlots:2039552,ArmorItems:[{},{},{},{id:"minecraft:iron_trapdoor",Count:1b}],Pose:{LeftLeg:[0.0f,0.0f,12.0f],RightLeg:[0.0f,0.0f,-12.0f],LeftArm:[180.0f],RightArm:[180.0f]},Tags:["EtiStBrSy.1Alle","EtiStBrSy.1Bohrer","EtiStBrSy.1Erstellen"] } } } }
execute if score VarStBrSy.1Abbauen PZStBrSy.1Wert matches 0 run kill @s
execute if score VarStBrSy.1Abbauen PZStBrSy.1Wert matches 0 run playsound minecraft:block.anvil.land master @a[distance=..25] ~ ~ ~ 1 0.5 1

# Gegenstände die vom abgebauten Block gedroppt sind, werden zu einen zufälligen Sammler in der Nähe teleportiert.
execute as @e[distance=..1,type=minecraft:item,sort=nearest] positioned ~-5 ~-2 ~-5 at @e[dx=10,dy=512,dz=10,type=minecraft:armor_stand,tag=EtiStBrSy.1Geruest,sort=nearest,limit=1] at @e[distance=..8,type=minecraft:armor_stand,tag=EtiStBrSy.1Sammler,sort=random,limit=1] run teleport @s ~ ~ ~

# Jeder Schritt des Bohrers wird gezählt. Erreicht er vor sich den Rand wird er um eine Reihe weiter geschoben. Falls er die letzte Reihe erreicht hat, wird er um eine Ebene nach unten teleportiert und kann dort von vorne beginnen.
scoreboard players add @s PZStBrSy.1Wert 1
scoreboard players add @s[scores={PZStBrSy.1Wert=7..}] PZStBrSy.1Versetzen 1
teleport @s[scores={PZStBrSy.1Wert=7..,PZStBrSy.1Versetzen=..7}] ~-6 ~ ~1 ~ ~
teleport @s[scores={PZStBrSy.1Wert=7..,PZStBrSy.1Versetzen=7..}] ~-6 ~-1 ~-6 ~ ~
scoreboard players set @s[scores={PZStBrSy.1Wert=7..,PZStBrSy.1Versetzen=7..}] PZStBrSy.1Versetzen 0
scoreboard players set @s[scores={PZStBrSy.1Wert=7..}] PZStBrSy.1Wert 0

Variante 1: Stopp-Funktion
Die Stopp-Funktion löscht die Punkte-Ziele wieder, sowie die Gegenstände die für das Steinbruch-System benötigt werden oder durch dieses gedroppt sind. Die Felswand aus Granit wird wieder entfernt und die Gegenstände die für die Bohraktion verwendet wurden und auf dem Boden liegen werden entfernt.

Editor Icon steinbruch-system:v1stopp.mcfunction
# Die Punkte-Ziele werden entfernt.
scoreboard objectives remove PZStBrSy.1Wert
scoreboard objectives remove PZStBrSy.1Versetzen

# Alle Gegenstände, die für das Bohren benötigt wurden oder entstanden sind, werden gelöscht.
clear @a[nbt={Inventory:[{tag:{EigStBrSy.1Alle:true} } ] }] minecraft:granite
clear @a minecraft:armor_stand{EigStBrSy.1Alle:true}

# Das Gerüst wird gelöscht.
execute as @e[type=minecraft:armor_stand,tag=EtiStBrSy.1Geruest] at @s run fill ~-4 ~ ~-4 ~4 ~4 ~4 minecraft:air replace minecraft:oak_fence

# Die Felswand aus Granit wird entfernt
fill ~ ~ ~-19 ~20 ~20 ~-39 minecraft:air replace

# Die gedroppten Granit-Drops, sowie Gegenstände für das Steinbruch-System erhalten ein Etikett, sodass alle Objekte mit dem Etikett danach gelöscht werden.
execute positioned ~18 ~-1 ~ run tag @e[dx=39,dy=20,dz=20,type=minecraft:item,nbt={Item:{id:"minecraft:granite"} } ] add EtiStBrSy.1Alle
tag @e[type=minecraft:item,nbt={Item:{tag:{EigStBrSy.1Alle:true} } } ] add EtiStBrSy.1Alle
kill @e[tag=EtiStBrSy.1Alle]
Advertisement