Standort-Sensor (Befehle)

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

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
Alle neuen oder überarbeiteten Techniken auf dieser Seite sind noch nicht in der aktuellen Redstone-Welt vorhanden.
In einem der nächsten Updates werden sie dort hinzugefügt werden.

Der Standort-Sensor erfasst an einem bestimmten Ort die Anwesenheit von Spielern (auch andere Objekte möglich), nicht aber die Bewegung, wie es ein Bewegungssensor macht. Der Bereich in dem der Spieler erfasst wird, kann auf zwei Wegen erfolgen, zum einen als Kugel (distance=) und zum anderen als Quader oder Kubus (dx=,dy=,dz=). Alle anderen geometrischen Körper wie Zylinder oder Ellipsoide sind nur über Kombinationen und Aushub durch die ersteren genannten möglich. Standort-Sensoren werden unter anderem in Toranlagen oder Zonen-Markierungen verwendet, wo geprüft wird ob ein Spieler den Ort betritt, damit ein Ereignis starten kann.

Variante 1[Bearbeiten | Quelltext bearbeiten]

Standort-Sensor (Befehle) Bild 1.1.png Standort-Sensor (Befehle) Bild 1.2.png

Der Standort-Sensor ermöglicht das Erfassen von Spielern in einem kugelförmigen Bereich um bestimmte Rüstungsständer. Wenn die Spieler erfasst wurden, erhalten sie eine entsprechende titel-Nachricht.

Einschalten
  • Befehl 1.1 Ein Rüstungsständer für den Sensor wird erstellt. Dieser ist unsichtbar und zeigt seinen Namen als schwebende Schrift.
  • Befehl 1.2 Spielern im Umkreis von 15 Blöcken wird ein Rüstungsständer gegeben, mit dem man weitere Sensoren in der Welt platzieren kann.
Wiederholen
  • Befehl 1.3 Damit der Sensor-Bereich ersichtlich ist, wird der Rüstungsständer jeden Tick um fünf Grad gedreht.
  • Befehl 1.4 Es wird ein Partikel-Effekt in Blickrichtung vor dem Rüstungsständer von fünf Blöcken erzeugt.
  • Befehl 1.5 Von der Position des Rüstungsständers wird kugelförmig geprüft ob sich dort Spieler aufhalten, falls das der Fall ist, bekommen sie eine Titel-Nachricht in der dies geschrieben steht.
  • Befehl 1.6 Von allen Spielern aus, in einem Umkreis von 50 Blöcken, wird kugelförmig geprüft ob sie nicht gerade im Bereich eines Sensors sind, falls sie es nicht sind, erhalten sie ebenfalls eine Titel-Nachricht.
Ausschalten
  • Befehl 1.7 Eventuell im Inventar liegende Rüstungsständer werden entfernt.
  • Befehl 1.8 Falls ein Rüstungsständer gedroppt wurde, wird er mit einem Etikett ausgestattet, damit er gelöscht werden kann.
  • Befehl 1.9 Alle Rüstungsständer die platziert wurden und alle Drops davon werden gelöscht.

Befehlsblöcke mit Befehlen:
summon minecraft:armor_stand ~5 ~-0.5 ~ {Small:true,Marker:true,Invisible:true,CustomNameVisible:true,CustomName:'{"text":"Kugel","color":"green","bold":true}',Tags:["EtiStaOS.1Alle","EtiStaOS.1Sensor"]}
give @a[distance=..15] minecraft:armor_stand{EigStaOS.1Alle:true,display:{Name:'{"text":"Kugel","color":"green","bold":true}',Lore:['"Platziere den Rüstungsständer"','"um den Sensor zu aktivieren"']},EntityTag:{Small:true,Marker:true,Invisible:true,CustomNameVisible:true,CustomName:'{"text":"Kugel","color":"green","bold":true}',Tags:["EtiStaOS.1Alle","EtiStaOS.1Sensor"]} }


