Das offizielle Minecraft Wiki twittert hier: Wiki-Twitter  –  Chatte im Wiki-Discord  – Noch keinen Server gefunden? Es gibt einen Wiki-Server

Zonen-System (Befehle)

Aus Technik Wiki
Wechseln zu: Navigation, Suche
Gruppe: Grid Ketten-Befehlsblock.png
Systeme

Grid Roter Sand blass.png mit Mechaniken

Grid Redstone blass.png mit Redstone
                Hier:
Grid Befehlsblock.png mit Befehlen

Die vorgestellte Technik kann in der Mechanik-Welt angesehen werden.

Ein Zonen-System ermöglicht es, dem Spieler eigene Zonen anzulegen, die dann anderen Spielern zeigen, das hier schon jemand am werkeln ist. Spieler denen die Zone nicht gehört, werden dann in den Abenteuermodus gesetzt, damit sie nichts abbauen können. Bei manchen Systemen wird auch dafür gesorgt, dass der Zutritt nur für die Eigentümer gestattet ist.

Inhaltsverzeichnis

Variante 1[Bearbeiten | Quelltext bearbeiten]

Zonen-System (Befehle) Bild 1.1.png Zonen-System (Befehle) Bild 1.2.png

Dieses Zonen-System bietet den einfachsten Schutz vor Raubbau anderer Spieler. Spieler können mit Hilfe von geworfenen Truhen ihre Zonenpositionen festlegen und haben über eine Zonenoption die Wahl, ob sie die Zone an der Position erstellen, verschieben oder löschen wollen. Die Spieler erhalten nur über ihre eigenen Zonen auch dessen Zonenoptionen. Fremde Zonen können nicht bearbeitet werden.

Einschalten

Um das System zu starten, legt man den Hebel auf dem Wiederhol-Befehlsblock um, der neben einem Befehlsblock liegt.

Wiederholen

Nur wenn der Spieler im Umkreis von 50 Blöcken ist,

Ausschalten

Alle Spieler werden durch den Befehlsblock erfasst.


Befehlsblöcke mit Befehlen:


Variante 1: Start-Funktion
Dabei werden zuerst vier Punktestand-Ziele erstellt.

  • Zeile 2 für die Spielernummer,
  • Zeile 3 für die Zonennummer,
  • Zeile 4 für den Wurf einer Truhe
  • Zeile 5 und für einen Auslöser.
  • Zeile 8 Anschließend wird der Spieler in den Überlebensmodus gesetzt.
  • Zeile 11 Zu guter letzt erhält der Spieler zehn Truhen, die er für das Erstellen der Zonen verwenden kann.


Editor Icon.png technik_wiki:zonen-system/v1start.mcfunction
# Punktestand-Ziele werden erstellt
scoreboard objectives add PZZone.1Nr dummy {"text":"Zonen-System.1: Spielernummer"}
scoreboard objectives add PZZone.1ZonenNr dummy {"text":"Zonen-System.1: Zonennummer"}
scoreboard objectives add PZZone.1Truhe minecraft.dropped:minecraft.chest {"text":"Zonen-System.1: Truhe geworfen"}
scoreboard objectives add PZZone.1Eing trigger {"text":"Zonen-System.1: Zonenoption angeklickt"}

# Der Spielmodus wird auf Überleben gesetzt
gamemode survival @s[gamemode=!survival]

# Gibt dem Spieler die Truhen, mit denen er die Zone erstellen kann
give @s minecraft:chest{display:{Name:"{\"text\":\"Zonen-System.1\"}",Lore:["Wirf die Truhe mit Q","auf den Boden","um die Zonenoptionen","zu erhalten"] } } 10

Variante 1: Zyklus-Funktion
In der Funktion wird geprüft ob der Spieler ein Spielernummern-Etikett besitzt,

Nachdem das Werfen der Truhe abgeschlossen ist und der Spieler eine anklickbare Option verwendet hat,

  • Zeile 8 wird geprüft ob der Spieler einen Punktestand ab eins für den Auslöser hat, also der Option.

