Sperrzone (Befehle)

Aus Technik Wiki
Wechseln zu: Navigation, Suche
Gruppe: Grid Klebriger Kolben.png
Anlagen

Grid Roter Sand blass.png mit Mechaniken

Grid Redstone blass.png mit Redstone
                Hier:
Grid Befehlsblock.png mit Befehlen
Verfügbar in:
Wiki Redstone-Welt.png Redstone-Welt
Wiki Redstone-Welt.png
Diese neue oder überarbeitete Technik ist noch nicht in der aktuellen Redstone-Welt vorhanden.
In einem der nächsten Updates wird sie dort hinzugefügt werden.

Eine Sperrzone hält Spieler davon ab, ein bestimmtes Gebiet zu betreten. Niemand kann diese Gebiete betreten ohne wieder heraus befördert zu werden. Die Gebiete können feste Größen aufweisen, jedoch gibt es auch solche die dynamisch in der Größe einstellbar sind und lassen sich an beliebigen Orten errichten. Die Sperrzonen decken die Grund-Formen wie Kugel- oder Quaderräume ab.

Variante 1[Bearbeiten | Quelltext bearbeiten]

Sperrzone (Befehle) Bild 1.1.png Sperrzone (Befehle) Bild 1.2.png

Mit dieser Sperrzone lassen sich Kugel- oder Quader-Sperrzonen errichten. Man erhält für jede Form einen Rüstungsständer den man einfach auf den Boden platzieren kann und die Sperrzone nimmt ihre Funktion auf. Egal von welcher Seite man kommt, man wird immer aus Richtung des Zentrums nach außen befördert.

Einschalten
  • Befehl 1.1 Spielern im Umkreis von 15 Blöcken erhalten einen Rüstungsständer für Kugel-Zonen.
  • Befehl 1.2 Spielern im Umkreis von 15 Blöcken erhalten einen Rüstungsständer für Quader-Zonen.
Wiederholen
  • Befehl 1.3 Kugel-Rüstungsständer werden um fünf Grad gedreht, damit sie einen Kreis abbilden können.
  • Befehl 1.4 Von der Position der Kugel-Rüstungsständer wird, in Blickrichtung fünf Blöcke vor diesen ein Partikel-Effekt erzeugt.
  • Befehl 1.5 Quader-Rüstungsständer werden um 90° gedreht um alle vier Kanten einer Zone abzudecken.
  • Befehl 1.6 Wenn die Quader-Rüstungsständer entweder nach Norden oder Süden blicken (Pole), so wird die entsprechende Partikel-Kante erzeugt.
  • Befehl 1.7 Wenn die Quader-Rüstungsständer entweder nach Osten oder Westen blicken (Äquator), so wird die entsprechende Partikel-Kante erzeugt.
  • Befehl 1.8 Von Kugel-Rüstungsständern wird geprüft ob Spieler in einem Radius von fünf Blöcken sind und diese erhalten ein Etikett.
  • Befehl 1.9 Von Quader-Rüstungsständern wird geprüft ob Spieler in einem Quader von zehn Blöcken sind und diese erhalten ein Etikett.
  • Befehl 1.10 Wenn Spieler das Etikett für das Betreten der Zone besitzen, erhalten sie eine Warnmeldung.
  • Befehl 1.11 Damit diese Warnmeldung nur einmal erscheint solange sich die Spieler noch in der Sperrzone aufhalten, erhalten sie ein Etikett.
  • Befehl 1.12 Spieler die sich innerhalb der Sperrzone aufhalten werden in Blickrichtung auf das Zentrum nach hinten teleportiert und somit außerhalb der Zone gebracht.
  • Befehl 1.13 Wenn Spieler außerhalb der Sperrzone sind und noch das Etikett für die Warnmeldung besitzen, wird dieses wieder entfernt.
  • Befehl 1.14 Das Etikett für das Erkennen ob Spieler innerhalb der Zone sind, wird wieder entfernt.
Ausschalten
  • Befehl 1.15 Falls das Etikett bei Spielern noch vorhanden ist wird es entfernt.
  • Befehl 1.16 Alle Rüstungsständer werden aus dem Inventar gelöscht.
  • Befehl 1.17 Rüstungsständer die als Drop auf den Boden geworfen wurden, erhalten ein Etikett.
  • Befehl 1.18 Alle Objekte mit dem Etikett werden gelöscht.



Befehlsblöcke mit Befehlen:
give @a[distance=..15] minecraft:armor_stand{EigSperrZ.1Alle:true,display:{Name:'{"text":"Kugel-Sperrzone","color":"red","bold":true}',Lore:['"Platziere den Rüstungsständer"','"um die Sperrzone zu erzeugen"']},EntityTag:{Small:true,Marker:true,Invisible:true,CustomNameVisible:true,CustomName:'{"text":"Kugel","color":"red","bold":true}',Tags:["EtiSperrZ.1Alle","EtiSperrZ.1Zone","EtiSperrZ.1Kugel"]} }
give @a[distance=..15] minecraft:armor_stand{EigSperrZ.1Alle:true,display:{Name:'{"text":"Quader-Sperrzone","color":"red","bold":true}',Lore:['"Platziere den Rüstungsständer"','"um die Sperrzone zu erzeugen"']},EntityTag:{Small:true,Marker:true,Invisible:true,CustomNameVisible:true,CustomName:'{"text":"Quader","color":"red","bold":true}',Tags:["EtiSperrZ.1Alle","EtiSperrZ.1Zone","EtiSperrZ.1Quader"],Rotation:[0.0f,0.0f]} }