execute as @e[type=minecraft:armor_stand,tag=EtiStaOS.1Sensor] at @s run teleport @s ~ ~ ~ ~5 0
execute at @e[type=minecraft:armor_stand,tag=EtiStaOS.1Sensor] run particle minecraft:totem_of_undying ^ ^0.5 ^5 0 0 0 0.1 10 force @a[distance=..25]
execute at @e[type=minecraft:armor_stand,tag=EtiStaOS.1Sensor] run title @a[distance=..5] actionbar ["",{"text":"Spieler in Kugel == ","bold":true},{"text":"wahr","color":"green","bold":true}]
execute as @a[distance=..50] at @s unless entity @e[distance=..5,type=minecraft:armor_stand,tag=EtiStaOS.1Sensor] run title @s actionbar ["",{"text":"Spieler in Kugel == ","bold":true},{"text":"falsch","color":"red","bold":true}]


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

Variante 2[Bearbeiten | Quelltext bearbeiten]

Standort-Sensor (Befehle) Bild 2.1.png Standort-Sensor (Befehle) Bild 2.2.png

Mit diesem Standort-Sensor lassen sich Spieler in quaderförmige Bereiche von Rüstungsständern erfassen. Wenn sich Spieler im Bereich befinden, erhalten sie eine Titel-Nachricht.

Einschalten
  • Befehl 2.1 Ein Rüstungsständer für den Sensor wird erstellt. Dieser ist unsichtbar und zeigt seinen Namen als schwebende Schrift.
  • Befehl 2.2 Spielern im Umkreis von 15 Blöcken wird ein Rüstungsständer gegeben, mit dem man weitere Sensoren in der Welt platzieren kann.
Wiederholen
  • Befehl 2.3 Damit der Sensor-Bereich ersichtlich ist, wird der Rüstungsständer jeden Tick um 90 Grad gedreht (für die vier Himmelsrichtungen).
  • Befehl 2.4 Es wird ein Partikel-Effekt in Blickrichtung vor dem Rüstungsständer von fünf Blöcken erzeugt. Dabei wird geprüft ob der Rüstungsständer in die beiden Äquator-Richtungen schaut, oder Richtung Pole. Je nach Richtung wird dann der entsprechende Partikel-Effekt erzeugt[B2.5]
  • Befehl 2.6 Von der Position des Rüstungsständers, negativ versetzt, wird in einem Quader um ihm herum geprüft ob sich dort Spieler aufhalten, falls das der Fall ist, bekommen sie eine Titel-Nachricht in der dies geschrieben steht.
  • Befehl 2.7 Von allen Spielern aus, in einem Umkreis von 50 Blöcken, negativ versetzt, wird geprüft ob sie nicht gerade im Quader-Bereich eines Sensors sind, falls sie es nicht sind, erhalten sie ebenfalls eine Titel-Nachricht.
Ausschalten
  • Befehl 2.8 Eventuell im Inventar liegende Rüstungsständer werden entfernt.
  • Befehl 2.9 Falls ein Rüstungsständer gedroppt wurde, wird er mit einem Etikett ausgestattet, damit er gelöscht werden kann.
  • Befehl 2.10 Alle Rüstungsständer die platziert wurden und alle Drops davon werden gelöscht.

Befehlsblöcke mit Befehlen:
summon minecraft:armor_stand ~5 ~-0.5 ~ {Small:true,Marker:true,Invisible:true,CustomNameVisible:true,CustomName:'{"text":"Quader","color":"green","bold":true}',Tags:["EtiStaOS.2Alle","EtiStaOS.2Sensor"],Rotation:[0.0f,0.0f]}
give @a[distance=..15] minecraft:armor_stand{EigStaOS.2Alle:true,display:{Name:'{"text":"Quader","color":"green","bold":true}',Lore:['"Platziere den Rüstungsständer"','"um den Sensor zu aktivieren"']},EntityTag:{Small:true,Marker:true,Invisible:true,CustomNameVisible:true,CustomName:'{"text":"Quader","color":"green","bold":true}',Tags:["EtiStaOS.2Alle","EtiStaOS.2Sensor"],Rotation:[0.0f,0.0f]} }


