Technik Wiki
Registrieren
Advertisement
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 Kugelgenerator erzeugt wie der Name schon sagt Kugeln, welche eine bestimmte Größe haben können und sie können hohl sein oder gefüllt. Die Befehle arbeiten in den Fällen mit Koordinaten und dem Blickwinkel.

Variante 1[]

Kugelgenerator (Befehle) Bild 1.1 Kugelgenerator (Befehle) Bild 1.2 Kugelgenerator (Befehle) Bild 1.3 Kugelgenerator (Befehle) Bild 1.4

Dieser Kugelgenerator ermöglicht es Spielern mit Rüstungsständern in der Hand Kugeln mit einer festen Größe zu erzeugen. Die Kugeln sind dabei komplett gefüllt.

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 kugelgenerator:v1start.mcfunction
# Es werden zwei Punktestand-Ziele für die Horizontale und Vertikale erstellt.
scoreboard objectives add PZKugelG.1Hor dummy ["Kugelgenerator.1: ",{"text":"Horizontale Position","bold":true}]
scoreboard objectives add PZKugelG.1Vert dummy ["Kugelgenerator.1: ",{"text":"Vertikale Position","bold":true}]

# Spielern in einem Umkreis von 25 Metern werden 16 Rüstungsständer in die Hand gegeben.
give @a[distance=..25] minecraft:armor_stand{kugelgenerator:"v1gegenstand",display:{Lore:['"Platziere den Rüstungsständer"','"um eine Kugel"','"generieren zu lassen"']},EntityTag:{Small:true,NoGravity:true,Invisible:true,Tags:["EtiKugelG.1Alle","EtiKugelG.1Mittelpunkt","EtiKugelG.1Erstellen"]} } 16

Variante 1: Zyklus-Funktion
Die Zyklus-Funktion lässt die Erstellen-Funktion aufrufen, wenn der Rüstungsständer platziert wurde. Sie lässt die Kugel-Rüstungsständer so positionieren, dass die Kugel generiert werden kann.

Editor Icon kugelgenerator:v1zyklus.mcfunction
# Wenn es keinen KugelErzeugen-Rüstungsständer gibt, aber einen Erstellen-Rüstungsständer, wird die Erstellen-Funktion aufgerufen.
execute unless entity @e[type=minecraft:armor_stand,tag=EtiKugelG.1KugelErzeugen,scores={PZKugelG.1Hor=0..}] as @e[type=minecraft:armor_stand,tag=EtiKugelG.1Erstellen] at @s run function kugelgenerator:v1erstellen

# In der Mitte der Kugel werden Flammen-Partikel erzeugt.
execute at @e[type=minecraft:armor_stand,tag=EtiKugelG.1Mittelpunkt] run particle minecraft:flame ~ ~1 ~ 0.3 0.3 0.3 0 10

# An der Position des KugelErzeugen-Rüstungsständers wird nach allen Kugel-Rüstungsständern gesucht, die in dem Radius von drei Metern liegen. An deren Position wird grobe Erde platziert, falls dort Luft ist.
execute at @e[type=minecraft:armor_stand,tag=EtiKugelG.1KugelErzeugen,scores={PZKugelG.1Hor=0..}] at @e[distance=..3,type=minecraft:armor_stand,tag=EtiKugelG.1Kugel] if block ~ ~ ~ minecraft:air run setblock ~ ~ ~ minecraft:coarse_dirt replace

# Die Kugel-Rüstungsständer werden einen Meter in minus x-Richtung verschoben und erhalten für die Horizontale eine eins dazu. Wenn die Horizontale sieben erreicht wird der Wert der Vertikalen um eins erhöht.
execute as @e[type=minecraft:armor_stand,tag=EtiKugelG.1Kugel] at @s run teleport @s ~-1 ~ ~
scoreboard players add @e[type=minecraft:armor_stand,tag=EtiKugelG.1KugelErzeugen] PZKugelG.1Hor 1
scoreboard players add @e[type=minecraft:armor_stand,tag=EtiKugelG.1KugelErzeugen,scores={PZKugelG.1Hor=7..}] PZKugelG.1Vert 1

# Wenn der Punktestand der Vertikalen den Wert sieben erreicht, witrd die Nachricht ausgegeben.
execute at @e[type=minecraft:armor_stand,tag=EtiKugelG.1KugelErzeugen,scores={PZKugelG.1Vert=7..}] run tellraw @a[distance=..50] ["Kugelgenerator.1: ",{"text":"Kugel generiert","bold":true}]