execute as @e[type=minecraft:armor_stand,tag=EtiSperrZ.1Kugel] at @s run teleport @s ~ ~ ~ ~5 0
execute at @e[type=minecraft:armor_stand,tag=EtiSperrZ.1Kugel] run particle minecraft:campfire_cosy_smoke ^ ^0.5 ^5 0 0 0 0 10 force @a[distance=..25]
execute as @e[type=minecraft:armor_stand,tag=EtiSperrZ.1Quader] at @s run teleport @s ~ ~ ~ ~90 0
execute as @e[type=minecraft:armor_stand,tag=EtiSperrZ.1Quader,y_rotation=135..45] unless entity @s[y_rotation=-135..-45] at @s run particle minecraft:campfire_cosy_smoke ^5.5 ^0.5 ^ 0 0 2 0 10 force @a[distance=..25]
execute as @e[type=minecraft:armor_stand,tag=EtiSperrZ.1Quader,y_rotation=135..45] unless entity @s[y_rotation=-135..-45] at @s run particle minecraft:campfire_cosy_smoke ^ ^0.5 ^5.5 2 0 0 0 10 force @a[distance=..25]
execute at @e[type=minecraft:armor_stand,tag=EtiSperrZ.1Kugel] run tag @a[distance=..5,gamemode=!spectator] add EtiSperrZ.1InZone
execute at @e[type=minecraft:armor_stand,tag=EtiSperrZ.1Quader] positioned ~-5 ~ ~-5 run tag @a[dx=10,dy=10,dz=10,gamemode=!spectator,tag=!EtiSperrZ.1InZone] add EtiSperrZ.1InZone
tellraw @a[tag=EtiSperrZ.1InZone,tag=!EtiSperrZ.1Nachricht] ["Sperrzone.1:\n",{"text":"Dies ist eine Sperrzone, Personen ist es nicht gestattet sie zu betreten!","color":"red","bold":true} ]
tag @a[tag=EtiSperrZ.1InZone,tag=!EtiSperrZ.1Nachricht] add EtiSperrZ.1Nachricht
execute as @a[tag=EtiSperrZ.1InZone] at @s facing entity @e[type=minecraft:armor_stand,tag=EtiSperrZ.1Zone,sort=nearest,limit=1] eyes run teleport @s ^ ^ ^-0.4
tag @a[tag=!EtiSperrZ.1InZone,tag=EtiSperrZ.1Nachricht] remove EtiSperrZ.1Nachricht
tag @a[tag=EtiSperrZ.1InZone] remove EtiSperrZ.1InZone


tag @a[tag=EtiSperrZ.1InZone] remove EtiSperrZ.1InZone
clear @a minecraft:armor_stand{EigSperrZ.1Alle:true}
tag @e[type=minecraft:item,nbt={Item:{tag:{EigSperrZ.1Alle:true} } }] add EtiSperrZ.1Alle
kill @e[tag=EtiSperrZ.1Alle]

Variante 2[Bearbeiten | Quelltext bearbeiten]

Sperrzone (Befehle) Bild 2.1.png Sperrzone (Befehle) Bild 2.2.png

Diese Sperrzone ermöglicht das Platzieren von Kugel- und Quader-Sperrzonen und Kugel- und Quader-Freizonen. Man erhält dafür vier Rüstungsständer, wovon jeder für eine der vier Zonen steht. Die Sperrzonen kann man nicht betreten, während die Freizonen es erlauben, sofern sie mit den Sperrzonen überlappen. Man kann sich innerhalb von Sperrzonen aufhalten, sofern dort eine Freizone ist.

Einschalten
  • Befehl 2.1 Auf dem Wiederhol-Befehlsblock befindet sich ein Hebel. Legt man ihn um, wird zuerst der Befehlsblock mit der Start-Funktion sperrzone:v2start aktiviert.
Wiederholen
Ausschalten

Befehlsblöcke mit Befehlen:



Variante 2: Start-Funktion
Die Start-Funktion gibt den Spielern die vier Rüstungsständer für Sperr- und Freizonen.

Editor Icon.png sperrzone:v2start.mcfunction
# Spielern im Umkreis von 15 Blöcken werden vier Rüstungsständer ins Inventar gelegt. Mit diesen lassen sich Kugel- und Quader-Sperrzonenen platzieren.
give @a[distance=..15] minecraft:armor_stand{EigSperrZ.2Alle:true,display:{Name:'{"text":"Kugel-Sperrzone","color":"red","bold":true}',Lore:['"Platziere den Rüstungsständer"','"um die Sperrzone zu erzeugen"']},EntityTag:{Small:true,Marker:true,Invisible:true,CustomNameVisible:true,CustomName:'{"text":"Kugel","color":"red","bold":true}',Tags:["EtiSperrZ.2Alle","EtiSperrZ.2Zone","EtiSperrZ.2Kugel"]} }
give @a[distance=..15] minecraft:armor_stand{EigSperrZ.2Alle:true,display:{Name:'{"text":"Quader-Sperrzone","color":"red","bold":true}',Lore:['"Platziere den Rüstungsständer"','"um die Sperrzone zu erzeugen"']},EntityTag:{Small:true,Marker:true,Invisible:true,CustomNameVisible:true,CustomName:'{"text":"Quader","color":"red","bold":true}',Tags:["EtiSperrZ.2Alle","EtiSperrZ.2Zone","EtiSperrZ.2Quader"],Rotation:[0.0f,0.0f]} }

give @a[distance=..15] minecraft:armor_stand{EigSperrZ.2Alle:true,display:{Name:'{"text":"Kugel-Zone","color":"green","bold":true}',Lore:['"Platziere den Rüstungsständer"','"um die Sperrzone zu erzeugen"']},EntityTag:{Small:true,Marker:true,Invisible:true,CustomNameVisible:true,CustomName:'{"text":"Kugel","color":"green","bold":true}',Tags:["EtiSperrZ.2Alle","EtiSperrZ.2Frei","EtiSperrZ.2Kugel"]} }
give @a[distance=..15] minecraft:armor_stand{EigSperrZ.2Alle:true,display:{Name:'{"text":"Quader-Zone","color":"green","bold":true}',Lore:['"Platziere den Rüstungsständer"','"um die Sperrzone zu erzeugen"']},EntityTag:{Small:true,Marker:true,Invisible:true,CustomNameVisible:true,CustomName:'{"text":"Quader","color":"green","bold":true}',Tags:["EtiSperrZ.2Alle","EtiSperrZ.2Frei","EtiSperrZ.2Quader"],Rotation:[0.0f,0.0f]} }

Variante 2: Zyklus-Funktion
Die Zyklus-Funktion sorgt dafür, dass die Zonen angezeigt werden und dafür, dass die Spieler von diesen wegbefördert werden, wenn sie versuchen einzudringen.

Editor Icon.png sperrzone:v2zyklus.mcfunction
# Die Kugel-Rüstungsständer werden rotiert und je nach Zonen-Art mit einem bestimmten Partikel-Effekt markiert.
execute as @e[type=minecraft:armor_stand,tag=EtiSperrZ.2Kugel] at @s run teleport @s ~ ~ ~ ~5 0
execute at @e[type=minecraft:armor_stand,tag=EtiSperrZ.2Kugel,tag=EtiSperrZ.2Zone] run particle minecraft:campfire_cosy_smoke ^ ^0.5 ^10 0 0 0 0 10 force @a[distance=..25]
execute at @e[type=minecraft:armor_stand,tag=EtiSperrZ.2Kugel,tag=EtiSperrZ.2Frei] run particle minecraft:totem_of_undying ^ ^0.5 ^5 0 0 0 0.1 10 force @a[distance=..25]