execute as @e[type=minecraft:armor_stand,tag=EtiStaOS.2Sensor] at @s run teleport @s ~ ~ ~ ~90 0
execute as @e[type=minecraft:armor_stand,tag=EtiStaOS.2Sensor,y_rotation=-135..135] unless entity @s[y_rotation=-45..45] at @s run particle minecraft:totem_of_undying ^ ^0.5 ^5.5 0 0 2 0.1 10 force @a[distance=..25]
execute as @e[type=minecraft:armor_stand,tag=EtiStaOS.2Sensor,y_rotation=135..45] unless entity @s[y_rotation=-135..-45] at @s run particle minecraft:totem_of_undying ^ ^0.5 ^5 2 0 0 0.1 10 force @a[distance=..25]
execute at @e[type=minecraft:armor_stand,tag=EtiStaOS.2Sensor] positioned ~-5 ~ ~-5 run title @a[dx=10,dy=5,dz=10] actionbar ["",{"text":"Spieler in Quader == ","bold":true},{"text":"wahr","color":"green","bold":true}]
execute as @a[distance=..50] at @s positioned ~-5 ~-5 ~-5 unless entity @e[dx=10,dy=5,dz=10,type=minecraft:armor_stand,tag=EtiStaOS.2Sensor] run title @s actionbar ["",{"text":"Spieler in Quader == ","bold":true},{"text":"falsch","color":"red","bold":true}]


clear @a minecraft:armor_stand{EigStaOS.2Alle:true}
tag @e[type=minecraft:item,nbt={Item:{tag:{EigStaOS.2Alle:true} } }] add EtiStaOS.2Alle
kill @e[tag=EtiStaOS.2Alle]

Variante 3[Bearbeiten | Quelltext bearbeiten]

Standort-Sensor (Befehle) Bild 3.1.png Standort-Sensor (Befehle) Bild 3.2.png

Dieser Standort-Sensor erkennt Spieler in einem kugelförmigen Bereich um den Rüstungsständer für Innnen-Sensoren. Zusätzlich lassen sich mit Außen-Sensoren die Bereiche der Innen-Sensoren eingrenzen. Dort wird der Spieler nicht erfasst. Man kann weitere solcher Sensoren beliebig platzieren um vielschichtige Kombinationen zu erhalten.

Einschalten
  • Befehl 3.1 Ein Rüstungsständer jeweils für den Innnen- und Außen-Sensor werden erstellt[B3.2]. Diese sind klein, ohne Hitbox und unsichtbar.
  • Befehl 3.3 Spielern im Umkreis von 15 Blöcken werden zwei Rüstungsständer gegeben, mit dem man weitere Sensoren in der Welt platzieren kann[B3.4].
Wiederholen
  • Befehl 3.5 Damit der Sensor-Bereich ersichtlich ist, wird der Rüstungsständer jeden Tick um fünf Grad gedreht.
  • Befehl 3.6 Es wird ein Partikel-Effekt in Blickrichtung vor dem Rüstungsständer von fünf und zehn Blöcken erzeugt[B3.7]. Rauch-Partikel für den Außen-Sensor und Totem-Partikel für den Innen-Sensor.
  • Befehl 3.8 Von der Position der Rüstungsständer (Innen-Sensor), wird in einem kugelförmigen Bereich um ihm herum geprüft ob sich dort drinnen Spieler aufhalten, falls das der Fall ist, wird von diesen aus noch geprüft ob sich kein Außen-Sensor befindet. Nur dann bekommen sie eine Titel-Nachricht in der dies geschrieben steht.
  • Befehl 3.9 Von allen Spielern aus, in einem Umkreis von 50 Blöcken, wird geprüft ob sie nicht gerade im Innen-Bereich eines Innen-Sensors sind, falls sie es nicht sind, erhalten sie ebenfalls eine Titel-Nachricht.
  • Befehl 3.10 In einem Umkreis von 50 Blöcken, wird jeder Spieler erfasst. Wenn sich der jeweilige Spieler im inneren Bereich des Außen-Sensors aufhält, erhält er ebenfalls eine negative Titel-Nachricht.
