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

Ein Sammel-System wird dazu benutzt, beliebige Drops in einem großräumigen Bereich zu verteilen, sodass eine Schar von Spieler diese finden müssen. Dabei werden die Drops von den Spielern nicht aufgesammelt, sondern ein eigener Zähler jedes Spielers wird hochgezählt. Die Schwierigkeit für die Realisierung bei solch einem System liegt in der Anzahl der zu suchenden Gegenstände. Ist deren Anzahl fest vorgegeben, lässt sich das problemlos für jeden Drop festlegen. Soll die Anzahl aber variabel sein, so muss man deutlich mehr Aufwand betreiben.

Variante 1[]

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

Dieses Sammel-System ist genau für neun Sammel-Eier ausgerichtet die man finden muss. Die Eier werden in einem bestimmten Bereich an der Oberfläche verteilt und alle Spieler können diese suchen und finden. Wenn man ein Ei gefunden hat, erhält man eine Meldung, jedoch nicht wenn man es schon gefunden hatte. Wenn ein Spieler alle Eier gefunden hat, so erhalten alle Spieler eine Nachricht.

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 für das Zählen der Eier. Es werden neuen Eier gespawnt und zufällig in einem Bereich verteilt.

Editor Icon sammel-system:v1start.mcfunction
# Zwei Punktestand-Ziele für die Anzahl der Sammel-Eier und den Vergleich zur Anzahl vor einem Tick werden erstellt.
scoreboard objectives add PZSamS.1Eier dummy ["Sammel-System.1: ",{"text":"Eier-Nummer","bold":true}]
scoreboard objectives add PZSamS.1Vergl dummy ["Sammel-System.1: ",{"text":"Vergleich vor einem Tick","bold":true}]

# Eine Barriere als Drop wird erzeugt, die nach einem Tick verschwindet. Auf ihr sitzen neun Spawn-Eier, die als Sammel-Eier verwendet werden. Von der Position der Barriere, wird der spreadplayers-Befehl ausgeführt, der die neun Eier in einem großen Bereich verteilt.
summon minecraft:item ~2 ~ ~ {Item:{id:"minecraft:barrier",Count:1b},Age:6000s,Tags:["EtiSamS.1Alle","EtiSamS.1Start"],Passengers:[{id:"minecraft:item",Age:-32768s,PickupDelay:32767s,CustomNameVisible:true,CustomName:'{"text":"Sammel-Ei","bold":true}',Tags:["EtiSamS.1Alle","EtiSamS.1Ei1"],Item:{id:"minecraft:creeper_spawn_egg",Count:1b} },{id:"minecraft:item",Age:-32768s,PickupDelay:32767s,CustomNameVisible:true,CustomName:'{"text":"Sammel-Ei","bold":true}',Tags:["EtiSamS.1Alle","EtiSamS.1Ei2"],Item:{id:"minecraft:zombie_spawn_egg",Count:1b} },{id:"minecraft:item",Age:-32768s,PickupDelay:32767s,CustomNameVisible:true,CustomName:'{"text":"Sammel-Ei","bold":true}',Tags:["EtiSamS.1Alle","EtiSamS.1Ei3"],Item:{id:"minecraft:skeleton_spawn_egg",Count:1b} },{id:"minecraft:item",Age:-32768s,PickupDelay:32767s,CustomNameVisible:true,CustomName:'{"text":"Sammel-Ei","bold":true}',Tags:["EtiSamS.1Alle","EtiSamS.1Ei4"],Item:{id:"minecraft:witch_spawn_egg",Count:1b} },{id:"minecraft:item",Age:-32768s,PickupDelay:32767s,CustomNameVisible:true,CustomName:'{"text":"Sammel-Ei","bold":true}',Tags:["EtiSamS.1Alle","EtiSamS.1Ei5"],Item:{id:"minecraft:sheep_spawn_egg",Count:1b} },{id:"minecraft:item",Age:-32768s,PickupDelay:32767s,CustomNameVisible:true,CustomName:'{"text":"Sammel-Ei","bold":true}',Tags:["EtiSamS.1Alle","EtiSamS.1Ei6"],Item:{id:"minecraft:mooshroom_spawn_egg",Count:1b} },{id:"minecraft:item",Age:-32768s,PickupDelay:32767s,CustomNameVisible:true,CustomName:'{"text":"Sammel-Ei","bold":true}',Tags:["EtiSamS.1Alle","EtiSamS.1Ei7"],Item:{id:"minecraft:rabbit_spawn_egg",Count:1b} },{id:"minecraft:item",Age:-32768s,PickupDelay:32767s,CustomNameVisible:true,CustomName:'{"text":"Sammel-Ei","bold":true}',Tags:["EtiSamS.1Alle","EtiSamS.1Ei8"],Item:{id:"minecraft:silverfish_spawn_egg",Count:1b} },{id:"minecraft:item",Age:-32768s,PickupDelay:32767s,CustomNameVisible:true,CustomName:'{"text":"Sammel-Ei","bold":true}',Tags:["EtiSamS.1Alle","EtiSamS.1Ei9"],Item:{id:"minecraft:guardian_spawn_egg",Count:1b} } ] }
execute at @e[type=minecraft:item,tag=EtiSamS.1Start] run spreadplayers ~ ~ 5 10 false @e[type=minecraft:item,tag=EtiSamS.1Alle]