# Die Quader-Rüstungsständer drehen sich jeweils um 90° und dabei wird in die vier Richtungen für Partikel-Effekte gesorgt.
execute as @e[type=minecraft:armor_stand,tag=EtiSperrZ.2Quader] at @s run teleport @s ~ ~ ~ ~90 0
execute as @e[type=minecraft:armor_stand,tag=EtiSperrZ.2Quader,y_rotation=135..45] unless entity @s[y_rotation=-135..-45] run tag @s add EtiSperrZ.2Pole
execute at @e[type=minecraft:armor_stand,tag=EtiSperrZ.2Quader,tag=EtiSperrZ.2Zone,tag=EtiSperrZ.2Pole] run particle minecraft:campfire_cosy_smoke ^ ^0.5 ^10.5 4 0 0 0 10 force @a[distance=..25]
execute at @e[type=minecraft:armor_stand,tag=EtiSperrZ.2Quader,tag=EtiSperrZ.2Frei,tag=EtiSperrZ.2Pole] run particle minecraft:totem_of_undying ^ ^0.5 ^5.5 2 0 0 0.1 10 force @a[distance=..25]
execute at @e[type=minecraft:armor_stand,tag=EtiSperrZ.2Quader,tag=EtiSperrZ.2Zone,tag=EtiSperrZ.2Pole] run particle minecraft:campfire_cosy_smoke ^10.5 ^0.5 ^ 0 0 4 0 10 force @a[distance=..25]
execute at @e[type=minecraft:armor_stand,tag=EtiSperrZ.2Quader,tag=EtiSperrZ.2Frei,tag=EtiSperrZ.2Pole] run particle minecraft:totem_of_undying ^5.5 ^0.5 ^ 0 0 2 0.1 10 force @a[distance=..25]
tag @e[type=minecraft:armor_stand,tag=EtiSperrZ.2Quader,tag=EtiSperrZ.2Pole] remove EtiSperrZ.2Pole

# Wenn sich der Spieler einer Kugel-Zone nähert, wird geprüft ob er sich in ihr befindet und ob sich andere Zonen mit dieser überlappen. Wenn der Spieler in einer überlappenden Zone ist in der er sich aufhalten darf, wird ihm das Etikett, was er sonst erhalten würde nicht gegeben.
execute at @e[type=minecraft:armor_stand,tag=EtiSperrZ.2Kugel,tag=EtiSperrZ.2Zone] as @a[distance=..10,gamemode=!spectator] at @s unless entity @e[distance=..5,type=minecraft:armor_stand,tag=EtiSperrZ.2Kugel,tag=EtiSperrZ.2Frei] positioned ~-5 ~-10 ~-5 unless entity @e[dx=10,dy=10,dz=10,type=minecraft:armor_stand,tag=EtiSperrZ.2Quader,tag=EtiSperrZ.2Frei] run tag @s add EtiSperrZ.2InZone

# Wie bei der Kugel-Zone wird geprüft, ob der Spieler sich in einer Quader-Zone aufhält und nicht in einer überlappenden freien Quader-Zone. Wenn er sich nur in Quader-Zonen aufhält, erhält er ein Etikett.
execute at @e[type=minecraft:armor_stand,tag=EtiSperrZ.2Quader,tag=EtiSperrZ.2Zone] positioned ~-10 ~ ~-10 as @a[dx=20,dy=10,dz=20,gamemode=!spectator,tag=!EtiSperrZ.2InZone] at @s unless entity @e[distance=..5,type=minecraft:armor_stand,tag=EtiSperrZ.2Kugel,tag=EtiSperrZ.2Frei] positioned ~-5 ~-10 ~-5 unless entity @e[dx=10,dy=10,dz=10,type=minecraft:armor_stand,tag=EtiSperrZ.2Quader,tag=EtiSperrZ.2Frei] run tag @s add EtiSperrZ.2InZone

# Damit der Spieler auch innerhalb von Kugel- und Quader-Zonen in die richtige Richtung teleportiert wird, wird geprüft ob der Spieler sich in einer Pufferzone aufhält. Dann wird er anders teleportiert, wie wenn er von außen die Zone berührt.
execute at @e[type=minecraft:armor_stand,tag=EtiSperrZ.2Kugel,tag=EtiSperrZ.2Frei] run tag @a[distance=..7,tag=EtiSperrZ.2InZone] add EtiSperrZ.2InPuffer
execute at @e[type=minecraft:armor_stand,tag=EtiSperrZ.2Quader,tag=EtiSperrZ.2Frei] positioned ~-7 ~ ~-7 run tag @a[dx=14,dy=10,dz=14,tag=EtiSperrZ.2InZone,tag=!EtiSperrZ.2InPuffer] add EtiSperrZ.2InPuffer

# Wenn der Spieler sich innerhalb einer Zone befindet, erhält er einen Warnhinweis. Dieser wird nur einmal ausgesendet. Man erhält ihn erst wieder wenn man die Zone verlassen hat und erneut hinein gehen will.
tellraw @a[tag=EtiSperrZ.2InZone,tag=!EtiSperrZ.2Nachricht] ["Sperrzone.2:\n",{"text":"Dies ist eine Sperrzone, Personen ist es nicht gestattet sie zu betreten!","color":"red","bold":true} ]
tag @a[tag=EtiSperrZ.2InZone,tag=!EtiSperrZ.2Nachricht] add EtiSperrZ.2Nachricht

# Je nach dem ob der Spieler von außen oder in eine Pufferzone eingetrungen ist, wird entsprechend verfahren. Der Spieler wird hinausteleportiert.
execute as @a[tag=EtiSperrZ.2InZone,tag=EtiSperrZ.2InPuffer] at @s facing entity @e[type=minecraft:armor_stand,tag=EtiSperrZ.2Frei,sort=nearest,limit=1] eyes run teleport @s ^ ^ ^0.4
execute as @a[tag=EtiSperrZ.2InZone,tag=!EtiSperrZ.2InPuffer] at @s facing entity @e[type=minecraft:armor_stand,tag=EtiSperrZ.2Zone,sort=nearest,limit=1] eyes run teleport @s ^ ^ ^-0.4

# Die Etiketten werden entfernt.
tag @a[tag=!EtiSperrZ.2InZone,tag=EtiSperrZ.2Nachricht] remove EtiSperrZ.2Nachricht
tag @a[tag=EtiSperrZ.2InZone] remove EtiSperrZ.2InZone
tag @a[tag=EtiSperrZ.2InPuffer] remove EtiSperrZ.2InPuffer

Variante 2: Stopp-Funktion
Die Stopp-Funktion löscht die Rüstungsständer aus dem Inventar und in der Welt.

Editor Icon.png sperrzone:v2stopp.mcfunction
# Die Rüstungsständer werden wieder aus dem Inventar gelöscht.
clear @a minecraft:armor_stand{EigSperrZ.2Alle:true}