Wenn der Spieler eine Option angeklickt hat, wird am Ende sein Punktestand auf null gesetzt und hier schlägt der nächste Befehl aus.

  • Zeile 11 Er prüft von dem Spieler seiner Position aus, ob ein Rüstungsständer im Umkreis von fünf Blöcken die gleiche Nummer hat wie der Spieler selbst. Wenn das der Fall ist, erhält der Spieler die Möglichkeit erneut eine der Optionen anzuklicken, damit man in seiner eigenen Zonen auch nachdem alles erstellt wurde noch die Löschfunktion nutzen kann.
  • Zeile 12 Eine Zeile weiter wird zusätzlich geprüft ob der Spieler die eigene Zone gerade erst betreten hat, dazu wird getestet ob er ein Etikett dafür noch nicht besitzt, wenn das der Fall ist, wird daraufhin die Zonenoptionsfunktion nochmal geladen. Das bewirkt, dass man jedesmal wenn man die eigene Zone betritt diese Optionen angezeigt bekommt.
  • Zeile 15 Damit Spieler die die Zone betreten wissen welche das ist, wird ihnen eine tellraw-Nachricht ausgegeben, in dem zuerst geprüft wird, ob sie die Zone gerade betreten haben und dadurch noch kein entsprechendes Etikett besitzen. Dann wird von dessen Position geprüft ob ein Rüstungsständer, der die Zone darstellt in nächster Nähe im Umkreis von 25 Blöcken sich befindet. Wenn einer gefunden wurde, wird von dessen Position aus ob sich der Spieler in dessen quadratisch ausdehnenden Zone befindet und nur dann erhält der Spieler die Nachricht.
  • Zeile 18 Nun folgt die Abwehr von fremden Spieler. Dazu wird geprüft ob der Spieler sich im Überlebensmodus befindet und die Zone betreten hat. Dann wird wieder der nächstgelegenen Rüstungsständer im Umkreis von 25 Blöcken ausfindig gemacht. Von ihm aus, wird dann geprüft ob der Spieler sich schon auf der Zone befindet und nur dann werden die beiden Punktestände des Spielers und des Rüstungsständers verglichen. Falls es dem Spieler die Zone nicht gehört, wird er in den Abenteuermodus gesetzt.
  • Zeile 19 Wenn man eine beliebige Zone betritt, erhält man nach der Prüfung ein Etikett, um später nicht nochmal angewählt zu werden.
  • Zeile 20 Damit man beim Verlassen der Zone das Etikett wieder entfernt bekommt, wird geprüft ob der Spieler mit Etikett in einem größeren Abstand zur Zone ist,
  • Zeile 23 Wenn zwei Zonen von verschiedenen Spielern dicht an dicht anliegen, würde das Etikett für das Betreten von einer Zone zur nächsten Zone nicht entfernt werden, wodurch nicht erkannt werden würde, das man eine neue Zone betreten hat. Um das feststellen zu können, wird dazu die aktuelle Zonennummer mit der zuletzt betretenen Zone verglichen, wenn sie nicht gleich ist, wird das Etikett entfernt.
  • Zeile 24 Um immer die aktuelle Zonennummer zum vergleich zur Verfügung zu haben, wird aus diesem Grund der Punktestandswert von nächsten Rüstungsständer genommen und in den Zonennummer-Punktestand des eigenen Spielers gespeichert. Vorher wird noch im Befehl dafür gesorgt, dass vom Spieler aus, der nächste Rüstungsständer gefunden wird.
  • Zeile 27 Spieler die außerhalb einer Zone sind besitzen nicht mehr das Etikett "Betreten" und falls sie auf einer fremden Zone waren, befinden sie sich im Abenteuermodus. Genau diese Spieler werden dann wieder in den Überlebensmodus gesetzt.
  • Zeile 30 Als letztes wird noch die Funktion technik_wiki:zonen-system/v1schritt4 aufgerufen, falls sich ein Rüstungständer in der Nähe des Spielers aufhält, der noch keine vollwertige Zone bildet, sondern nur die mögliche Zone markiert. Damit die Schritt-4-Funktion exakt im Zentrum eines Blockes aufgerufen wird, wird die Position des Rüstungsständers achsenzentriert.