# Wenn die Horizontale den Wert sieben erreicht werden die Rüstungsständer eine Reihe nach oben teleportiert und beginnen von vorne. Wenn die Vertikale den Wert sieben erreicht, werden alle Kugel-Rüstungsständer entfernt.
execute if entity @e[type=minecraft:armor_stand,tag=EtiKugelG.1KugelErzeugen,scores={PZKugelG.1Hor=7..}] as @e[type=minecraft:armor_stand,tag=EtiKugelG.1Kugel] at @s run teleport @s ~7 ~1 ~
execute if entity @e[type=minecraft:armor_stand,tag=EtiKugelG.1KugelErzeugen,scores={PZKugelG.1Vert=7..}] run kill @e[type=minecraft:armor_stand,tag=EtiKugelG.1Kugel]

# Wenn der Wert der Vertikalen bei sieben angekommen ist, wird das Etikett entfernt.
tag @e[type=minecraft:armor_stand,tag=EtiKugelG.1KugelErzeugen,scores={PZKugelG.1Vert=7..}] remove EtiKugelG.1KugelErzeugen

# Wenn der KugelErzeugen-Rüstungsständer den Wert sieben für die Horizontale erreicht hat, wird er wieder auf null gesetzt.
scoreboard players set @e[type=minecraft:armor_stand,tag=EtiKugelG.1KugelErzeugen,scores={PZKugelG.1Hor=7..}] PZKugelG.1Hor 0

Variante 1: Erstellen-Funktion
Die Erstellen-Funktion erzeugt sieben Rüstungsständer die für das Generieren der Kugel benötigt werden.

Editor Icon kugelgenerator:v1erstellen.mcfunction
# Die Werte sowie die Etiketten werden gesetzt. Damit die Kugel weiter oben entsteht, wird der Rüstungsständer zehn Meter nach oben teleportiert.
scoreboard players set @s PZKugelG.1Hor 0
scoreboard players set @s PZKugelG.1Vert 0
tag @s remove EtiKugelG.1Erstellen
tag @s add EtiKugelG.1KugelErzeugen
teleport @s ~ ~10 ~

# Es werden sieben Kugel-Rüstungsständer erzeugt, die beim Generieren der Kugel den richtigen Abstand messen.
summon minecraft:armor_stand ~3 ~7 ~3 {Small:true,NoGravity:true,Tags:["EtiKugelG.1Alle","EtiKugelG.1Kugel"]}
summon minecraft:armor_stand ~3 ~7 ~2 {Small:true,NoGravity:true,Tags:["EtiKugelG.1Alle","EtiKugelG.1Kugel"]}
summon minecraft:armor_stand ~3 ~7 ~1 {Small:true,NoGravity:true,Tags:["EtiKugelG.1Alle","EtiKugelG.1Kugel"]}
summon minecraft:armor_stand ~3 ~7 ~ {Small:true,NoGravity:true,Tags:["EtiKugelG.1Alle","EtiKugelG.1Kugel"]}
summon minecraft:armor_stand ~3 ~7 ~-1 {Small:true,NoGravity:true,Tags:["EtiKugelG.1Alle","EtiKugelG.1Kugel"]}
summon minecraft:armor_stand ~3 ~7 ~-2 {Small:true,NoGravity:true,Tags:["EtiKugelG.1Alle","EtiKugelG.1Kugel"]}
summon minecraft:armor_stand ~3 ~7 ~-3 {Small:true,NoGravity:true,Tags:["EtiKugelG.1Alle","EtiKugelG.1Kugel"]}

# Eine Nachricht wird allen Spielern in einem Umkreis von 50 Metern mitgeteilt.
tellraw @a[distance=..50] ["Kugelgenerator.1: ",{"text":"Kugel wird generiert","color":"gray","bold":true}]

Variante 1: Stopp-Funktion
Die Stopp-Funktion löscht die Punktestand-Ziele sowie die Kugel und die Rüstungsständer.

Editor Icon kugelgenerator:v1stopp.mcfunction
# Die beiden Punktestand-Ziel werden entfernt
scoreboard objectives remove PZKugelG.1Hor
scoreboard objectives remove PZKugelG.1Vert

# An der Position der Kugel, wird die gesamte grobe Erde durch Luft ersetzt.
execute at @e[type=minecraft:armor_stand,tag=EtiKugelG.1Mittelpunkt] run fill ~-5 ~-5 ~-5 ~5 ~5 ~5 minecraft:air replace minecraft:coarse_dirt

# Die Gegenstände wie auch die Rüstungsständer in der Welt werden entfernt.
clear @a[distance=..25] minecraft:armor_stand{kugelgenerator:"v1gegenstand"}
tag @e[type=minecraft:item,nbt={Item:{tag:{kugelgenerator:"v1gegenstand"} } }] add EtiKugelG.1Alle
kill @e[tag=EtiKugelG.1Alle]

Variante 2[]