# Die Anzahl der Sammel-Eier wird ermittelt und in den Punktestand für die Anzahl gespeichert.
execute store result score #VarSamS.1Anzahl PZSamS.1Eier if entity @e[type=minecraft:item,tag=EtiSamS.1Alle,tag=!EtiSamS.1Start]

Variante 1: Zyklus-Funktion
Die Zyklus-Funktion prüft ob der Spieler bei einem Ei sich aufhält und zählt seine gefundenen Eier hoch. Wenn er alle Eier gefunden hat, bekommt jeder eine Meldung darüber.

Editor Icon sammel-system:v1zyklus.mcfunction
# An der Position der Sammel-Eier wird geschaut, ob ein Spieler in einem Umkreis von zwei Metern vorhanden ist, wenn er sich dort aufhält, wird sein Wert gefundenen Eier in einen Vergleichswert kopiert.
execute at @e[type=minecraft:item,tag=EtiSamS.1Alle] as @a[distance=..2,tag=!EtiSamS.1MaxEierGefunden] run scoreboard players operation @s PZSamS.1Vergl = @s PZSamS.1Eier

# Wenn der Spieler in die Nähe eines Sammel-Eis gekommen ist und noch nicht für dieses Ei das entsprechende Etikett besitzt, wird ihm seine Anzahl der gefundenen Eier um eins erhöht und er erhält das Etikett für dieses bestimmte Ei.
execute at @e[type=minecraft:item,tag=EtiSamS.1Ei1] run scoreboard players add @p[distance=..2,tag=!EtiSamS.1Ei1] PZSamS.1Eier 1
execute at @e[type=minecraft:item,tag=EtiSamS.1Ei1] run tag @p[distance=..2,tag=!EtiSamS.1Ei1] add EtiSamS.1Ei1
execute at @e[type=minecraft:item,tag=EtiSamS.1Ei2] run scoreboard players add @p[distance=..2,tag=!EtiSamS.1Ei2] PZSamS.1Eier 1
execute at @e[type=minecraft:item,tag=EtiSamS.1Ei2] run tag @p[distance=..2,tag=!EtiSamS.1Ei2] add EtiSamS.1Ei2
execute at @e[type=minecraft:item,tag=EtiSamS.1Ei3] run scoreboard players add @p[distance=..2,tag=!EtiSamS.1Ei3] PZSamS.1Eier 1
execute at @e[type=minecraft:item,tag=EtiSamS.1Ei3] run tag @p[distance=..2,tag=!EtiSamS.1Ei3] add EtiSamS.1Ei3
execute at @e[type=minecraft:item,tag=EtiSamS.1Ei4] run scoreboard players add @p[distance=..2,tag=!EtiSamS.1Ei4] PZSamS.1Eier 1
execute at @e[type=minecraft:item,tag=EtiSamS.1Ei4] run tag @p[distance=..2,tag=!EtiSamS.1Ei4] add EtiSamS.1Ei4
execute at @e[type=minecraft:item,tag=EtiSamS.1Ei5] run scoreboard players add @p[distance=..2,tag=!EtiSamS.1Ei5] PZSamS.1Eier 1
execute at @e[type=minecraft:item,tag=EtiSamS.1Ei5] run tag @p[distance=..2,tag=!EtiSamS.1Ei5] add EtiSamS.1Ei5
execute at @e[type=minecraft:item,tag=EtiSamS.1Ei6] run scoreboard players add @p[distance=..2,tag=!EtiSamS.1Ei6] PZSamS.1Eier 1
execute at @e[type=minecraft:item,tag=EtiSamS.1Ei6] run tag @p[distance=..2,tag=!EtiSamS.1Ei6] add EtiSamS.1Ei6
execute at @e[type=minecraft:item,tag=EtiSamS.1Ei7] run scoreboard players add @p[distance=..2,tag=!EtiSamS.1Ei7] PZSamS.1Eier 1
execute at @e[type=minecraft:item,tag=EtiSamS.1Ei7] run tag @p[distance=..2,tag=!EtiSamS.1Ei7] add EtiSamS.1Ei7
execute at @e[type=minecraft:item,tag=EtiSamS.1Ei8] run scoreboard players add @p[distance=..2,tag=!EtiSamS.1Ei8] PZSamS.1Eier 1
execute at @e[type=minecraft:item,tag=EtiSamS.1Ei8] run tag @p[distance=..2,tag=!EtiSamS.1Ei8] add EtiSamS.1Ei8
execute at @e[type=minecraft:item,tag=EtiSamS.1Ei9] run scoreboard players add @p[distance=..2,tag=!EtiSamS.1Ei9] PZSamS.1Eier 1
execute at @e[type=minecraft:item,tag=EtiSamS.1Ei9] run tag @p[distance=..2,tag=!EtiSamS.1Ei9] add EtiSamS.1Ei9