# Die platzierten und auf den Boden geworfenen Rüstungsständer werden gelöscht.
tag @e[type=minecraft:item,nbt={Item:{tag:{EigSperrZ.2Alle:true} } }] add EtiSperrZ.2Alle
kill @e[tag=EtiSperrZ.2Alle]

Variante 3[Bearbeiten | Quelltext bearbeiten]

Sperrzone (Befehle) Bild 3.1.png Sperrzone (Befehle) Bild 3.2.png

Diese Sperrzone ermöglicht es, dass man Kugel-Sperrzonen errichten kann, die beliebig groß oder klein sein können. Man kann über den Chat die Größe der Sperrzone bestimmen und sie anschließend in Form einen Rüstungsständers platzieren. Der platzierte unsichtbare Rüstungsständer zeigt mit Partikeln die Größe der Zone und wenn man sich diesem, der eingestellten Distanz zu sehr nähert, wird man wegteleportiert. Der dynamische Radius wird mithilfe der Raum-Diagonalen berechnet.

Einschalten
  • Befehl 3.1 Auf dem Wiederhol-Befehlsblock befindet sich ein Hebel. Legt man ihn um, wird zuerst der Befehlsblock mit der Start-Funktion sperrzone:v3start aktiviert.
Wiederholen
Ausschalten

Befehlsblöcke mit Befehlen:



Variante 3: Start-Funktion
Die Start-Funktion erstellt die Punkte-Ziele und gibt den Spielern den Rüstungsständer für die Sperrzone.

Editor Icon.png sperrzone:v3start.mcfunction
# Zwei Punkte-Ziele werden erstellt.
scoreboard objectives add PZSperrZ.3Ausl trigger ["Sperrzone.3: ",{"text":"Auslöser für Nachrichten","bold":true}]
scoreboard objectives add PZSperrZ.3Groes dummy ["Sperrzone.3: ",{"text":"Zonen-Größe","bold":true}]

# Allen Spielern wird im Umkreis von 15 Blöcken der Wert für die Größe auf fünf gesetzt.
scoreboard players set @a[distance=..15] PZSperrZ.3Groes 5

# Spielern im Umkreis von 15 Blöcken wird ein Rüstungsständer ins Inventar gelegt, mit dem man Kugel-Zonen platzieren kann.
give @a[distance=..15] minecraft:armor_stand{EigSperrZ.3Alle:true,display:{Name:'{"text":"Kugel-Zone","color":"gold","bold":true}',Lore:['"Platziere den Rüstungsständer"','"um die Sperrzone zu erzeugen"']},EntityTag:{Small:true,Marker:true,Invisible:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"Kugel-Zone","color":"gold","bold":true}',Tags:["EtiSperrZ.3Alle","EtiSperrZ.3Zone","EtiSperrZ.3Kugel","EtiSperrZ.3Erstellen"] } }

Variante 3: Zyklus-Funktion
Die Zyklus-Funktion prüft ob der Spieler den Rüstungsständer ausgewählt hat und ruft dann die Auslöser-Funktion auf, ebenfalls wird die Positions-Zonen-Funktion von platzierten Rüstungsständern geladen.

Editor Icon.png sperrzone:v3zyklus.mcfunction
# Wenn der Spieler den Rüstungsständer ausgewählt hat, erhält er ein Etikett.
tag @a[nbt={SelectedItem:{tag:{EigSperrZ.3Alle:true} } }] add EtiSperrZ.3Zone

# Wenn der Spieler gerade den Rüstungsständer ausgewählt hat, wird sein Auslöser-Wert gesetzt, damit er die Funktion lädt.
scoreboard players set @a[tag=EtiSperrZ.3Zone,tag=!EtiSperrZ.3Auswahl] PZSperrZ.3Ausl -99

# Wenn der Spieler gerade erst die Auswahl getroffen hat, erhält er ein Etikett. Es wird entfernt sobald er den Rüstungsständer nicht mehr ausgewählt hat.
tag @a[tag=EtiSperrZ.3Zone,tag=!EtiSperrZ.3Auswahl] add EtiSperrZ.3Auswahl
tag @a[tag=!EtiSperrZ.3Zone,tag=EtiSperrZ.3Auswahl] remove EtiSperrZ.3Auswahl

# Wenn der spieler den Rüstungsständer ausgewählt hat und einen Auslöser-Wert besitzt, der nicht null ist, so wird die Auslöser-Funktion geladen.
execute as @a[tag=EtiSperrZ.3Zone] unless entity @s[scores={PZSperrZ.3Ausl=0}] run function sperrzone:v3ausloeser

# Das Etikett wird entfernt.
tag @a[tag=EtiSperrZ.3Zone] remove EtiSperrZ.3Zone

# Jeder Zonen-Rüstungsständer lädt die Positions-Zonen-Funktion.
execute as @e[type=minecraft:armor_stand,tag=EtiSperrZ.3Zone] at @s run function sperrzone:v3position_zone

# Etiketten der Spieler werden entfernt.
tag @a[tag=!EtiSperrZ.3InZone,tag=EtiSperrZ.3Nachricht] remove EtiSperrZ.3Nachricht
tag @a[tag=EtiSperrZ.3InZone] remove EtiSperrZ.3InZone

Variante 3: Auslöser-Funktion
Die Auslöser-Funktion zeigt im Chat die Optionen an, wie groß oder klein die Sperrzone sein soll. Man kann dabei auf die Schaltfläche klicken um die Größe zu variieren.

Editor Icon.png sperrzone:v3ausloeser.mcfunction
# Wenn der Spieler auf eine der beiden Optionen im Chat geklickt hat, wird sein Wert um eins erhöht oder erniedrigt.
scoreboard players add @s[scores={PZSperrZ.3Ausl=1,PZSperrZ.3Groes=..63}] PZSperrZ.3Groes 1
scoreboard players remove @s[scores={PZSperrZ.3Ausl=-1,PZSperrZ.3Groes=6..}] PZSperrZ.3Groes 1

# Der Spieler erhält im Chat zwei Werte zur Auswahl und kann auf diese klicken um sie einzustellen.
tellraw @s ["Sperrzone.3: ",{"text":"\nradius = ","bold":true},{"text":"radius + 1","color":"gray","underlined":true,"bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für den Radius + 1"} },"clickEvent":{"action":"run_command","value":"/trigger PZSperrZ.3Ausl set 1"} },{"text":"\nradius = ","bold":true},{"text":"radius - 1","color":"gray","underlined":true,"bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für den Radius - 1"} },"clickEvent":{"action":"run_command","value":"/trigger PZSperrZ.3Ausl set -1"} },{"text":"\nradius == ","bold":true},{"score":{"name":"@s","objective":"PZSperrZ.3Groes"},"color":"dark_purple","bold":true}]