Kugelgenerator (Befehle) Bild 2.1 Kugelgenerator (Befehle) Bild 2.2 Kugelgenerator (Befehle) Bild 2.3 Kugelgenerator (Befehle) Bild 2.4

Mit diesem Kugelgenerator besitzt der Spieler eine Auswahl zwischen drei Größen der Kugeln die er durch das Platzieren des Rüstungsständers erzeugen kann. Die generierten Kugeln sind dabei hohl.

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

Editor Icon kugelgenerator:v2start.mcfunction
# Eswerden zwei Punktestand-Ziele für die Horizontale und die vertikale erstellt, wobei das erstere gleichzeitig auch als Auslöser für den Spieler dient.
scoreboard objectives add PZKugelG.2Hor trigger ["Kugelgenerator.2: ",{"text":"Auslöser und horizontale Position","bold":true}]
scoreboard objectives add PZKugelG.2Vert dummy ["Kugelgenerator.2: ",{"text":"Vertikale Position","bold":true}]

# Spieler in einem Umkreis von 25 Metern erhalten einen Rüstungsständer den sie für das Generieren einer Kugel platzieren können.
give @a[distance=..25] minecraft:armor_stand{kugelgenerator:"v2gegenstand",display:{Lore:['"Platziere den Rüstungsständer"','"um eine Kugel"','"generieren zu lassen"']},EntityTag:{Small:true,NoGravity:true,Invisible:true,Tags:["EtiKugelG.2Alle","EtiKugelG.2Mittelpunkt","EtiKugelG.2Erstellen"]} } 16
scoreboard players set VarKugelG.2Groesse PZKugelG.2Hor 3

Variante 2: Zyklus-Funktion
Die Zyklus-Funktion ruft für einen platzierten Rüstungsständer die Erstellen-Funktion auf und gibt dem Spieler im Chat die Option die Größe der Kugel mit drei möglichen Werten zu generieren.

Editor Icon kugelgenerator:v2zyklus.mcfunction
# Spieler die auf den Auslöser geklickt haben, sorgen dafür, dass die Größen-Variable den Wert vom Spieler übertragen bekommen. Vorausgesetzt es wird keine Kugel in gleichen Augenblick erzeugt.
execute unless entity @e[type=minecraft:armor_stand,tag=EtiKugelG.2KugelErzeugen] as @a[distance=..150,scores={PZKugelG.2Hor=3..5}] run scoreboard players operation VarKugelG.2Groesse PZKugelG.2Hor = @s PZKugelG.2Hor

# Spieler die auf den Auslöser geklickt haben oder noch nie ihn angeklickt haben, erhalten eine Chat-Nachricht in der sie die drei Größen der Kugel festelegen können, die sie mit dem Platzieren des Rüstungsständers erzeugen.
execute if score VarKugelG.2Groesse PZKugelG.2Hor matches 0.. as @a[distance=..150] unless entity @s[scores={PZKugelG.2Hor=0}] run tellraw @s ["Kugelgenerator.2: ",{"text":"\ngröße = ","color":"gold","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für den Wert"} },"clickEvent":{"action":"run_command","value":"/trigger PZKugelG.2Hor set 3"} },{"text":"3","color":"gray","bold":true},{"text":"\ngröße = ","color":"gold","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für den Wert"} },"clickEvent":{"action":"run_command","value":"/trigger PZKugelG.2Hor set 4"} },{"text":"4","color":"gray","bold":true},{"text":"\ngröße = ","color":"gold","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für den Wert"} },"clickEvent":{"action":"run_command","value":"/trigger PZKugelG.2Hor set 5"} },{"text":"5","color":"gray","bold":true},{"text":"\ngröße == ","color":"gold","bold":true},{"score":{"name":"VarKugelG.2Groesse","objective":"PZKugelG.2Hor"},"color":"dark_purple","bold":true}]

# Anschließend erhalten die Spieler wieder die Möglichkeit auf den Auslöser zu klicken und ihr Punktestand wird auf null gesetzt.
execute as @a[distance=..150] unless entity @s[scores={PZKugelG.2Hor=0}] run scoreboard players enable @s PZKugelG.2Hor
execute as @a[distance=..150] unless entity @s[scores={PZKugelG.2Hor=0}] run scoreboard players set @s PZKugelG.2Hor 0

# Wenn gerade keine Kugel erzeugt wird, kann eine Kugel generiert werden. Dazu wird vom Erstellen-Rüstungsständer die Erstellen-Funktion aufgerufen.
execute unless entity @e[type=minecraft:armor_stand,tag=EtiKugelG.2KugelErzeugen,scores={PZKugelG.2Hor=0..}] as @e[type=minecraft:armor_stand,tag=EtiKugelG.2Erstellen] at @s run function kugelgenerator:v2erstellen