# Falls der Vergleichswert kleiner ist als die aktuelle Anzahl von Eiern die er gefunden hat, so muss der Spieler das Ei in diesem Tick gefunden haben. So erhält er dann die Nachricht für das gefundene Ei.
execute as @a[distance=..150,tag=!EtiSamS.1MaxEierGefunden] if score @s PZSamS.1Eier > @s PZSamS.1Vergl if score @s PZSamS.1Eier < #VarSamS.1Anzahl PZSamS.1Eier run tellraw @s ["Sammel-System.1:\n",{"text":"Du hast dein ","bold":true},{"score":{"name":"@s","objective":"PZSamS.1Eier"},"color":"dark_purple","bold":true},{"text":"."},{"text":" Sammel-Ei gefunden","bold":true} ]

# Wenn der Spieler alle Eier gefunden hat, ist sein Wert gleich dem der Anzahl der Eier (zur Sicherheit wird größer gleich verwendet) und dann bekommen alle Spieler die auch die Sammel-Eier sammeln die Nachricht, dass der Spieler alle Eier gefunden hat. Damit die Nachricht nur einmal ausgegeben wird, erhält er danach ein Etikett.
execute as @a[tag=!EtiSamS.1MaxEierGefunden] if score @s PZSamS.1Eier >= #VarSamS.1Anzahl PZSamS.1Eier at @s run tellraw @a[scores={PZSamS.1Eier=0..}] ["Sammel-System.1:\n",{"text":"Der Spieler ","bold":true,"color":"green"},{"selector":"@s"},{"text":" hat alle ","bold":true,"color":"green"},{"score":{"name":"#VarSamS.1Anzahl","objective":"PZSamS.1Eier"},"color":"dark_purple","bold":true},{"text":" Sammel-Eier gefunden!","bold":true,"color":"green"} ]
execute as @a[tag=!EtiSamS.1MaxEierGefunden] if score @s PZSamS.1Eier >= #VarSamS.1Anzahl PZSamS.1Eier run tag @s add EtiSamS.1MaxEierGefunden

Variante 1: Stopp-Funktion
Die Stopp-Funktion löscht die Punktestand-Ziele wieder und alle Etiketten die der Spieler erhalten hatte, sowie die Sammel-Eier.

Editor Icon sammel-system:v1stopp.mcfunction
# Die beiden Punktestand-Ziele werden wieder entfernt.
scoreboard objectives remove PZSamS.1Eier
scoreboard objectives remove PZSamS.1Vergl

# Alle Etiketten, die der Spieler im Laufe des Sammelns bekommen hat, werden entfernt.
tag @a[tag=EtiSamS.1MaxEierGefunden] remove EtiSamS.1MaxEierGefunden
tag @a[tag=EtiSamS.1Ei1] remove EtiSamS.1Ei1
tag @a[tag=EtiSamS.1Ei2] remove EtiSamS.1Ei2
tag @a[tag=EtiSamS.1Ei3] remove EtiSamS.1Ei3
tag @a[tag=EtiSamS.1Ei4] remove EtiSamS.1Ei4
tag @a[tag=EtiSamS.1Ei5] remove EtiSamS.1Ei5
tag @a[tag=EtiSamS.1Ei6] remove EtiSamS.1Ei6
tag @a[tag=EtiSamS.1Ei7] remove EtiSamS.1Ei7
tag @a[tag=EtiSamS.1Ei8] remove EtiSamS.1Ei8
tag @a[tag=EtiSamS.1Ei9] remove EtiSamS.1Ei9