# Der Spieler erhält die Berechtigung den Auslöser zu betätigen und sein Wert wird wieder auf null gesetzt.
scoreboard players enable @s PZSperrZ.3Ausl
scoreboard players set @s PZSperrZ.3Ausl 0

Variante 3: Positions-Zonen-Funktion
Die Positions-Zonen-Funktion gibt der Zone den Wert der Größe und ließt die Koordinaten des Zonen-Zentrums aus. Zusätzlich wird für jeden Spieler die Positions-Spieler-Funktion geladen. Die Zonen-Funktion wird für das Visuelle geladen.

Editor Icon.png sperrzone:v3position_zone.mcfunction
# Wenn der Rüstungsständer noch keinen Wert besitzt, erhält er den, der zuletzt vom Spieler eingestellt wurde. Ebenfalls wird im gleichen Augenblick der wert für die Größe quadriert, um die Raum-Diagonale zu erhalten.
execute unless score @s PZSperrZ.3Ausl matches 0.. store result score @s PZSperrZ.3Groes run scoreboard players operation @s PZSperrZ.3Ausl = @p[scores={PZSperrZ.3Groes=5..}] PZSperrZ.3Groes
execute if score @s PZSperrZ.3Groes = @s PZSperrZ.3Ausl run scoreboard players operation @s PZSperrZ.3Groes *= @s PZSperrZ.3Groes

# Die Koordinaten werden ausgelesen und werden in Variablen gespeichert.
execute store result score VarSperrZ.3X PZSperrZ.3Groes run data get entity @s Pos[0]
execute store result score VarSperrZ.3Y PZSperrZ.3Groes run data get entity @s Pos[1]
execute store result score VarSperrZ.3Z PZSperrZ.3Groes run data get entity @s Pos[2]

# Alle Spieler im Umkreis von 100 Metern, laden von ihrer Position die Positions-Spieler-Funktion.
execute at @a[distance=..100] run function sperrzone:v3position_spieler

# Um die Zone sichtbar zu machen wird die Zonen-Funktion geladen.
scoreboard players set VarSperrZ.3Zahl PZSperrZ.3Groes 0
function sperrzone:v3zone

Variante 3: Positions-Spieler-Funktion
Die Positions-Spieler-Funktion speichert die Koordinaten des Spielers ab und vergleicht mit Hilfe der Raum-Diagonale den Abstand zwischen Spieler und dem Zonen-Zentrum. Wenn die Summe der Spieler-Quadrate kleiner ist, als das Quadrat des Radius, so befindet sich der Spieler innerhalb der Kugel. Dann wird er mit einer Warnmeldung versehen und hinaus befördert.

Editor Icon.png sperrzone:v3position_spieler.mcfunction
# Die Koordinaten des Spielers werden ausgelesen und in Variablen gespeichert.
execute store result score VarSperrZ.3SpielerX PZSperrZ.3Groes run data get entity @p Pos[0]
execute store result score VarSperrZ.3SpielerY PZSperrZ.3Groes run data get entity @p Pos[1]
execute store result score VarSperrZ.3SpielerZ PZSperrZ.3Groes run data get entity @p Pos[2]

# Um die drei Katheten zu erhalten, wird von der Spieler-Koordinate die Zonen-Koordinate abgezogen und gespeichert.
scoreboard players operation VarSperrZ.3SpielerX PZSperrZ.3Groes -= VarSperrZ.3X PZSperrZ.3Groes
scoreboard players operation VarSperrZ.3SpielerY PZSperrZ.3Groes -= VarSperrZ.3Y PZSperrZ.3Groes
scoreboard players operation VarSperrZ.3SpielerZ PZSperrZ.3Groes -= VarSperrZ.3Z PZSperrZ.3Groes

# Nach Phytagoras werden die Katheten quadriert.
scoreboard players operation VarSperrZ.3SpielerX PZSperrZ.3Groes *= VarSperrZ.3SpielerX PZSperrZ.3Groes
scoreboard players operation VarSperrZ.3SpielerY PZSperrZ.3Groes *= VarSperrZ.3SpielerY PZSperrZ.3Groes
scoreboard players operation VarSperrZ.3SpielerZ PZSperrZ.3Groes *= VarSperrZ.3SpielerZ PZSperrZ.3Groes

# Nach der Quadrierung werden alle Quadrate aufsummiert und in den Punktestand des Spielers gespeichert.
scoreboard players operation @p PZSperrZ.3Ausl = VarSperrZ.3SpielerX PZSperrZ.3Groes
scoreboard players operation @p PZSperrZ.3Ausl += VarSperrZ.3SpielerY PZSperrZ.3Groes
scoreboard players operation @p PZSperrZ.3Ausl += VarSperrZ.3SpielerZ PZSperrZ.3Groes

# Bei der Distanz müsste die Wurzel gezogen werden, stattdessen wurde der Wert für Distanz der Zone quadriert und nun verglichen. Wenn die Distanz kleiner ist, wird der Spieler in der Zone sein und erhält ein Etikett.
execute if score @p PZSperrZ.3Ausl <= @s PZSperrZ.3Groes run tag @p add EtiSperrZ.3InZone
scoreboard players set @p PZSperrZ.3Ausl 0

# Wenn der Spieler sich innerhalb der Zone befindet, erhält er eine Warnmeldung und anschließend ein Etikett, damit er sie nicht sofort wieder erhält.
tellraw @p[distance=..0.1,tag=EtiSperrZ.3InZone,tag=!EtiSperrZ.3Nachricht] ["Sperrzone.3:\n",{"text":"Dies ist eine Sperrzone, Personen ist es nicht gestattet sie zu betreten!","color":"red","bold":true} ]
tag @p[distance=..0.1,tag=EtiSperrZ.3InZone,tag=!EtiSperrZ.3Nachricht] add EtiSperrZ.3Nachricht

# Ist der Spieler innerhalb der Zone, wird er nach und nach aus der Zone teleportiert.
execute facing entity @s eyes as @p[distance=..0.1,tag=EtiSperrZ.3InZone] positioned as @s run teleport @s ^ ^ ^-0.3

Variante 3: Zonen-Funktion
Die Zonen-Funktion ruft um 180° versetzt die Zonen-Partikel-Funktion auf um an beiden Seiten die Partikel entstehen zu lassen. Damit der Kreis als solches sichtbar wird, wird der Rüstungsständer um drei Grad gedreht.

Editor Icon.png sperrzone:v3zone.mcfunction
# Die Variable für die Meter wie weit die Partikel-Funktion gehen soll, wird auf null gesetzt und im Anschluss wird die Funktion geladen.
scoreboard players set VarSperrZ.3Meter PZSperrZ.3Ausl 0
execute positioned ^ ^ ^1 run function sperrzone:v3zone_partikel