# Am Mittelpunkt der Kugel werden Flammen-Partikel erzeugt.
execute at @e[type=minecraft:armor_stand,tag=EtiKugelG.2Mittelpunkt] run particle minecraft:flame ~ ~1 ~ 0.3 0.3 0.3 0 10

# Je nach Wert der Größen-Variable wird eine entsprechend große Kugel erzeugt. Dazu wird an den Kugel-Rüstungsständern grobe Erde platziert, wenn sie in genau dem Abstand zur Mitte sich befinden. Danach werden sie einen Meter vorwärts bewegt und erhalten Werte für die Horizontale und Vertikale.
execute if score VarKugelG.2Groesse PZKugelG.2Hor matches 3 at @e[type=minecraft:armor_stand,tag=EtiKugelG.2KugelErzeugen,scores={PZKugelG.2Hor=0..}] at @e[distance=2..3,type=minecraft:armor_stand,tag=EtiKugelG.2Kugel] if block ~ ~ ~ minecraft:air run setblock ~ ~ ~ minecraft:coarse_dirt replace
execute if score VarKugelG.2Groesse PZKugelG.2Hor matches 4 at @e[type=minecraft:armor_stand,tag=EtiKugelG.2KugelErzeugen,scores={PZKugelG.2Hor=0..}] at @e[distance=3..4,type=minecraft:armor_stand,tag=EtiKugelG.2Kugel] if block ~ ~ ~ minecraft:air run setblock ~ ~ ~ minecraft:coarse_dirt replace
execute if score VarKugelG.2Groesse PZKugelG.2Hor matches 5 at @e[type=minecraft:armor_stand,tag=EtiKugelG.2KugelErzeugen,scores={PZKugelG.2Hor=0..}] at @e[distance=4..5,type=minecraft:armor_stand,tag=EtiKugelG.2Kugel] if block ~ ~ ~ minecraft:air run setblock ~ ~ ~ minecraft:coarse_dirt replace
execute as @e[type=minecraft:armor_stand,tag=EtiKugelG.2Kugel] at @s run teleport @s ~-1 ~ ~
scoreboard players add @e[type=minecraft:armor_stand,tag=EtiKugelG.2KugelErzeugen] PZKugelG.2Hor 1
scoreboard players add @e[type=minecraft:armor_stand,tag=EtiKugelG.2KugelErzeugen,scores={PZKugelG.2Hor=11..}] PZKugelG.2Vert 1

# Wenn die Kugel-Rüstungsständer in der elften Ebene sich befinden, besitzt der KugelErzeugen-Rüstungsständer den Wert elf und gibt eine Nachricht aus.
execute at @e[type=minecraft:armor_stand,tag=EtiKugelG.2KugelErzeugen,scores={PZKugelG.2Vert=11..}] run tellraw @a[distance=..50] ["Kugelgenerator.2: ",{"text":"Kugel generiert","bold":true}]

# Wenn die Kugel-Rüstungsständer in der Horizontale beim elften Meter angelangt sind, werden sie wieder zurück teleportiert aber eine Reihe darüber, falls sie die Vertikale auf der höchsten Stufe erreicht haben (elf) werden sie entfernt.
execute if entity @e[type=minecraft:armor_stand,tag=EtiKugelG.2KugelErzeugen,scores={PZKugelG.2Hor=11..}] as @e[type=minecraft:armor_stand,tag=EtiKugelG.2Kugel] at @s run teleport @s ~11 ~1 ~
execute if entity @e[type=minecraft:armor_stand,tag=EtiKugelG.2KugelErzeugen,scores={PZKugelG.2Vert=11..}] run kill @e[type=minecraft:armor_stand,tag=EtiKugelG.2Kugel]

# Wenn die Kugel erzeugt wurde, wird das Etikett entfernt.
tag @e[type=minecraft:armor_stand,tag=EtiKugelG.2KugelErzeugen,scores={PZKugelG.2Vert=11..}] remove EtiKugelG.2KugelErzeugen

# Wenn der Wert elf erreicht wurde, wird der Wert wieder auf null gesetzt.
scoreboard players set @e[type=minecraft:armor_stand,tag=EtiKugelG.2KugelErzeugen,scores={PZKugelG.2Hor=11..}] PZKugelG.2Hor 0

Variante 2: Erstellen-Funktion
Die Erstellen-Funktion positioniert den Rüstungsständer weiter höher und erzeugt elf Kugel-Rüstungsständer für das Generieren der Kugel.

Editor Icon kugelgenerator:v2erstellen.mcfunction
# Alle Grundeinstellungen werden durchgeführt.
scoreboard players set @s PZKugelG.2Hor 0
scoreboard players set @s PZKugelG.2Vert 0
tag @s remove EtiKugelG.2Erstellen
tag @s add EtiKugelG.2KugelErzeugen
teleport @s ~ ~10 ~