Ausschalten
  • Befehl 3.11 Eventuell im Inventar liegende Rüstungsständer werden entfernt.
  • Befehl 3.12 Falls ein Rüstungsständer gedroppt wurde, wird er mit einem Etikett ausgestattet, damit er gelöscht werden kann.
  • Befehl 3.13 Alle Rüstungsständer die platziert wurden und alle Drops davon werden gelöscht.



Befehlsblöcke mit Befehlen:
summon minecraft:armor_stand ~5 ~-0.5 ~ {Small:true,Marker:true,Invisible:true,Tags:["EtiStaOS.3Alle","EtiStaOS.3Sensor","EtiStaOS.3Innen"]}
summon minecraft:armor_stand ~5 ~-1.5 ~ {Small:true,Marker:true,Invisible:true,Tags:["EtiStaOS.3Alle","EtiStaOS.3Sensor","EtiStaOS.3Aussen"]}
give @a[distance=..15] minecraft:armor_stand{EigStaOS.3Alle:true,display:{Name:'{"text":"Grüne Kugel","color":"green","bold":true}',Lore:['"Platziere den Rüstungsständer"','"um den Sensor zu aktivieren."','"Nur wenn der Spieler sich"','"innerhalb dieser befindet,"','"wird er erkannt."']},EntityTag:{Small:true,Invisible:true,Tags:["EtiStaOS.3Alle","EtiStaOS.3Sensor","EtiStaOS.3Innen"]} }
give @a[distance=..15] minecraft:armor_stand{EigStaOS.3Alle:true,display:{Name:'{"text":"Graue Kugel","color":"gray","bold":true}',Lore:['"Platziere den Rüstungsständer"','"um den Sensor zu aktivieren."','"Nur wenn der Spieler sich"','"außerhalb dieser befindet,"','"kann er erkannt werden."']},EntityTag:{Small:true,Invisible:true,Tags:["EtiStaOS.3Alle","EtiStaOS.3Sensor","EtiStaOS.3Aussen"]} }


execute as @e[type=minecraft:armor_stand,tag=EtiStaOS.3Sensor] at @s run teleport @s ~ ~ ~ ~5 0
execute at @e[type=minecraft:armor_stand,tag=EtiStaOS.3Sensor,tag=EtiStaOS.3Aussen] run particle minecraft:campfire_cosy_smoke ^ ^0.5 ^5 0 0 0 0 1 force @a[distance=..25]
execute at @e[type=minecraft:armor_stand,tag=EtiStaOS.3Sensor,tag=EtiStaOS.3Innen] run particle minecraft:totem_of_undying ^ ^0.5 ^10 0 0 0 0.1 10 force @a[distance=..25]
execute at @e[type=minecraft:armor_stand,tag=EtiStaOS.3Sensor] as @a[distance=..10] at @s unless entity @e[distance=..5,type=minecraft:armor_stand,tag=EtiStaOS.3Sensor,tag=EtiStaOS.3Aussen] run title @s actionbar ["",{"text":"Kugel(grün) UND (NICHT Kugel(grau)) == ","bold":true},{"text":"wahr","color":"green","bold":true}]
execute as @a[distance=..50] at @s unless entity @e[distance=..10,type=minecraft:armor_stand,tag=EtiStaOS.3Sensor,tag=EtiStaOS.3Innen] run title @s actionbar ["",{"text":"Kugel(grün) UND (NICHT Kugel(grau)) == ","bold":true},{"text":"falsch","color":"red","bold":true}]
execute as @a[distance=..50] at @s if entity @e[distance=..5,type=minecraft:armor_stand,tag=EtiStaOS.3Sensor,tag=EtiStaOS.3Aussen] run title @s actionbar ["",{"text":"Kugel(grün) UND (NICHT Kugel(grau)) == ","bold":true},{"text":"falsch","color":"red","bold":true}]


clear @a minecraft:armor_stand{EigStaOS.3Alle:true}
tag @e[type=minecraft:item,nbt={Item:{tag:{EigStaOS.3Alle:true} } }] add EtiStaOS.3Alle
kill @e[tag=EtiStaOS.3Alle]