# Alle Sammel-Eier werden entfernt. Sie werden durch das Etikett ausfindig gemacht.
kill @e[tag=EtiSamS.1Alle]

Variante 2[]

Sammel-System (Befehle) Bild 2.1 Sammel-System (Befehle) Bild 2.2 Sammel-System (Befehle) Bild 2.3

Mit dieser Variante lassen sich abzählbar unendlich viele Gegenstände verstecken (in der Theorie, denn maximal sind „nur“ 2147483647 möglich). Man kann in der Anfangsphase so viele Spawn-Eier verstecken wie es einem beliebt, wenn man dann mit der Anzahl zufrieden ist, kann die Suche losgehen. Wenn man ein Spawn-Ei aufsammelt, bekommt man mitgeteilt um das wie vielte Ei es sich dabei handelt, welches man aufgesammelt hat, läuft man dagegen zu einem Sammel-Ei was man längst hat, wird einem auch das mitgeteilt. Wenn am Ende ein Spieler alle Eier gefunden hat, so wird dies allen Spieler mitgeteilt.

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 mehrere Punktestand-Ziele für das Zählen der Eier und gibt den Spielern neun Sammel-Eier die sie selbst verteilen können.

Editor Icon sammel-system:v2start.mcfunction
# Drei Punktestand-Ziele für das Droppen, für die Sammel-Ei-Nummer und für die Ei-Anzahl werden erstellt.
scoreboard objectives add PZSamS.2Wurf minecraft.custom:minecraft.drop ["Sammel-System.2: ",{"text":"Wurf eines Drops","bold":true}]
scoreboard objectives add PZSamS.2Nr dummy ["Sammel-System.2: ",{"text":"Eier-Nummer","bold":true}]
scoreboard objectives add PZSamS.2Anz dummy ["Sammel-System.2: ",{"text":"Eier-Anzahl","bold":true}]