# Es werden elf Rüstungsständer erzeugt um maximal eine fünf im Durchmesser große Kugel zu generieren.
summon minecraft:armor_stand ~5 ~5 ~5 {Small:true,NoGravity:true,Tags:["EtiKugelG.2Alle","EtiKugelG.2Kugel"]}
summon minecraft:armor_stand ~5 ~5 ~4 {Small:true,NoGravity:true,Tags:["EtiKugelG.2Alle","EtiKugelG.2Kugel"]}
summon minecraft:armor_stand ~5 ~5 ~3 {Small:true,NoGravity:true,Tags:["EtiKugelG.2Alle","EtiKugelG.2Kugel"]}
summon minecraft:armor_stand ~5 ~5 ~2 {Small:true,NoGravity:true,Tags:["EtiKugelG.2Alle","EtiKugelG.2Kugel"]}
summon minecraft:armor_stand ~5 ~5 ~1 {Small:true,NoGravity:true,Tags:["EtiKugelG.2Alle","EtiKugelG.2Kugel"]}
summon minecraft:armor_stand ~5 ~5 ~ {Small:true,NoGravity:true,Tags:["EtiKugelG.2Alle","EtiKugelG.2Kugel"]}
summon minecraft:armor_stand ~5 ~5 ~-1 {Small:true,NoGravity:true,Tags:["EtiKugelG.2Alle","EtiKugelG.2Kugel"]}
summon minecraft:armor_stand ~5 ~5 ~-2 {Small:true,NoGravity:true,Tags:["EtiKugelG.2Alle","EtiKugelG.2Kugel"]}
summon minecraft:armor_stand ~5 ~5 ~-3 {Small:true,NoGravity:true,Tags:["EtiKugelG.2Alle","EtiKugelG.2Kugel"]}
summon minecraft:armor_stand ~5 ~5 ~-4 {Small:true,NoGravity:true,Tags:["EtiKugelG.2Alle","EtiKugelG.2Kugel"]}
summon minecraft:armor_stand ~5 ~5 ~-5 {Small:true,NoGravity:true,Tags:["EtiKugelG.2Alle","EtiKugelG.2Kugel"]}

# Eine Nachricht wird allen Spielern in einem Umkreis von 50 Metern mitgeteilt.
tellraw @a[distance=..50] ["Kugelgenerator.2: ",{"text":"Kugel wird generiert","color":"gray","bold":true}]

Variante 2: Stopp-Funktion
Die Stopp-Funktion löscht die Punktestand-Ziele, die Kugel und die Rüstungsständer wieder.

Editor Icon kugelgenerator:v2stopp.mcfunction
# Die beiden Punktestand-Ziele werden wieder entfernt.
scoreboard objectives remove PZKugelG.2Hor
scoreboard objectives remove PZKugelG.2Vert

# An der Stelle der Kugel-Mitte wird ein 14*14*14 Bereich mit grober Erde durch Luft ersetzt.
execute at @e[type=minecraft:armor_stand,tag=EtiKugelG.2Mittelpunkt] run fill ~-7 ~-7 ~-7 ~7 ~7 ~7 minecraft:air replace minecraft:coarse_dirt

# Die Rüstungsständer in der Hand, als Drop oder als Objekt in der Welt werden entfernt.
clear @a[distance=..25] minecraft:armor_stand{kugelgenerator:"v2gegenstand"}
tag @e[type=minecraft:item,nbt={Item:{tag:{kugelgenerator:"v2gegenstand"} } }] add EtiKugelG.2Alle
kill @e[tag=EtiKugelG.2Alle]

Variante 3[]

Kugelgenerator (Befehle) Bild 3.1 Kugelgenerator (Befehle) Bild 3.2 Kugelgenerator (Befehle) Bild 3.3 Kugelgenerator (Befehle) Bild 3.4

Dieser Kugelgenerator gibt dem Spieler mehr Flexibilität in der Auswahl der Größe der Kugel. Die Größe der Kugel kann von einem Radius von eins bis 23 frei eingestellt werden und auch die Hohlheit der Kugel kann eingestellt werden. Wenn der Spieler einen Rüstungsständer platziert wird an der Stelle weiter oben die Kugel generiert.

Einschalten
  • Befehl 3.1 Wenn der Hebel umgelegt wird, wird die Start-Funktion gestartet.
Wiederholen
  • Befehl 3.2 Beim Einschalten wird auch der Wiederhol-Befehlsblock gestartet, der jeden Tick die Zyklus-Funktion lädt.
Ausschalten
  • Befehl 3.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 3: Start-Funktion