scoreboard players set VarSperrZ.3Meter PZSperrZ.3Ausl 0
execute rotated ~180 0 positioned ^ ^ ^1 run function sperrzone:v3zone_partikel

# Der Rüstungsständer wird um drei Grad im Uhrzeigersinn rotiert.
teleport @s ~ ~ ~ ~3 0

Variante 3: Zonen-Partikel-Funktion
Die Zonen-Partikel-Funktion ruft sich selbst solange erneut auf, bis sie den eingestellten Radius der Zone erreicht hat. Dort angekommen werden dann die Partikel erzeugt.

Editor Icon.png sperrzone:v3zone_partikel.mcfunction
# Die Variable wird hochgezählt und anschließend wird geprüft ob sie gleich dem Wert der Reichweite entspricht, sodass Partikel entstehen, ansonsten wird die Partikel-Funktion in Blickrichtung um einen Meter nach vorne erneut aufgerufen.
scoreboard players add VarSperrZ.3Meter PZSperrZ.3Ausl 1
execute if score VarSperrZ.3Meter PZSperrZ.3Ausl = @s PZSperrZ.3Ausl run particle minecraft:campfire_cosy_smoke ~ ~ ~ 0 0 0 0 1 force @a[distance=..50]
execute if score VarSperrZ.3Meter PZSperrZ.3Ausl <= @s PZSperrZ.3Ausl positioned ^ ^ ^1 run function sperrzone:v3zone_partikel


Variante 3: Stopp-Funktion
Die Stopp-Funktion löscht die Punkte-Ziele wieder und löscht die Rüstungsständer aus dem Inventar und als Drop in der Welt, ebenfalls werden die Zonen-Rüstungsständer gelöscht.

Editor Icon.png sperrzone:v3stopp.mcfunction
# Die Punkte-Ziele werden entfernt.
scoreboard objectives remove PZSperrZ.3Ausl
scoreboard objectives remove PZSperrZ.3Groes

# Die Rüstungsständer werden aus dem Inventar entfernt.
clear @a minecraft:armor_stand{EigSperrZ.3Alle:true}

# Die eventuell vorhandenen Etiketten werden entfernt.
tag @a[tag=EtiSperrZ.3Nachricht] remove EtiSperrZ.3Nachricht
tag @a[tag=EtiSperrZ.3Auswahl] remove EtiSperrZ.3Auswahl

# Die Rüstungsständer die platziert wurden oder auf den Boden geworfen wurden, werden entfernt.
tag @e[type=minecraft:item,nbt={Item:{tag:{EigSperrZ.3Alle:true} } }] add EtiSperrZ.3Alle
kill @e[tag=EtiSperrZ.3Alle]

Variante 4[Bearbeiten | Quelltext bearbeiten]

Sperrzone (Befehle) Bild 4.1.png Sperrzone (Befehle) Bild 4.2.png

Mit dieser Sperrzone lassen sich dynamisch groß eingestellte Quader-Sperrzonen errichten. Wählt man den Rüstungsständer aus, erhält man im Chat die Möglichkeit, die Größe der Zone einzustellen. Platziert man den Rüstungsständer, so wird die Zone nach der eingestellten Größe sich ausdehnen.

Einschalten
  • Befehl 4.1 Auf dem Wiederhol-Befehlsblock befindet sich ein Hebel. Legt man ihn um, wird zuerst der Befehlsblock mit der Start-Funktion sperrzone:v4start aktiviert.
Wiederholen
Ausschalten

Befehlsblöcke mit Befehlen:



Variante 4: Start-Funktion
Die Start-Funktion erstellt zwei Punkte-Ziele, eine Konstante und gibt den Spielern den Rüstungsständer.

Editor Icon.png sperrzone:v4start.mcfunction
# Zwei Punkte-Ziele werden erstellt.
scoreboard objectives add PZSperrZ.4Ausl trigger ["Sperrzone.4: ",{"text":"Auslöser für Nachrichten","bold":true}]
scoreboard objectives add PZSperrZ.4Groes dummy ["Sperrzone.4: ",{"text":"Zonen-Größe","bold":true}]

# Eine Konstante mit dem Wert minus eins wird erstellt und alle Spieler im Umkreis von 15 Blöcken erhalten den Wert fünf für die Größe.
scoreboard players set KonstSperrZ.4MINUSEINS PZSperrZ.4Ausl -1
scoreboard players set @a[distance=..15] PZSperrZ.4Groes 5