# An der Position aller Spieler im Umkreis von 25 Metern werden neun verschiedene Spawn-Eier als Drop erzeugt. Diese nimmt der Spieler sofort auf.
execute at @a[distance=..25] run summon minecraft:item ~ ~ ~ {Tags:["EtiSamS.2Alle"],Item:{id:"minecraft:creeper_spawn_egg",Count:64b,tag:{sammel-system:"v2gegenstand",EntityTag:{DeathLootTable:"minecraft:empty",Tags:["EtiSamS.2Alle","EtiSamS.2KeinSammelEi"]},display:{Name:'{"text":"Sammel-Ei","bold":true}',Lore:['"Droppe mit Q das Sammel-Ei"']} } },Passengers:[{id:"minecraft:item",Tags:["EtiSamS.2Alle","EtiSamS.2SammelEi"],Item:{id:"minecraft:zombie_spawn_egg",Count:64b,tag:{sammel-system:"v2gegenstand",EntityTag:{DeathLootTable:"minecraft:empty",Tags:["EtiSamS.2Alle","EtiSamS.2KeinSammelEi"]},display:{Name:'{"text":"Sammel-Ei","bold":true}',Lore:['"Droppe mit Q das Sammel-Ei"']} } } },{id:"minecraft:item",Tags:["EtiSamS.2Alle","EtiSamS.2SammelEi"],Item:{id:"minecraft:skeleton_spawn_egg",Count:64b,tag:{sammel-system:"v2gegenstand",EntityTag:{DeathLootTable:"minecraft:empty",Tags:["EtiSamS.2Alle","EtiSamS.2KeinSammelEi"]},display:{Name:'{"text":"Sammel-Ei","bold":true}',Lore:['"Droppe mit Q das Sammel-Ei"']} } } },{id:"minecraft:item",Tags:["EtiSamS.2Alle","EtiSamS.2SammelEi"],Item:{id:"minecraft:witch_spawn_egg",Count:64b,tag:{sammel-system:"v2gegenstand",EntityTag:{DeathLootTable:"minecraft:empty",Tags:["EtiSamS.2Alle","EtiSamS.2KeinSammelEi"]},display:{Name:'{"text":"Sammel-Ei","bold":true}',Lore:['"Droppe mit Q das Sammel-Ei"']} } } },{id:"minecraft:item",Tags:["EtiSamS.2Alle","EtiSamS.2SammelEi"],Item:{id:"minecraft:sheep_spawn_egg",Count:64b,tag:{sammel-system:"v2gegenstand",EntityTag:{DeathLootTable:"minecraft:empty",Tags:["EtiSamS.2Alle","EtiSamS.2KeinSammelEi"]},display:{Name:'{"text":"Sammel-Ei","bold":true}',Lore:['"Droppe mit Q das Sammel-Ei"']} } } },{id:"minecraft:item",Tags:["EtiSamS.2Alle","EtiSamS.2SammelEi"],Item:{id:"minecraft:mooshroom_spawn_egg",Count:64b,tag:{sammel-system:"v2gegenstand",EntityTag:{DeathLootTable:"minecraft:empty",Tags:["EtiSamS.2Alle","EtiSamS.2KeinSammelEi"]},display:{Name:'{"text":"Sammel-Ei","bold":true}',Lore:['"Droppe mit Q das Sammel-Ei"']} } } },{id:"minecraft:item",Tags:["EtiSamS.2Alle","EtiSamS.2SammelEi"],Item:{id:"minecraft:rabbit_spawn_egg",Count:64b,tag:{sammel-system:"v2gegenstand",EntityTag:{DeathLootTable:"minecraft:empty",Tags:["EtiSamS.2Alle","EtiSamS.2KeinSammelEi"]},display:{Name:'{"text":"Sammel-Ei","bold":true}',Lore:['"Droppe mit Q das Sammel-Ei"']} } } },{id:"minecraft:item",Tags:["EtiSamS.2Alle","EtiSamS.2SammelEi"],Item:{id:"minecraft:silverfish_spawn_egg",Count:64b,tag:{sammel-system:"v2gegenstand",EntityTag:{DeathLootTable:"minecraft:empty",Tags:["EtiSamS.2Alle","EtiSamS.2KeinSammelEi"]},display:{Name:'{"text":"Sammel-Ei","bold":true}',Lore:['"Droppe mit Q das Sammel-Ei"']} } } },{id:"minecraft:item",Tags:["EtiSamS.2Alle","EtiSamS.2SammelEi"],Item:{id:"minecraft:guardian_spawn_egg",Count:64b,tag:{sammel-system:"v2gegenstand",EntityTag:{DeathLootTable:"minecraft:empty",Tags:["EtiSamS.2Alle","EtiSamS.2KeinSammelEi"]},display:{Name:'{"text":"Sammel-Ei","bold":true}',Lore:['"Droppe mit Q das Sammel-Ei"']} } } } ] }

Variante 2: Zyklus-Funktion
Die Zyklus-Funktion prüft ob Sammel-Eier korrekt platziert wurden, lässt die Sammel-Eier die der Spieler sammelt zählen und ruft die Erstellen-Funktion für das Platzieren der Sammel-Eier auf, sowie die Sammeln-Funktion für das Sammeln der Eier.

Editor Icon sammel-system:v2zyklus.mcfunction
# Falls der Spieler die Spawn-Eier nicht gedroppt hat, sondern mit einem Rechtsklick die Kreatur erzeugt, wird ihm die Nachricht ausgegeben und die Kreatur wird entfernt.
execute at @e[tag=EtiSamS.2KeinSammelEi] run tellraw @a[distance=..5] ["Sammel-System.2: ",{"text":"Droppe die Sammel-Eier mit der Taste Q!","bold":true}]
kill @e[tag=EtiSamS.2KeinSammelEi]