Editor Icon.png technik_wiki:zonen-system/v1zyklus.mcfunction
# Falls der Spieler keine Nummer besitzt wird die Funktion dafür geladen
execute if entity @s[tag=!EtiZone.1SpielerNummer] run function technik_wiki:zonen-system/v1schritt1

# Hat der Spieler eine Truhe geworfen, wird die Funktion dafür geladen
execute if entity @s[scores={PZZone.1Truhe=1..}] run function technik_wiki:zonen-system/v1schritt2

# Sobald eine Option angeklickt hat, wird die Funktion dafür gestartet
execute if entity @s[scores={PZZone.1Eing=1..}] run function technik_wiki:zonen-system/v1schritt3

# Immer wenn der Spieler auf seiner eigenen Zone ist, erhält er Rechte für die Zonenoptionen und einmal die Optionsnachricht
execute at @s[scores={PZZone.1Eing=0}] if score @e[distance=..8,sort=nearest,limit=1,type=minecraft:armor_stand,name=Zone] PZZone.1Nr = @s PZZone.1Nr run scoreboard players enable @s PZZone.1Eing
execute at @s[tag=!EtiZone.1Betreten] at @e[distance=..25,sort=nearest,limit=1,type=minecraft:armor_stand,name=Zone,tag=EtiZone.1Zone] positioned ~-7 ~-15 ~-7 if score @e[sort=nearest,limit=1,type=minecraft:armor_stand,name=Zone,tag=EtiZone.1Zone] PZZone.1Nr = @s[dx=15,dy=30,dz=15] PZZone.1Nr run function technik_wiki:zonen-system/v1schritt2

# Spieler die eine Zone betreten erhalten eine Nachricht, auf welchen Grundstück sie gerade sind
execute at @s[tag=!EtiZone.1Betreten] at @e[distance=..25,sort=nearest,limit=1,type=minecraft:armor_stand,name=Zone,tag=EtiZone.1Zone] positioned ~-7 ~-15 ~-7 run tellraw @s[dx=15,dy=30,dz=15] ["Zonen-System.1 ",{"text":"Die Zone mit der Spielernummer ","bold":"true"},{"score":{"name":"@e[sort=nearest,limit=1,type=minecraft:armor_stand,name=Zone,tag=EtiZone.1Alle]","objective":"PZZone.1Nr"},"bold":"true","color":"dark_purple"},{"text":" befindet sich hier. Deine Spielernummer ist die ","bold":"true"},{"score":{"name":"@s","objective":"PZZone.1Nr"},"bold":"true","color":"dark_purple"}]

# Spieler die auf fremden Zonen laufen werden in den Abenteuermodus gesetzt
execute at @s[gamemode=survival,tag=!EtiZone.1Betreten] at @e[distance=..25,sort=nearest,limit=1,type=minecraft:armor_stand,name=Zone,tag=EtiZone.1Zone] positioned ~-7 ~-15 ~-7 unless score @e[sort=nearest,limit=1,type=minecraft:armor_stand,name=Zone,tag=EtiZone.1Zone] PZZone.1Nr = @s[dx=15,dy=30,dz=15] PZZone.1Nr run gamemode adventure @s
execute at @s[tag=!EtiZone.1Betreten] at @e[distance=..25,sort=nearest,limit=1,type=minecraft:armor_stand,name=Zone,tag=EtiZone.1Alle] positioned ~-7 ~-15 ~-7 run tag @s[dx=15,dy=30,dz=15] add EtiZone.1Betreten
execute at @s[tag=EtiZone.1Betreten] at @e[distance=..25,sort=nearest,limit=1,type=minecraft:armor_stand,name=Zone,tag=EtiZone.1Alle] positioned ~-7 ~-15 ~-7 unless entity @s[dx=15,dy=30,dz=15] run tag @s remove EtiZone.1Betreten