Variante 4[Bearbeiten | Quelltext bearbeiten]

Standort-Sensor (Befehle) Bild 4.1.png Standort-Sensor (Befehle) Bild 4.2.png

Der Standort-Sensor erfasst quaderförmige Bereiche um die Rüstungsständer herum. Die Innen-Sensoren erfassen Spieler innerhalb des Quaders, während die Außen-Sensor das Erfassen in Innen-Sensoren verhindern. Damit ist man in der Lage, aus mehreren zusammengesetzte Sensoren, beliebige Raum-Bereiche zu erfassen. Die Quader werden mit Partikeln markiert.

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

Befehlsblöcke mit Befehlen:


Variante 4: Start-Funktion
Die Start-Funktion erstellt zwei Rüstungsständer als Sensoren und gibt die gleichen auch als Gegenstände in die Inventare der nächstgelegenen Spieler.

Editor Icon.png standort-sensor:v4start.mcfunction
# Es werden zwei Rüstungsständer erzeugt, wovon der erste ein grünes Quadar erzeugt und der zweite ein graues.
summon minecraft:armor_stand ~5 ~-0.5 ~ {Small:true,Marker:true,Invisible:true,Tags:["EtiStaOS.4Alle","EtiStaOS.4Sensor","EtiStaOS.4Innen"],Rotation:[0.0f,0.0f]}
summon minecraft:armor_stand ~5 ~-0.5 ~ {Small:true,Marker:true,Invisible:true,Tags:["EtiStaOS.4Alle","EtiStaOS.4Sensor","EtiStaOS.4Aussen"],Rotation:[0.0f,0.0f]}

# Spielern wird in einem Umkreis von 15 Blöcken zwei Rüstungsständer gegeben. Ein grüner und ein grauer.
give @a[distance=..15] minecraft:armor_stand{EigStaOS.4Alle:true,display:{Name:'{"text":"Grünes Quader","color":"green","bold":true}',Lore:['"Platziere den Rüstungsständer"','"um den Sensor zu aktivieren."','"Nur wenn der Spieler sich"','"innerhalb des Quaders befindet,"','"wird er erkannt."']},EntityTag:{Small:true,Marker:true,Invisible:true,Tags:["EtiStaOS.4Alle","EtiStaOS.4Sensor","EtiStaOS.4Innen"],Rotation:[0.0f,0.0f]} }
give @a[distance=..15] minecraft:armor_stand{EigStaOS.4Alle:true,display:{Name:'{"text":"Graues Quader","color":"gray","bold":true}',Lore:['"Platziere den Rüstungsständer"','"um den Sensor zu aktivieren."','"Nur wenn der Spieler sich"','"außerhalb des Quaders befindet,"','"kann er erkannt werden."']},EntityTag:{Small:true,Marker:true,Invisible:true,Tags:["EtiStaOS.4Alle","EtiStaOS.4Sensor","EtiStaOS.4Aussen"],Rotation:[0.0f,0.0f]} }


Variante 4: Zyklus-Funktion
Die Zyklus-Funktion testet ob Spieler sich im Quader-Bereich der Sensoren aufhalten. Sie sorgt dafür, dass Partikel um die Quader-Bereiche erscheinen, dass Spieler erfasst werden, wenn sie innerhalb eines Quaders sind und damit auch die Nachricht erhalten.

Editor Icon.png standort-sensor:v4zyklus.mcfunction
# Die Rüstungsständer werden um 90° gedreht.
execute as @e[type=minecraft:armor_stand,tag=EtiStaOS.4Sensor] at @s run teleport @s ~ ~ ~ ~90 0

# Der Rüstungsständer erhält immer dann das Etikett, wenn er in Richtung des Äquators schaut.
execute as @e[type=minecraft:armor_stand,tag=EtiStaOS.4Sensor,y_rotation=-135..135] unless entity @s[y_rotation=-45..45] run tag @s add EtiStaOS.4Aequator