# Spieler im Umkreis von 15 Blöcken erhalten einen Rüstungsständer, zum Platzieren der Zonen.
give @a[distance=..15] minecraft:armor_stand{EigSperrZ.4Alle:true,display:{Name:'{"text":"Quader-Zone","color":"gold","bold":true}',Lore:['"Platziere den Rüstungsständer"','"um die Sperrzone zu erzeugen"']},EntityTag:{Small:true,Marker:true,Invisible:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"Quader-Zone","color":"gold","bold":true}',Tags:["EtiSperrZ.4Alle","EtiSperrZ.4Zone","EtiSperrZ.4Quader","EtiSperrZ.4Erstellen"] } }

Variante 4: Zyklus-Funktion
Die Zyklus-Funktion prüft, ob der Spieler den Rüstungsständer ausgewählt hat und ruft dann die Auslöser-Funktion auf. Ebenfalls wird durch die Zonen-Rüstungsständer die Positions-Zonen-Funktion aufgerufen.

Editor Icon.png sperrzone:v4zyklus.mcfunction
# Wenn der Spieler den Rüstungsständer ausgewählt hat, erhält er ein Etikett.
tag @a[nbt={SelectedItem:{tag:{EigSperrZ.4Alle:true} } }] add EtiSperrZ.4Zone

# Wenn der Spieler gerade den Rüstungsständer ausgewählt hat, wird sein Auslöser-Wert gesetzt, damit er die Funktion lädt.
scoreboard players set @a[tag=EtiSperrZ.4Zone,tag=!EtiSperrZ.4Auswahl] PZSperrZ.4Ausl -99

# Wenn der Spieler gerade erst die Auswahl getroffen hat, erhält er ein Etikett. Es wird entfernt sobald er den Rüstungsständer nicht mehr ausgewählt hat.
tag @a[tag=EtiSperrZ.4Zone,tag=!EtiSperrZ.4Auswahl] add EtiSperrZ.4Auswahl
tag @a[tag=!EtiSperrZ.4Zone,tag=EtiSperrZ.4Auswahl] remove EtiSperrZ.4Auswahl

# Wenn der spieler den Rüstungsständer ausgewählt hat und einen Auslöser-Wert besitzt, der nicht null ist, so wird die Auslöser-Funktion geladen.
execute as @a[tag=EtiSperrZ.4Zone] unless entity @s[scores={PZSperrZ.4Ausl=0}] run function sperrzone:v4ausloeser

# Das Etikett wird entfernt.
tag @a[tag=EtiSperrZ.4Zone] remove EtiSperrZ.4Zone

# Jeder Zonen-Rüstungsständer lädt die Positions-Zonen-Funktion.
execute as @e[type=minecraft:armor_stand,tag=EtiSperrZ.4Zone] at @s run function sperrzone:v4position_zone

# Etiketten der Spieler werden entfernt.
tag @a[tag=!EtiSperrZ.4InZone,tag=EtiSperrZ.4Nachricht] remove EtiSperrZ.4Nachricht
tag @a[tag=EtiSperrZ.4InZone] remove EtiSperrZ.4InZone


Variante 4: Auslöser-Funktion
Die Auslöser-Funktion gibt dem Spieler im Chat die Möglichkeit die Größe der Zone einzustellen.

Editor Icon.png sperrzone:v4ausloeser.mcfunction
# Wenn der Spieler auf eine der beiden Optionen im Chat geklickt hat, wird sein Wert um eins erhöht oder erniedrigt.
scoreboard players add @s[scores={PZSperrZ.4Ausl=1,PZSperrZ.4Groes=..63}] PZSperrZ.4Groes 1
scoreboard players remove @s[scores={PZSperrZ.4Ausl=-1,PZSperrZ.4Groes=6..}] PZSperrZ.4Groes 1

# Der Spieler erhält im Chat zwei Werte zur Auswahl und kann auf diese klicken um sie einzustellen.
tellraw @s ["Sperrzone.4: ",{"text":"\nquader = ","bold":true},{"text":"quader + 1","color":"gray","underlined":true,"bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für den Quader + 1"} },"clickEvent":{"action":"run_command","value":"/trigger PZSperrZ.4Ausl set 1"} },{"text":"\nquader = ","bold":true},{"text":"quader - 1","color":"gray","underlined":true,"bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für den Quader - 1"} },"clickEvent":{"action":"run_command","value":"/trigger PZSperrZ.4Ausl set -1"} },{"text":"\nquader == ","bold":true},{"score":{"name":"@s","objective":"PZSperrZ.4Groes"},"color":"dark_purple","bold":true}]

# Der Spieler erhält die Berechtigung den Auslöser zu betätigen und sein Wert wird wieder auf null gesetzt.
scoreboard players enable @s PZSperrZ.4Ausl
scoreboard players set @s PZSperrZ.4Ausl 0

Variante 4: Positions-Zonen-Funktion
Die Positions-Zonen-Funktion überträgt den Wert der Größe vom Spieler auf die gerade platzierte Zone und speichert die Koordinaten der Zone, um durch das Aufrufen der Positions-Spieler-Funktion, zu testen ob die Spieler innerhalb der Zone sind.

Editor Icon.png sperrzone:v4position_zone.mcfunction
# Wenn der Rüstungsständer noch keinen Wert besitzt, erhält er den, der zuletzt vom Spieler eingestellt wurde.
execute unless score @s PZSperrZ.4Ausl matches 0.. store result score @s PZSperrZ.4Groes run scoreboard players operation @s PZSperrZ.4Ausl = @p[scores={PZSperrZ.4Groes=5..}] PZSperrZ.4Groes

# Die Koordinaten der Zone werden ausgelsen und in jeweils zwei Variablen gespeichert.
execute store result score VarSperrZ.4XUrsprung PZSperrZ.4Groes store result score VarSperrZ.4XDelta PZSperrZ.4Groes run data get entity @s Pos[0]
execute store result score VarSperrZ.4YUrsprung PZSperrZ.4Groes store result score VarSperrZ.4YDelta PZSperrZ.4Groes run data get entity @s Pos[1]
execute store result score VarSperrZ.4ZUrsprung PZSperrZ.4Groes store result score VarSperrZ.4ZDelta PZSperrZ.4Groes run data get entity @s Pos[2]

# Um die komplette Zone abzudecken, werden Variablen für den Ursprung um die Größe der Zone reduziert.
scoreboard players operation VarSperrZ.4XUrsprung PZSperrZ.4Groes -= @s PZSperrZ.4Groes
scoreboard players operation VarSperrZ.4YUrsprung PZSperrZ.4Groes -= @s PZSperrZ.4Groes
scoreboard players operation VarSperrZ.4ZUrsprung PZSperrZ.4Groes -= @s PZSperrZ.4Groes

# Ebenfalls werden die Variablen für das Delta der Zone um die Größe addiert.
scoreboard players operation VarSperrZ.4XDelta PZSperrZ.4Groes += @s PZSperrZ.4Groes
scoreboard players operation VarSperrZ.4YDelta PZSperrZ.4Groes += @s PZSperrZ.4Groes
scoreboard players operation VarSperrZ.4ZDelta PZSperrZ.4Groes += @s PZSperrZ.4Groes

# Von allen Spielern im Umkreis von 100 Blöcken wird die Positions-Spieler-Funktion an deren Position geladen.
execute at @a[distance=..100] run function sperrzone:v4position_spieler

# Um die Zone auch visuell anzuzeigen, wird die Zonen-Funktion geladen.
scoreboard players set VarSperrZ.4Zahl PZSperrZ.4Groes 0
function sperrzone:v4zone

Variante 4: Positions-Spieler-Funktion
Die Positions-Spieler-Funktion speichert die Koordinaten des jeweiligen Spieler in Variablen und vergleicht diese mit der Quader-Zone. Wenn sich der Spieler innerhalb der Zone aufhält wird er mit einer Warnmeldung eingedeckt und nach draußen befördert.

Editor Icon.png sperrzone:v4position_spieler.mcfunction
# Die Koordinaten des Spielers werden ausgelesen und jeweils in eine Variable gespeichert.
execute store result score VarSperrZ.4SpielerX PZSperrZ.4Groes run data get entity @p Pos[0]
execute store result score VarSperrZ.4SpielerY PZSperrZ.4Groes run data get entity @p Pos[1]
execute store result score VarSperrZ.4SpielerZ PZSperrZ.4Groes run data get entity @p Pos[2]