# Wenn der Spieler ein Spawn-Ei droppt, sich aber ein Ei bereits in seiner unmittelbaren Nähe befindet, wird ihm ein Etikett gegeben um dann von ihm aus das geworfene Spawn-Ei zu entfernen. Er erhält daraufhin die Daten, wie viele Spieler bisher das Sammel-Ei gefunden haben.
execute as @a[scores={PZSamS.2Wurf=1..}] at @s if entity @e[distance=..2,type=minecraft:item,tag=EtiSamS.2SammelEi,sort=nearest,limit=1] run tag @s add EtiSamS.2SammelEiZuNah
execute at @a[tag=EtiSamS.2SammelEiZuNah,scores={PZSamS.2Wurf=1..}] if entity @e[distance=..2,type=minecraft:item,tag=EtiSamS.2SammelEi,sort=nearest,limit=1] run kill @e[distance=..2,type=minecraft:item,tag=!EtiSamS.2SammelEi,sort=nearest,limit=1]
execute as @a[tag=EtiSamS.2SammelEiZuNah,scores={PZSamS.2Wurf=1..}] at @s if entity @e[type=minecraft:item,tag=EtiSamS.2SammelEi,distance=..2,sort=nearest,limit=1] run tellraw @s ["Sammel-System.2:\n",{"text":"Dieses Sammel-Ei wurde von ","bold":true,"color":"yellow"},{"score":{"name":"@e[type=minecraft:item,tag=EtiSamS.2EiNummer,distance=..2,sort=nearest,limit=1]","objective":"PZSamS.2Anz"},"color":"dark_purple","bold":true},{"text":" Spielern entdeckt","bold":true,"color":"yellow"} ]

# Wenn der Spieler nicht zu nah bei einem Sammel-Ei war, wird von ihm aus die Erstellen-Funktion aufgerufen. Danach wird das Etikett, falls er es hat wieder entfernt und sein Wert für das Werfen von Drops wird auf null zurück gesetzt.
execute as @a[tag=!EtiSamS.2SammelEiZuNah,scores={PZSamS.2Wurf=1..}] at @s run function sammel-system:v2erstellen
tag @a[tag=EtiSamS.2SammelEiZuNah,scores={PZSamS.2Wurf=1..}] remove EtiSamS.2SammelEiZuNah
scoreboard players set @a[scores={PZSamS.2Wurf=1..}] PZSamS.2Wurf 0

# Jeder Spieler erhält eine Nummer, wenn er noch keine besitzt und anschließend ein Etikett.
execute as @p[tag=!EtiSamS.2Nummer] store result score @s PZSamS.2Nr run scoreboard players add #VarSamS.2SpielerNummer PZSamS.2Nr 1
tag @p[tag=!EtiSamS.2Nummer] add EtiSamS.2Nummer

# Wenn in der Nähe des Sammel-Eis ein Spieler ist, wird die Sammeln-Funktion aufgerufen.
execute as @e[type=minecraft:item,tag=EtiSamS.2SammelEi] at @s if entity @p[distance=..2] run function sammel-system:v2sammeln

# Wenn in der Nähe eines Sammel-Eis ein Spieler ist, der noch nicht das Etikett für alle Eier besitzt, sich aufhält, aber die maximale Anzahl besitzt, so erhalten alle Spieler die ebenfalls die Eier Sammeln die Nachricht, dass dieser Spieler alle Eier eingesammelt hat. Anschließend erhält er ein Etikett.
execute at @e[type=minecraft:item,tag=EtiSamS.2SammelEi] as @p[distance=..2,tag=!EtiSamS.2MaxEierGefunden] if score @s PZSamS.2Anz = #VarSamS.2Max PZSamS.2Anz run tellraw @a[scores={PZSamS.2Anz=0..}] ["Sammel-System.2:\n",{"text":"Der Spieler ","bold":true},{"selector":"@s"},{"text":" hat alle ","bold":true},{"score":{"name":"#VarSamS.2Max","objective":"PZSamS.2Anz"},"color":"dark_purple","bold":true},{"text":" Sammel-Eier gefunden!","bold":true} ]
execute at @e[type=minecraft:item,tag=EtiSamS.2SammelEi] as @p[distance=..2,tag=!EtiSamS.2MaxEierGefunden] if score @s PZSamS.2Anz = #VarSamS.2Max PZSamS.2Anz run tag @s add EtiSamS.2MaxEierGefunden

# Das durch die Sammeln-Funktion vergebene Etikett wird wieder entfernt, wenn der Spieler nicht mehr beim Ei ist.
execute as @a[tag=EtiSamS.2BeimEi] at @s unless entity @e[distance=..2,type=minecraft:item,tag=EtiSamS.2SammelEi] run tag @s remove EtiSamS.2BeimEi

Variante 2: Erstellen-Funktion
Die Erstellen-Funktion wird aufgerufen, wenn ein Spieler ein Sammel-Ei geworfen hat. Dann wird das Ei eingestellt und ist bereit eingesammelt zu werden.