Die Start-Funktion erstellt die Punktestand-Ziele und gibt den Spielern einen Rüstungsständer in die Hand. Für die Hohlheit der Kugel wird ein weiterer Rüstungsständer erzeugt, der den Wahrheitswert speichern kann.

Editor Icon kugelgenerator:v3start.mcfunction
# Es werden zwei Punktestand-Ziele für die Horizontale und die Vertikale erstellt. Dabei funktioniert das erste auch als Auslöser für den Spieler.
scoreboard objectives add PZKugelG.3Hor trigger ["Kugelgenerator.3: ",{"text":"Auslöser und horizontale Position","bold":true}]
scoreboard objectives add PZKugelG.3Vert dummy ["Kugelgenerator.3: ",{"text":"Vertikale Position","bold":true}]

# Die Kugel-Größe wird auf drei gesetzt.
scoreboard players set VarKugelG.3Groesse PZKugelG.3Hor 3

# Spielern im Radius von 25 Metern wird der Kugelgenerator-Rüstungsständer in die Hand gegeben.
give @a[distance=..25] minecraft:armor_stand{kugelgenerator:"v3gegenstand",display:{Lore:['"Platziere den Rüstungsständer"','"um eine Kugel"','"generieren zu lassen"']},EntityTag:{Small:true,NoGravity:true,Invisible:true,Tags:["EtiKugelG.3Alle","EtiKugelG.3Mittelpunkt","EtiKugelG.3Erstellen"]} } 16

# Für die Option ob die generierte Kugel hohl oder ausgefüllt sein soll, wird ein Rüstungsständer erzeugt der Wahrheitswerte im Namen speichern kann.
summon minecraft:armor_stand ~ ~1 ~ {Small:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"wahr","color":"green","bold":true}',Tags:["EtiKugelG.3Alle","EtiKugelG.3Hohl"]}

Variante 3: Zyklus-Funktion
Die Zyklus-Funktion bietet dem Spieler im Chat eine Option für die Kugel. Er kann dort die Größe der Kugel festlegen und ob sie hohl sein soll oder nicht. Sie ruft die Erstellen-Funktion für den Rüstungsständer auf und lässt die Kugel durch die Kugel-Funktion generieren.

Editor Icon kugelgenerator:v3zyklus.mcfunction
# Wenn nicht gerade eine Kugel generiert wird, kann der Spieler die Kugelgröße nach belieben größer oder keliner einstellen.
execute unless entity @e[type=minecraft:armor_stand,tag=EtiKugelG.3KugelErzeugen] if entity @a[distance=..150,scores={PZKugelG.3Hor=1}] run scoreboard players add VarKugelG.3Groesse PZKugelG.3Hor 1
execute unless entity @e[type=minecraft:armor_stand,tag=EtiKugelG.3KugelErzeugen] if entity @a[distance=..150,scores={PZKugelG.3Hor=2}] run scoreboard players remove VarKugelG.3Groesse PZKugelG.3Hor 1

# Der Bereich der Größe liegt zwischen null und 24. Nur innerhalb dieser kann ein Wert festgelegt werden.
execute if score VarKugelG.3Groesse PZKugelG.3Hor matches ..0 run scoreboard players set VarKugelG.3Groesse PZKugelG.3Hor 23
execute if score VarKugelG.3Groesse PZKugelG.3Hor matches 24.. run scoreboard players set VarKugelG.3Groesse PZKugelG.3Hor 1

# Ebenfalls darf nicht gerade eine Kugel generiert werden, wenn man sie auf hohl oder gefüllt einstellen möchte.
execute unless entity @e[type=minecraft:armor_stand,tag=EtiKugelG.3KugelErzeugen] if entity @a[distance=..150,scores={PZKugelG.3Hor=3}] run data merge entity @e[type=minecraft:armor_stand,tag=EtiKugelG.3Hohl,sort=nearest,limit=1] {CustomName:'{"bold":true,"color":"green","text":"wahr"}'}
execute unless entity @e[type=minecraft:armor_stand,tag=EtiKugelG.3KugelErzeugen] if entity @a[distance=..150,scores={PZKugelG.3Hor=4}] run data merge entity @e[type=minecraft:armor_stand,tag=EtiKugelG.3Hohl,sort=nearest,limit=1] {CustomName:'{"bold":true,"color":"red","text":"falsch"}'}