# Wenn die Spieler-Koordinate größer als der Ursprung und kleiner als das Delta sind, wird dem Spieler der Wert um eins erhöht.
execute if score VarSperrZ.4SpielerX PZSperrZ.4Groes >= VarSperrZ.4XUrsprung PZSperrZ.4Groes if score VarSperrZ.4SpielerX PZSperrZ.4Groes <= VarSperrZ.4XDelta PZSperrZ.4Groes run scoreboard players add @p PZSperrZ.4Ausl 1
execute if score VarSperrZ.4SpielerY PZSperrZ.4Groes >= VarSperrZ.4YUrsprung PZSperrZ.4Groes if score VarSperrZ.4SpielerY PZSperrZ.4Groes <= VarSperrZ.4YDelta PZSperrZ.4Groes run scoreboard players add @p PZSperrZ.4Ausl 1
execute if score VarSperrZ.4SpielerZ PZSperrZ.4Groes >= VarSperrZ.4ZUrsprung PZSperrZ.4Groes if score VarSperrZ.4SpielerZ PZSperrZ.4Groes <= VarSperrZ.4ZDelta PZSperrZ.4Groes run scoreboard players add @p PZSperrZ.4Ausl 1

# Nur wenn der Spieler den Wert drei besitzt, befindet er sich in der Zone und erhält ein Etikett dafür.
tag @p[distance=..0.1,scores={PZSperrZ.4Ausl=3}] add EtiSperrZ.4InZone
scoreboard players set @p PZSperrZ.4Ausl 0

# Wenn der Spieler sich in der Zone aufhält, wird ihm eine Warnmeldung angezeigt und amit diese nur einmal pro Betreten der Zone erscheint, erhält im Anschluss ein Etikett.
tellraw @p[distance=..0.1,tag=EtiSperrZ.4InZone,tag=!EtiSperrZ.4Nachricht] ["Sperrzone.4:\n",{"text":"Dies ist eine Sperrzone, Personen ist es nicht gestattet sie zu betreten!","color":"red","bold":true} ]
tag @p[distance=..0.1,tag=EtiSperrZ.4InZone,tag=!EtiSperrZ.4Nachricht] add EtiSperrZ.4Nachricht

# Wenn der Spieler sich innerhalb der Zone aufhält, wird er nach und nach aus der Zone befördert.
execute facing entity @s eyes as @p[distance=..0.1,tag=EtiSperrZ.4InZone] positioned as @s run teleport @s ^ ^ ^-0.3

Variante 4: Zonen-Funktion
Die Zonen-Funktion ruft sich viermal selbst auf, jedoch jedesmal um 90° gedreht. Damit in jede Richtung die Zonen-Abstands-Funktion geladen werden kann.

Editor Icon.png sperrzone:v4zone.mcfunction
# Die Variable für den Selbstaufruf wird um eins erhöht.
scoreboard players add VarSperrZ.4Zahl PZSperrZ.4Groes 1

# Bevor die Zonen-Abstands-Funktion geladen wird, werden die Variablen dafür vorbereitet.
scoreboard players set VarSperrZ.4Abstand PZSperrZ.4Ausl 0
scoreboard players operation VarSperrZ.4Laenge PZSperrZ.4Ausl = @s PZSperrZ.4Ausl
scoreboard players operation VarSperrZ.4Laenge PZSperrZ.4Ausl *= KonstSperrZ.4MINUSEINS PZSperrZ.4Ausl
execute positioned ^1 ^ ^-1 run function sperrzone:v4zone_abstand

# Diese Funktion wird viermal sich selbst aufrufen und dabei die Rotion jeweils um 90° drehen.
execute if score VarSperrZ.4Zahl PZSperrZ.4Groes matches 1..4 rotated ~90 0 run function sperrzone:v4zone

Variante 4: Zonen-Abstands-Funktion
Die Zonen-Abstands-Funktion ruft sich so oft selbst auf, bis sie die Ecken des Quaders erreicht hat. Dort angekommen, wird die Zonen-Partikel-Funktion aufgerufen.

Editor Icon.png sperrzone:v4zone_abstand.mcfunction
# Die Abstands-Variable wird um eins erhöht.
scoreboard players add VarSperrZ.4Abstand PZSperrZ.4Ausl 1

# Sobald die Variable gleich dem Wert der Einstellung entspricht, wird die Partikel-Funktion geladen, ansonsten wird die Abstands-Funktion erneut geladen, sofern der Wert kleiner ist.
execute if score VarSperrZ.4Abstand PZSperrZ.4Ausl = @s PZSperrZ.4Ausl run function sperrzone:v4zone_partikel
execute if score VarSperrZ.4Abstand PZSperrZ.4Ausl < @s PZSperrZ.4Ausl positioned ^1 ^ ^-1 run function sperrzone:v4zone_abstand

Variante 4: Zonen-Partikel-Funktion
Die Zonen-Partikel-Funktion ruft sich erneut selbst auf, bis sie die gesamte Kante der Quader-Zone entlang gelaufen ist und erzeugt dabei jedesmal Partikel-Effekte.

Editor Icon.png sperrzone:v4zone_partikel.mcfunction
# Das Lagerfeuer-Partikel wird erzeugt.
particle minecraft:campfire_cosy_smoke ~ ~0.5 ~ 0 0 0 0 1 force @a[distance=..50]

# Die Längen-Variable wird um eins erhöht und anschließend wird geprüft ob diese kleiner als die maximale Länge ist. Solange das der Fall ist, wird die Partikel-Funktion erneut um einen Meter in Blickrichtung versetzt selbst aufgerufen.
scoreboard players add VarSperrZ.4Laenge PZSperrZ.4Ausl 1
execute if score VarSperrZ.4Laenge PZSperrZ.4Ausl < @s PZSperrZ.4Ausl positioned ^ ^ ^1 run function sperrzone:v4zone_partikel


Variante 4: Stopp-Funktion
Die Stopp-Funktion löscht die Punkte-Ziele wieder und auch die Rüstungsständer im Inventar oder auf dem Boden. Die Zonen werden ebenfalls gelöscht.

Editor Icon.png sperrzone:v4stopp.mcfunction
# Die Punkte-Ziele werden entfernt.
scoreboard objectives remove PZSperrZ.4Ausl
scoreboard objectives remove PZSperrZ.4Groes

# Der Rüstungsständer wird aus dem Inventar gelöscht.
clear @a minecraft:armor_stand{EigSperrZ.4Alle:true}

# Die eventuell vorhandenen Etiketten werden entfernt.
tag @a[tag=EtiSperrZ.4Nachricht] remove EtiSperrZ.4Nachricht
tag @a[tag=EtiSperrZ.4Auswahl] remove EtiSperrZ.4Auswahl

# Rüstungsständer auf dem Boden oder platzierte Rüstungsständer werden entfernt.
tag @e[type=minecraft:item,nbt={Item:{tag:{EigSperrZ.4Alle:true} } }] add EtiSperrZ.4Alle
kill @e[tag=EtiSperrZ.4Alle]


Disambig color.svg