Editor Icon sammel-system:v2erstellen.mcfunction
# Das geworfene Spawn-Ei vor dem Spieler wird in den Objektdaten so geändert, dass es den Namen anzeigt und nicht verschwindet.
data merge entity @e[distance=..2,type=minecraft:item,nbt={Item:{tag:{sammel-system:"v2gegenstand"} } },sort=nearest,limit=1] {CustomNameVisible:true,CustomName:'{"text":"Sammel-Ei","bold":true}',Tags:["EtiSamS.2Alle","EtiSamS.2SammelEi"],Age:-32768s,PickupDelay:32767s}

# Damit der Spieler nicht das Ei direkt als eingesammelt markiert bekommt, erhält er das Etikett.
tag @s[tag=!EtiSamS.2BeimEi] add EtiSamS.2BeimEi

# Das Sammel-Ei bekommt anschließend eine Nummer, damit man es von den anderen unterscheiden kann.
execute as @e[distance=..2,type=minecraft:item,tag=EtiSamS.2SammelEi,tag=!EtiSamS.2EiNummer,sort=nearest,limit=1] store result score @s PZSamS.2Nr run scoreboard players add #VarSamS.2Max PZSamS.2Anz 1
tag @e[type=minecraft:item,tag=EtiSamS.2SammelEi,tag=!EtiSamS.2EiNummer] add EtiSamS.2EiNummer

# Falls bereits Spieler alle bisherigen Eier gefunden haben, wird ihnen das Etikett wieder entfernt, da jetzt ein weiteres Ei zu finden ist.
tag @a[tag=EtiSamS.2MaxEierGefunden] remove EtiSamS.2MaxEierGefunden

Variante 2: Sammeln-Funktion
Die Sammeln-Funktion erstellt für jeden Spieler der bei einem Sammel-Ei gewesen ist eine Partikelwolke. Diese wird benutzt um die Spielernummer zu speichern und um zu erkennen ob ein Spieler bereits dieses Sammel-Ei gefunden hat. Je nach dem ob er es gefunden hat oder ein bereits aufgesammeltes Ei, so erhält er die entsprechende Meldung in der Schnellzugriffsleiste angezeigt.

Editor Icon sammel-system:v2sammeln.mcfunction
# Wenn der Spieler beim einem Sammel-Ei ist, bei dem noch keine Partikelwolke existiert, die seine Nummer speichert, wenn er es gesammelt hat, so muss dieses Ei ein neues für ihn sein und er bekommt dazu ein Etikett. Falls Partikelwolken vorhanden waren, aber eine davon seine Nummer nicht besitzt, erhält er ebenfalls das Etikett und anschließend wird ihm das Etikett wieder entfernt falls eine dabei war die die gleiche Nummer hat. Wenn er das Ei nicht hatte, wird seine Ei-Anzahl um eins erhöht.
execute as @p[distance=..2,tag=!EtiSamS.2BeimEi] unless entity @e[distance=..1,type=minecraft:area_effect_cloud,tag=EtiSamS.2SpielerNummer] run tag @s add EtiSamS.2NeuesEi
execute as @p[distance=..2,tag=!EtiSamS.2BeimEi,tag=!EtiSamS.2NeuesEi] unless score @s PZSamS.2Nr = @e[distance=..1,type=minecraft:area_effect_cloud,tag=EtiSamS.2SpielerNummer,sort=nearest,limit=1] PZSamS.2Nr run tag @s add EtiSamS.2NeuesEi
execute as @p[distance=..2,tag=!EtiSamS.2BeimEi,tag=!EtiSamS.2NeuesEi] if score @s PZSamS.2Nr = @e[distance=..1,type=minecraft:area_effect_cloud,tag=EtiSamS.2SpielerNummer,sort=nearest,limit=1] PZSamS.2Nr run tag @s remove EtiSamS.2NeuesEi
scoreboard players add @p[distance=..2,tag=!EtiSamS.2BeimEi,tag=EtiSamS.2NeuesEi] PZSamS.2Anz 1

# Wenn das Ei neu war, erhält er eine Nachricht, dass er das Ei aufgesammelt hat, ansonsten wird ihm eine Fehlermeldung ausgegeben.
execute as @p[distance=..2,tag=!EtiSamS.2BeimEi,tag=EtiSamS.2NeuesEi] run title @s actionbar ["",{"text":"Das ist dein ","bold":true,"color":"green"},{"score":{"name":"@s","objective":"PZSamS.2Anz"},"color":"dark_purple","bold":true},{"text":"."},{"text":" Sammel-Ei!","bold":true,"color":"green"} ]
title @p[distance=..2,tag=!EtiSamS.2BeimEi,tag=!EtiSamS.2NeuesEi] actionbar ["",{"text":"Du hast dieses Sammel-Ei bereits aufgehoben","bold":true,"color":"dark_red"}]