# Solange der Rüstungsständer für die Option hohl exisitiert, bekommt der Spieler in einem 150 Meter großen Bereich eine Chat-Nachricht, sofern er nicht den Wert null besitzt. Dort kann er die Kugel-Größe sowie die Hohlheit einstellen.
execute if entity @e[type=minecraft:armor_stand,tag=EtiKugelG.3Hohl,sort=nearest,limit=1] as @a[distance=..150] unless entity @s[scores={PZKugelG.3Hor=0}] run tellraw @s ["Kugelgenerator.3: ",{"text":"\ngröße (","color":"gold","bold":true},{"text":"+1","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für größe +1"} },"clickEvent":{"action":"run_command","value":"/trigger PZKugelG.3Hor set 1"} },{"text":"!","color":"gold","bold":true},{"text":"-1","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für größe -1"} },"clickEvent":{"action":"run_command","value":"/trigger PZKugelG.3Hor set 2"} },{"text":") == ","color":"gold","bold":true},{"score":{"name":"VarKugelG.3Groesse","objective":"PZKugelG.3Hor"},"color":"dark_purple","bold":true},{"text":"\nhohl (","color":"gold","bold":true},{"text":"wahr","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für innen hohl"} },"clickEvent":{"action":"run_command","value":"/trigger PZKugelG.3Hor set 3"} },{"text":"!","color":"gold","bold":true},{"text":"falsch","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für ausgefüllt"} },"clickEvent":{"action":"run_command","value":"/trigger PZKugelG.3Hor set 4"} },{"text":") == ","color":"gold","bold":true},{"entity":"@e[type=minecraft:armor_stand,tag=EtiKugelG.3Hohl,sort=nearest,limit=1]","nbt":"CustomName","interpret":true}]

# Nach dem Einstellen wird der Spieler erneut für das Klicken des Auslösers berechtigt und er erhält den Wert null.
execute as @a[distance=..150] unless entity @s[scores={PZKugelG.3Hor=0}] run scoreboard players enable @s PZKugelG.3Hor
execute as @a[distance=..150] unless entity @s[scores={PZKugelG.3Hor=0}] run scoreboard players set @s PZKugelG.3Hor 0

# Wenn ein Rüstungsständer vom Spieler platziert wurde, wird die Erstellen-Funktion für diesen aufgerufen.
execute as @e[type=minecraft:armor_stand,tag=EtiKugelG.3Erstellen] at @s run function kugelgenerator:v3erstellen

# Bei jedem Rüstungsständer der den Mittelpunkt der Kugel darstellt werden Flammenpartikel erzeugt.
execute at @e[type=armor_stand,tag=EtiKugelG.3Mittelpunkt] run particle minecraft:flame ~ ~1 ~ 0.3 0.3 0.3 0 10

# Horizontal soll sich der Rüstungsständer genau 360 mal um die eigene Achse drehen um die Blöcke der Kugel zu platzieren. Anschließend wird durch ihm die Kugel-Funktion geladen.
scoreboard players set @e[type=armor_stand,tag=EtiKugelG.3KugelErzeugen] PZKugelG.3Hor 360
execute as @e[type=armor_stand,tag=EtiKugelG.3KugelErzeugen] at @s run function kugelgenerator:v3kugel

# Vertikal kann der Rüstungsständer sich maximal 180 Grad nach unten neigen, deshalb wird sein Wert um eins erhöht und er selbst wird geneigt.
scoreboard players add @e[type=armor_stand,tag=EtiKugelG.3KugelErzeugen] PZKugelG.3Vert 1
execute as @e[type=armor_stand,tag=EtiKugelG.3KugelErzeugen] at @s run teleport @s ~ ~ ~ ~ ~1

# Wenn der Rüstungsständer die maximale Neigung von 180 Grad erreicht hat, wird die Nachricht ausgegeben und er verliert das Etikett.
execute at @e[type=armor_stand,tag=EtiKugelG.3KugelErzeugen,scores={PZKugelG.3Vert=180..}] run tellraw @a[distance=..50] ["Kugelgenerator.3: ",{"text":"Kugel generiert","bold":true}]
tag @e[type=armor_stand,tag=EtiKugelG.3KugelErzeugen,scores={PZKugelG.3Vert=180..}] remove EtiKugelG.3KugelErzeugen

Variante 3: Erstellen-Funktion
Die Erstellen-Funktion legt alle Werte fest und positioniert den Rüstungsständer weiter höher.

Editor Icon kugelgenerator:v3erstellen.mcfunction
# Alle Einstellungen werden vorgenommen, damit der Rüstungsständer die Kugel erstellen kann.
scoreboard players set @s PZKugelG.3Hor 0
scoreboard players set @s PZKugelG.3Vert 0
tag @s remove EtiKugelG.3Erstellen
tag @s add EtiKugelG.3KugelErzeugen
teleport @s ~ ~15 ~ ~ -90

# Eine Nachricht wird allen Spielern in einem Umkreis von 50 Metern mitgeteilt.
tellraw @a[distance=..50] ["Kugelgenerator.3: ",{"text":"Kugel wird generiert","color":"gray","bold":true}]