# Die Rauch- und Totem-Partikel werden im entsprechenden Abstand zum Rüstungsständer erzuegt. Je nach Blickrichtung wird eine andere Partikel-Ausrichtung geladen.
execute at @e[type=minecraft:armor_stand,tag=EtiStaOS.4Sensor,tag=EtiStaOS.4Aussen,tag=EtiStaOS.4Aequator] run particle minecraft:campfire_cosy_smoke ^ ^0.5 ^5.5 0 0 2 0 10 force @a[distance=..25]
execute at @e[type=minecraft:armor_stand,tag=EtiStaOS.4Sensor,tag=EtiStaOS.4Aussen,tag=!EtiStaOS.4Aequator] run particle minecraft:campfire_cosy_smoke ^ ^0.5 ^5 2 0 0 0 10 force @a[distance=..25]
execute at @e[type=minecraft:armor_stand,tag=EtiStaOS.4Sensor,tag=EtiStaOS.4Innen,tag=EtiStaOS.4Aequator] run particle minecraft:totem_of_undying ^ ^0.5 ^10.5 0 0 5 0.1 10 force @a[distance=..25]
execute at @e[type=minecraft:armor_stand,tag=EtiStaOS.4Sensor,tag=EtiStaOS.4Innen,tag=!EtiStaOS.4Aequator] run particle minecraft:totem_of_undying ^ ^0.5 ^10 5 0 0 0.1 10 force @a[distance=..25]

# Das Etikett wird wieder entfernt.
tag @e[type=minecraft:armor_stand,tag=EtiStaOS.4Sensor,tag=EtiStaOS.4Aequator] remove EtiStaOS.4Aequator

# Wenn der Spieler sich innerhalb des grünen Quaders aufhält, ohne im grauen Quader zu stehen, erhält er eine positive Rückmeldung, ansonsten eine negative.
execute at @e[type=minecraft:armor_stand,tag=EtiStaOS.4Sensor,tag=EtiStaOS.4Innen] positioned ~-10 ~ ~-10 as @a[dx=20,dy=5,dz=20] at @s positioned ~-5 ~-5 ~-5 unless entity @e[dx=10,dy=5,dz=10,type=minecraft:armor_stand,tag=EtiStaOS.4Sensor,tag=EtiStaOS.4Aussen,sort=nearest,limit=1] run title @s actionbar ["",{"text":"Quader(grün) UND (NICHT Quader(grau)) == ","bold":true},{"text":"wahr","color":"green","bold":true}]
execute as @a[distance=..50] at @s positioned ~-10 ~-5 ~-10 unless entity @e[dx=20,dy=5,dz=20,type=minecraft:armor_stand,tag=EtiStaOS.4Sensor,tag=EtiStaOS.4Innen] run title @s actionbar ["",{"text":"Quader(grün) UND (NICHT Quader(grau)) == ","bold":true},{"text":"falsch","color":"red","bold":true}]
execute as @a[distance=..50] at @s positioned ~-5 ~-5 ~-5 if entity @e[dx=10,dy=5,dz=10,type=minecraft:armor_stand,tag=EtiStaOS.4Sensor,tag=EtiStaOS.4Aussen] run title @s actionbar ["",{"text":"Quader(grün) UND (NICHT Quader(grau)) == ","bold":true},{"text":"falsch","color":"red","bold":true}]


Variante 4: Stopp-Funktion
Die Stopp-Funktion räumt alles wieder auf und löscht die Rüstungsständer aus dem Inventar und auf dem Boden als Drop oder Objekt.

Editor Icon.png standort-sensor:v4stopp.mcfunction
# Die Rüstungsständer im Inventar werden entfernt.
clear @a minecraft:armor_stand{EigStaOS.4Alle:true}

# Die Rüstungsständer als Drop wie auch als Objekt werden entfernt.
tag @e[type=minecraft:item,nbt={Item:{tag:{EigStaOS.4Alle:true} } }] add EtiStaOS.4Alle
kill @e[tag=EtiStaOS.4Alle]


Disambig color.svg