# Wenn das Ei neu war, wird für diesen Spieler eine Partikelwolke erzeugt und die Anzahl der Spieler die dieses Sammel-Ei gefunden haben, wird um eins erhöht.
execute if entity @p[distance=..2,tag=!EtiSamS.2BeimEi,tag=EtiSamS.2NeuesEi] run summon minecraft:area_effect_cloud ~ ~ ~ {Duration:-1,Age:-2147483648,WaitTime:-2147483648,Particle:"minecraft:block minecraft:air",Tags:["EtiSamS.2Alle"]}
execute if entity @p[distance=..2,tag=!EtiSamS.2BeimEi,tag=EtiSamS.2NeuesEi] run scoreboard players add @s PZSamS.2Anz 1

# Die neue Partikelwolke erhält die Nummer des Spielers der das Sammel-Ei gefunden hat und der Spieler bekommt das Etikett für das neue Ei entfernt.
execute as @p[distance=..2,tag=!EtiSamS.2BeimEi,tag=EtiSamS.2NeuesEi] run scoreboard players operation @e[distance=..1,type=minecraft:area_effect_cloud,tag=EtiSamS.2Alle,tag=!EtiSamS.2SpielerNummer] PZSamS.2Nr = @s PZSamS.2Nr
execute as @p[distance=..2,tag=!EtiSamS.2BeimEi,tag=EtiSamS.2NeuesEi] run tag @e[distance=..1,type=minecraft:area_effect_cloud,tag=EtiSamS.2Alle,tag=!EtiSamS.2SpielerNummer] add EtiSamS.2SpielerNummer
tag @p[distance=..2,tag=EtiSamS.2NeuesEi] remove EtiSamS.2NeuesEi

# Damit die Sammeln-Funktion nicht ständig dem Spieler die Nachrichten für das Sammeln ausgibt, erhält der Spieler ein Etikett.
tag @p[distance=..2,tag=!EtiSamS.2BeimEi] add EtiSamS.2BeimEi

Variante 2: Stopp-Funktion
Die Stopp-Funktion löscht die Punktestand-Ziele wieder und alle Etiketten die der Spieler bekommen hat. Ebenfalls werden alle Spawn-Eier wieder aus dem Inventar entfernt und auch die, die auf dem Boden liegen.

Editor Icon sammel-system:v2stopp.mcfunction
# Die drei Punktestand-Ziele werden entfernt
scoreboard objectives remove PZSamS.2Wurf
scoreboard objectives remove PZSamS.2Nr
scoreboard objectives remove PZSamS.2Anz

# Alle Etiketten die im Laufe der Sammel-Aktion verteilt wurden, werden entfernt
tag @a[tag=EtiSamS.2Nummer] remove EtiSamS.2Nummer
tag @a[tag=EtiSamS.2SammelEiZuNah] remove EtiSamS.2SammelEiZuNah
tag @a[tag=EtiSamS.2MaxEierGefunden] remove EtiSamS.2MaxEierGefunden
tag @a[tag=EtiSamS.2BeimEi] remove EtiSamS.2BeimEi
tag @a[tag=EtiSamS.2NeuesEi] remove EtiSamS.2NeuesEi

# Alle Spawn-Eier werden aus dem Inventar gelöscht.
clear @a minecraft:creeper_spawn_egg{sammel-system:"v2gegenstand"}
clear @a minecraft:zombie_spawn_egg{sammel-system:"v2gegenstand"}
clear @a minecraft:skeleton_spawn_egg{sammel-system:"v2gegenstand"}
clear @a minecraft:witch_spawn_egg{sammel-system:"v2gegenstand"}
clear @a minecraft:sheep_spawn_egg{sammel-system:"v2gegenstand"}
clear @a minecraft:mooshroom_spawn_egg{sammel-system:"v2gegenstand"}
clear @a minecraft:rabbit_spawn_egg{sammel-system:"v2gegenstand"}
clear @a minecraft:silverfish_spawn_egg{sammel-system:"v2gegenstand"}
clear @a minecraft:guardian_spawn_egg{sammel-system:"v2gegenstand"}
clear @a minecraft:creeper_spawn_egg{sammel-system:"v2gegenstand"}

# Alle Sammel-Aier auf dem Boden werden entfernt.
kill @e[tag=EtiSamS.2Alle]
Advertisement