Variante 3: Kugel-Funktion
Die Kugel-Funktion ruft sich selbst auf, solange sie noch alle 360 Grad abgedeckt hat. Bei jedem Grad wird die Kugel-Radius-Funktion aufgerufen.

Editor Icon kugelgenerator:v3kugel.mcfunction
# Der Radius den die Kugel besitzen soll wird in die dafür vorgesehene Variable gespeichert und in der aufgerufenen Kugel-Radius-Funktion benötigt.
scoreboard players operation VarKugelG.3Radius PZKugelG.3Hor = VarKugelG.3Groesse PZKugelG.3Hor
execute positioned ^ ^ ^1 run function kugelgenerator:v3kugel_radius

# Die Richtung des Rüstungsständer dreht sich bei jedem Aufruf dieser Funktion um ein Grad und wenn sich von 360 bei null angelangt ist. hört sie auf sich selbst aufzurufen.
scoreboard players remove @s PZKugelG.3Hor 1
execute if score @s PZKugelG.3Hor matches 1.. rotated ~1 ~ run function kugelgenerator:v3kugel

Variante 3: Kugel-Radius-Funktion
Die Kugel-Radius-Funktion setzt die Blöcke an der Position wie zuvor die Größe der Kugel festgelegt wurde. Dabei ruft sie sich selbst solange auf, bis sie den Abstand zur Mitte und somit die Kugelgröße erreicht hat.

Editor Icon kugelgenerator:v3kugel_radius.mcfunction
# Die Radius-Variable wird um eins verringert, bis dadurch die Funktion sich nicht mehr selbst aufruft.
scoreboard players remove VarKugelG.3Radius PZKugelG.3Hor 1

# Wenn der Rüstungsständer für die Hohlheit auf falsch eingestellt wurde, wird bei jedem Aufruf dieser Funktion ein Block für die Kugel platziert, ansonsten nur beim letzten Meter.
execute if entity @e[type=minecraft:armor_stand,tag=EtiKugelG.3Hohl,name="falsch",sort=nearest,limit=1] if block ~ ~ ~ minecraft:air run setblock ~ ~ ~ minecraft:coarse_dirt replace
execute if score VarKugelG.3Radius PZKugelG.3Hor matches 0 if block ~ ~ ~ minecraft:air run setblock ~ ~ ~ minecraft:coarse_dirt replace

# Die Funktion ruft sich selbst auf, wenn der Radius noch nicht bei null angeleangt ist. Dabei wird in Blickrichtung um einen Meter nach vorne der Aufruf getätigt.
execute if score VarKugelG.3Radius PZKugelG.3Hor matches 1.. positioned ^ ^ ^1 run function kugelgenerator:v3kugel_radius

Variante 3: Stopp-Funktion
Die Stopp-Funktion löscht die Punktestand-Ziele wieder und ersetzt am Platz der Kugeln die Blöcke durch Luft. Rüstungsständer als Gegenstand, als Drop oder Objekt werden entfernt.

Editor Icon kugelgenerator:v3stopp.mcfunction
# Die beiden Punktestand-Ziele werden entfernt.
scoreboard objectives remove PZKugelG.3Hor
scoreboard objectives remove PZKugelG.3Vert

# Die größte Kugel hat einen Radius von 23 Metern , deshalb wird bei der Stelle jeder Kugel dieser Bereich durch Luft ersetzt.
execute at @e[type=minecraft:armor_stand,tag=EtiKugelG.3Mittelpunkt] run fill ~-23 ~-23 ~-23 ~ ~23 ~ minecraft:air replace minecraft:coarse_dirt
execute at @e[type=minecraft:armor_stand,tag=EtiKugelG.3Mittelpunkt] run fill ~ ~-23 ~ ~23 ~23 ~23 minecraft:air replace minecraft:coarse_dirt
execute at @e[type=minecraft:armor_stand,tag=EtiKugelG.3Mittelpunkt] run fill ~-23 ~-23 ~23 ~ ~23 ~ minecraft:air replace minecraft:coarse_dirt
execute at @e[type=minecraft:armor_stand,tag=EtiKugelG.3Mittelpunkt] run fill ~ ~-23 ~ ~23 ~23 ~-23 minecraft:air replace minecraft:coarse_dirt

# Die Rüstungsständer als Gegenstand im Inventar, als Drop in der Welt oder als Objekt werden entfernt.
clear @a[distance=..25] minecraft:armor_stand{kugelgenerator:"v3gegenstand"}
tag @e[type=minecraft:item,nbt={Item:{tag:{kugelgenerator:"v3gegenstand"} } }] add EtiKugelG.3Alle
kill @e[tag=EtiKugelG.3Alle]
Advertisement