# Falls zwei Zonen von verschiedenen Spielern sehr nah beieinander sind, wird dennoch ein Wechsel der Zone erkannt
execute at @s unless score @e[distance=..25,sort=nearest,limit=1,type=minecraft:armor_stand,name=Zone,tag=EtiZone.1Zone] PZZone.1Nr = @s PZZone.1ZonenNr run tag @s remove EtiZone.1Betreten
execute at @s run scoreboard players operation @s PZZone.1ZonenNr = @e[distance=..25,sort=nearest,limit=1,type=minecraft:armor_stand,name=Zone,tag=EtiZone.1Zone] PZZone.1Nr

# Spieler die außerhalb von Zonen laufen werden wieder in den Überlebensmodus gesetzt
gamemode survival @s[gamemode=adventure,tag=!EtiZone.1Betreten]

# Wenn im Radius von 25 Blöcken eine Zone sich noch im Aufbau befindet, wird die Funktion gestartet
execute at @s at @e[distance=..25,sort=nearest,limit=1,type=minecraft:armor_stand,name=Zone,tag=!EtiZone.1Zone] align xz positioned ~0.5 ~ ~0.5 run function technik_wiki:zonen-system/v1schritt4

Variante 1: Schritt-1-Funktion
In dieser Funktion wird, wenn sie aufgerufen wurde,

  • Zeile 2 zuerst eine Variable um eins erhöht
  • Zeile 3 und anschließend wird der Wert der Variable auch dem Spieler zugeteilt.
  • Zeile 4 Damit der Spieler nicht ein zweites mal eine Spielernummer erhält, bekommt er ein Etikett, dass den Aufruf dieser Funktion verhindert.


Editor Icon.png technik_wiki:zonen-system/v1schritt1.mcfunction
# Dem Spieler wird eine Nummer gegeben, falls er noch keine besitzt
scoreboard players add #VarZone.1SpielerNummer PZZone.1Nr 1
scoreboard players operation @s PZZone.1Nr = #VarZone.1SpielerNummer PZZone.1Nr
tag @s add EtiZone.1SpielerNummer

Variante 1: Schritt-2-Funktion
Dort wird die geworfene Truhe so bearbeitet,

  • Zeile 2 dass sie einen sichtbaren Namen in der Welt zu sehen hat und sie bekommt ein Etikett, dass später noch abgefragt wird.
  • Zeile 5 Mit dem Wurf der Truhe erhält der Spieler die Zonenoptionen, dazu wird ihm auch gewährt den Auslöser einmal zu verwenden.
  • Zeile 6 Die Zonenoptionen werden dann im Chat angezeigt.
  • Zeile 7 Als letztes setzt die Funktion den Punktestand für das Werfen der Truhe wieder auf null zurück.


Editor Icon.png technik_wiki:zonen-system/v1schritt2.mcfunction
# Die geworfene Truhe wird mit einem Etikett ausgestattet und sie kann nach einer Verzögerung wieder aufgehoben werden
execute at @s run data merge entity @e[distance=..5,sort=nearest,limit=1,type=minecraft:item,nbt={Item:{tag:{display:{Name:"{\"text\":\"Zonen-System.1\"}"} } } }] {PickupDelay:100s,CustomName:"{\"text\":\"Zonenoptionen\"}",CustomNameVisible:true,Tags:["EtiZone.1ZoneErstellen"]}

# Wenn man eine Truhe geworfen hat, erhält man die Freigabe, dass man einen Auslöser anklicken kann
scoreboard players enable @s PZZone.1Eing
tellraw @s ["Zonen-System.1:\n",{"text":" Drücke T und klicke mit der Maus auf eine Option:\n","bold":"true"},{"text":" [1] Zone markieren\n","color":"yellow","bold":"true","hoverEvent":{"action":"show_text","value":{"text":"Zone positionieren"} },"clickEvent":{"action":"run_command","value":"/trigger PZZone.1Eing set 1"} },{"text":" [2] Zone erstellen\n","color":"green","bold":"true","hoverEvent":{"action":"show_text","value":{"text":"Zone erstellen"} },"clickEvent":{"action":"run_command","value":"/trigger PZZone.1Eing set 2"} }, {"text":" [3] Zone löschen\n","color":"red","bold":"true","hoverEvent":{"action":"show_text","value":{"text":"Zone löschen"} },"clickEvent":{"action":"run_command","value":"/trigger PZZone.1Eing set 3"} } ]
scoreboard players reset @s PZZone.1Truhe

Variante 1: Schritt-3-Funktion
Sie sorgt dafür, dass die anklickbaren Optionen auch ihre Wirkung entfalten. Man kann einmal die Zone markieren, erstellen oder löschen. Die Funktion kann in drei Bereiche unterteilt werden, wobei jeder Bereich einen der drei Werte abfragt und dann darauf das entsprechende bewirkt. Dazu wird zunächst geprüft ob der Spieler den Wert eins, für die erste Option angeklickt, hat.

  • Zeile 2 Wenn der Wert eins vom Auslöser aktiviert wurde, wird zuerst die Position des Spielers übernommen um dann zu prüfen ob ein Gegenstand im Umkreis von ihm in fünf Blöcken Entfernung um diesen sich befindet. Wenn der Gegenstand gefunden wurde, wird die Position noch achsenzentriert um anschließend einen unsichtbaren Rüstungsständer mit einer Truhe auf dem Kopf genau mittig eines Blockes zu spawnen.
  • Zeile 5 Bevor allerdings die Zone markiert wird, wird geprüft ob sich in unmittelbaren Abstand zu der möglichen Zonen-Markierung nicht schon eine andere existierende Zone dort befindet. Falls doch, wird jetzt ein Barriere-Partikel erscheinen.
  • Zeile 6 Um den Spieler darauf aufmerksam zu machen wird im nächsten Befehl eine tellraw-Nachricht im Chat ausgegeben.
  • Zeile 7 Und als nächstes wird auch der Rüstungsständer wieder gelöscht.
  • Zeile 8 Der Truhen-Gegenstand wird nur dann gelöscht, wenn sich keine Zone zu nah zu dieser neuen Zone befindet, ansonsten kann man sie wieder aufheben und nochmals neu positionieren.
  • Zeile 11 Hat alles geklappt, wird nun der möglichen Zone die Spielernummer übertragen um jederzeit festzustellen wem die Zone gehört.
  • Zeile 12 Auch hier bekommt der Rüstungsständer ein Etikett damit er nicht ein zweites mal eine neue Nummer zugewiesen bekommt.

Für die zweite Option wird nun abgefragt ob der Spieler den Wert zwei besitzt

  • Zeile 15 und sich in seinem Umkreis von fünf Blöcken eine mögliche Zone befindet die erstellt werden will. Wenn das der Fall ist, erhält der Spieler eine tellraw-Nachricht.
  • Zeile 16 Um die Zone einzugrenzen, wird nun ein 15 * 15 Feld von Stufen erstellt.
  • Zeile 17 Anschließend wird in diesem ein 13 * 13 Feld mit Luft erstellt um nur die Umrahmung der Stufen letztlich zu behalten.
  • Zeile 18 Ist alles fertig, dann wird dem Rüstungsständer der die Zone darstellt mit einem weiteren Etikett ausgestattet. Dadurch ist die Zone nun eine vollwertige Zone und mit jeglichen Schutz ausgerüstet.

Die dritte Option tritt ein, wenn man die beiden anderen Optionen rückgängig machen möchte, also wenn man die Zonen-Markierung oder eine bereits erstellte Zone wieder löschen möchte. Dazu wird geprüft ob der Spieler den Wert drei besitzt.

  • Zeile 21 Wenn sich in seiner Umgebung ein Rüstungsständer befindet, der entweder eine Zone oder eine Markierung darstellt, wird dieser erkannt und der Spieler erhält zunächst eine tellraw-Nachricht.
  • Zeile 22 Falls der Spieler eine fremde Zone löschen will, wird ihm eine Fehlermeldung zugeschickt. Das wird geprüft in dem die Zonennummer mit der Spielernummer verglichen wird, ist sie nicht gleich erhält der Spieler die Fehlermeldung. Ansonsten erhält er sie nicht.
  • Zeile 23 Wenn die Nummern übereinstimmen, erhält der Spieler zuerst seine Truhe zurück.
  • Zeile 24 Dann wird die komplette Zone von allen bebauten Blöcken befreit, falls die Zone dem Spieler gehört und es eine erstellte Zone und keine markierte Zone ist.
  • Zeile 25 Als letztes wird der Rüstungsständer und die eigentliche Zone gelöscht, wenn er die gleiche Nummer besitzt.
  • Zeile 28 Egal welche der verfügbaren Optionen der Spieler angeklickt hat, am Ende wird sein Punktestand wieder auf null gesetzt.


Editor Icon.png technik_wiki:zonen-system/v1schritt3.mcfunction
# Wenn man in der tellraw-Nachricht auf die erste Option "Zone markieren" geklickt hat, wird die mögliche Zone durch Partikel angezeigt
execute at @s[scores={PZZone.1Eing=1}] at @e[distance=..5,sort=nearest,limit=1,type=minecraft:item,tag=EtiZone.1ZoneErstellen] align xyz positioned ~0.5 ~ ~0.5 run summon minecraft:armor_stand ~ ~ ~ {NoGravity:true,CustomName:"{\"text\":\"Zone\"}",CustomNameVisible:true,Small:true,Invisible:true,Marker:true,ArmorItems:[{},{},{},{id:"minecraft:chest",Count:1b} ] }

# Falls sich in zu kurzem Abstand bereits eine Zone erstreckt, wird die Markierung direkt wieder gelöscht und per tellraw-Nachricht angegeben
execute at @s[scores={PZZone.1Eing=1}] at @e[distance=..15,type=minecraft:armor_stand,name=Zone,tag=EtiZone.1Alle] at @e[distance=..15,type=minecraft:armor_stand,name=Zone,tag=!EtiZone.1Alle] run particle barrier ~ ~1 ~ 0 0 0 0.5 1 force @s[distance=..25]
execute at @s[scores={PZZone.1Eing=1}] if entity @e[distance=..15,sort=nearest,limit=1,type=minecraft:armor_stand,name=Zone,tag=EtiZone.1Alle] run tellraw @s ["Zonen-System.1 ",{"text":"Folgende Zone mit der Spielernummer ist zu nah: ","bold":"true"},{"score":{"name":"@e[distance=..15,sort=nearest,limit=1,type=minecraft:armor_stand,name=Zone,tag=EtiZone.1Alle]","objective":"PZZone.1Nr"},"bold":"true","color":"dark_purple"} ]
execute at @s[scores={PZZone.1Eing=1}] if entity @e[distance=..15,sort=nearest,limit=1,type=minecraft:armor_stand,name=Zone,tag=EtiZone.1Alle] run kill @e[distance=..5,type=minecraft:armor_stand,name=Zone,tag=!EtiZone.1Alle]
execute at @s[scores={PZZone.1Eing=1}] unless entity @e[distance=..15,sort=nearest,limit=1,type=minecraft:armor_stand,name=Zone,tag=EtiZone.1Alle] run kill @e[distance=..5,sort=nearest,limit=1,type=minecraft:item,name=Zonenoptionen,tag=EtiZone.1ZoneErstellen]

# Die Zone erhält die Nummer des Spielers
execute at @s[scores={PZZone.1Eing=1}] run scoreboard players operation @e[distance=..7,sort=nearest,limit=1,type=minecraft:armor_stand,name=Zone,tag=!EtiZone.1Alle] PZZone.1Nr = @s PZZone.1Nr
execute at @s[scores={PZZone.1Eing=1}] run tag @e[distance=..7,sort=nearest,limit=1,type=minecraft:armor_stand,name=Zone,tag=!EtiZone.1Alle] add EtiZone.1Alle

# Wenn man in der tellraw-Nachricht auf die zweite Option "Zone erstellen" geklickt hat, wird die Zone erstellt, falls sich die Markierung in der Nähe befindet
execute at @s[scores={PZZone.1Eing=2}] if entity @e[distance=..5,sort=nearest,limit=1,type=minecraft:armor_stand,name=Zone,tag=EtiZone.1Alle,tag=!EtiZone.1Zone] run tellraw @s ["Zonen-System.1 ",{"text":"Zone für Spieler mit der Nummer erstellt: ","bold":"true"},{"score":{"name":"@e[distance=..5,sort=nearest,limit=1,type=minecraft:armor_stand,name=Zone,tag=EtiZone.1Alle]","objective":"PZZone.1Nr"},"bold":"true","color":"dark_purple"} ]
execute at @s[scores={PZZone.1Eing=2}] at @e[distance=..5,sort=nearest,limit=1,type=minecraft:armor_stand,name=Zone,tag=EtiZone.1Alle,tag=!EtiZone.1Zone] run fill ~-7 ~ ~-7 ~8 ~ ~8 minecraft:stone_slab replace minecraft:air
execute at @s[scores={PZZone.1Eing=2}] at @e[distance=..5,sort=nearest,limit=1,type=minecraft:armor_stand,name=Zone,tag=EtiZone.1Alle,tag=!EtiZone.1Zone] run fill ~-6 ~ ~-6 ~7 ~ ~7 minecraft:air replace minecraft:stone_slab
execute at @s[scores={PZZone.1Eing=2}] run tag @e[distance=..5,sort=nearest,limit=1,type=minecraft:armor_stand,name=Zone,tag=EtiZone.1Alle,tag=!EtiZone.1Zone] add EtiZone.1Zone

# Wenn man in der tellraw-Nachricht auf die dritte Option "Zone löschen" geklickt hat, wird die Zone gelöscht, falls sich diese in der Nähe befindet
execute at @s[scores={PZZone.1Eing=3}] if score @e[distance=..5,sort=nearest,limit=1,type=minecraft:armor_stand,name=Zone,tag=EtiZone.1Alle] PZZone.1Nr = @s PZZone.1Nr run tellraw @s ["Zonen-System.1 ",{"text":"Folgende Zone wurde gelöscht: ","bold":"true"},{"score":{"name":"@e[distance=..5,sort=nearest,limit=1,type=minecraft:armor_stand,name=Zone,tag=EtiZone.1Alle]","objective":"PZZone.1Nr"},"bold":"true","color":"dark_purple"} ]
execute at @s[scores={PZZone.1Eing=3}] unless score @e[distance=..5,sort=nearest,limit=1,type=minecraft:armor_stand,name=Zone,tag=EtiZone.1Alle] PZZone.1Nr = @s PZZone.1Nr run tellraw @s ["Zonen-System.1 ",{"text":"Die Zone gehört jemand anderem, sie kann deswegen nicht gelöscht werden!","bold":"true"} ]
execute at @s[scores={PZZone.1Eing=3}] if score @e[distance=..5,sort=nearest,limit=1,type=minecraft:armor_stand,name=Zone,tag=EtiZone.1Alle] PZZone.1Nr = @s PZZone.1Nr run give @s minecraft:chest{display:{Name:"{\"text\":\"Zonen-System.1\"}",Lore:["Wirf die Truhe mit Q","auf den Boden","um die Zonenoptionen","zu erhalten"] } } 1
execute at @s[scores={PZZone.1Eing=3}] if score @e[distance=..5,sort=nearest,limit=1,type=minecraft:armor_stand,name=Zone,tag=EtiZone.1Zone] PZZone.1Nr = @s PZZone.1Nr at @e[distance=..5,sort=nearest,limit=1,type=minecraft:armor_stand,name=Zone,tag=EtiZone.1Zone] run fill ~-7 ~ ~-7 ~8 ~25 ~8 minecraft:air destroy
execute at @s[scores={PZZone.1Eing=3}] if score @e[distance=..5,sort=nearest,limit=1,type=minecraft:armor_stand,name=Zone,tag=EtiZone.1Alle] PZZone.1Nr = @s PZZone.1Nr run kill @e[distance=..5,sort=nearest,limit=1,type=minecraft:armor_stand,name=Zone,tag=EtiZone.1Alle]

# Wenn man eine Option geklickt hat, wird der Punktestand dazu wieder zurückgesetzt
scoreboard players set @s PZZone.1Eing 0

Variante 1: Schritt-4-Funktion
Die Funktion technik_wiki:zonen-system/v1schritt4 visualisiert die mögliche Zone, damit man abschätzen kann, wo sie sich später befindet.

  • Zeile 2 Dazu werden vier particle-Befehle verwendet, die die Partikel vom Totem der Unsterblichkeit anzeigen. Diese werden von der relativen Position so verschoben, sodass sie genau in einer Ecke sich befinden. Sie werden dabei vertikal dargestellt und sind für den Spieler auch dann sichtbar, wenn er in seinen Spiel-Einstellungen die Partikeleffekte ausgeschaltet hat.


Editor Icon.png technik_wiki:zonen-system/v1schritt4.mcfunction
# Die mögliche Zone wird durch Partikel sichtbar gemacht, sodass jeder die Grenzen der Zone sehen kann
particle minecraft:totem_of_undying ~8 ~1 ~8 0 10 0 0.1 3 force @s
particle minecraft:totem_of_undying ~8 ~1 ~-7 0 10 0 0.1 3 force @s
particle minecraft:totem_of_undying ~-7 ~1 ~-7 0 10 0 0.1 3 force @s
particle minecraft:totem_of_undying ~-7 ~1 ~8 0 10 0 0.1 3 force @s

Variante 1: Stopp-Funktion
Die Funktion beendet alles.

  • Zeile 2 Das Ziel für die Spielernummer wird gelöscht.
  • Zeile 3 Das Ziel für die Zonennummer wird gelöscht.
  • Zeile 4 Das Ziel für das Werfen einer Truhe wird gelöscht.
  • Zeile 5 Das Ziel für den Auslöser einer Zonenoption wird gelöscht.
  • Zeile 8 Der Spieler wird wieder in den Kreativmodus gesetzt.
  • Zeile 11 Wenn der Spieler noch Truhen in seinem Inventar hat, werden diese gelöscht.
  • Zeile 14 Eventuell vorhandene Zonen werden gelöscht, in dem alles durch Luft ersetzt wird.
  • Zeile 15 Dann wird der Rüstungsständer, der die Zone darstellt, ebenfalls gelöscht.
  • Zeile 16 Falls der Spieler noch Truhen auf dem Boden liegen hat, werden diese entfernt.
  • Zeile 19 Das Etikett, dass aufzeigt, dass der Spieler eine Spielernummer besitzt, wird entfernt.
  • Zeile 20 Das Etikett, das eventuell noch vorhanden sein könnte, wenn man eine Zone betreten hat, wird entfernt.


Editor Icon.png technik_wiki:zonen-system/v1stopp.mcfunction
# Punktestand-Ziele werden entfernt
scoreboard objectives remove PZZone.1Nr
scoreboard objectives remove PZZone.1ZonenNr
scoreboard objectives remove PZZone.1Truhe
scoreboard objectives remove PZZone.1Eing

# Der Spielmodus wird auf Kreativ gesetzt
gamemode creative @s[gamemode=!creative]

# Truhen werden aus dem Inventar gelöscht
clear @s minecraft:chest{display:{Name:"{\"text\":\"Zonen-System.1\"}"} }

# Zonen werden gelöscht
execute at @e[type=minecraft:armor_stand,name=Zone,tag=EtiZone.1Alle] run fill ~-7 ~ ~-7 ~8 ~25 ~8 minecraft:air
kill @e[type=minecraft:armor_stand,name=Zone,tag=EtiZone.1Alle]
kill @e[type=minecraft:item,nbt={Item:{tag:{display:{Name:"{\"text\":\"Zonen-System.1\"}"} } } } ]

# Etiketten die eventuell noch vorhanden sind werden entfernt
tag @s[tag=EtiZone.1SpielerNummer] remove EtiZone.1SpielerNummer
tag @s[tag=EtiZone.1Betreten] remove EtiZone.1Betreten


Disambig color.svg