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

Vorrichtungen/Bewegungssensor (Befehle)

Aus Technik Wiki
Wechseln zu: Navigation, Suche
Baustelle.svg
Diese Seite wird gerade von Nethonos neu erstellt oder grundlegend überarbeitet.
Fragen und Vorschläge bitte in die Diskussion. Fortschritt: Grid Redstone-Block.pngGrid Redstone-Block.pngGrid Redstone-Block.pngGrid Redstone-Block.pngGrid Redstone-Block.pngGrid Redstone-Block blass.pngGrid Redstone-Block blass.pngGrid Redstone-Block blass.pngGrid Redstone-Block blass.pngGrid Redstone-Block blass.png


Gruppe: Grid Kolben.png
Vorrichtungen

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 Redstone-Welt angesehen werden.

Ein Bewegungssensor erkennt wie der Name schon sagt, ob sich Spieler in einem bestimmten Bereich rühren. Solange sie still stehen kann er sie nicht entdecken, es sei denn er wurde auch dafür ausgelegt. Um Bewegungen des Spielers zu erfassen, werden Punktestand-Ziele benötigt, die diese Eigenschaften des Spielers erkennen, diese lesen die Statistikdaten aus.

Inhaltsverzeichnis

Variante 1[Bearbeiten | Quelltext bearbeiten]

Redstone-Schaltkreise Symbol.png
Diese Technik ist noch nicht in der aktuellen Redstone-Welt vorhanden.
In einem der nächsten Updates wird sie dort hinzugefügt werden.

Vorrichtungen Bewegungssensor (Befehle) Bild 1.1.png

Mit dem Bewegungssensor kann man in diesem Beispiel in einem Umkreis von 15 Metern um den Wiederhol-Befehlsblock herumBefehl 1.2, erkennen ob sich ein Spieler um diesen sich bewegt. Sobald der Spieler stehen bleibt, ist er für den Sensor unsichtbar. Ohne die Angabe des Radius, würde der Sensor weltweit ausschau halten ob sich irgend ein Spieler bewegt. Damit man erfassen kann, ob sich der Spieler bewegt, wird ein Punktestand-Ziel des Typs "stat.walkOneCm" benötigtBefehl 1.1. Immer dann, wenn der Spieler sich bewegt wird dessen Punktestand um eins erhöht, solange bis er wieder still steht. Deshalb wird in diesem Beispiel der Wert immer sofort wieder zurückgesetzt, damit man erneut abfragen kann, ob der Spieler sich immer noch bewegt. Das Punktestand-Ziel wird mit dem BefehlBefehl 1.3 wieder gelöscht.


Befehlsblöcke mit Befehlen:



Variante 1: Start-Funktion

Editor Icon.png technik_wiki:bewegungssensor/v1start.mcfunction
# Punktestand-Ziele für jede Bewegungsform wird erstellt
scoreboard objectives add PZBewS.1Gehen minecraft.custom:minecraft.walk_one_cm ["Bewegungssensor.1: ",{"text":"Die gegangenen Zentimeter auf Land","bold":true}]
scoreboard objectives add PZBewS.1Planch minecraft.custom:minecraft.walk_on_water_one_cm ["Bewegungssensor.1: ",{"text":"Die gegangenen Zentimeter im Wasser","bold":true}]
scoreboard objectives add PZBewS.1Schwim minecraft.custom:minecraft.walk_under_water_one_cm ["Bewegungssensor.1: ",{"text":"Die geschwommenen Zentimeter","bold":true}]
scoreboard objectives add PZBewS.1Sprint minecraft.custom:minecraft.sprint_one_cm ["Bewegungssensor.1: ",{"text":"Die gelaufenen Zentimeter","bold":true}]
scoreboard objectives add PZBewS.1Schl minecraft.custom:minecraft.crouch_one_cm ["Bewegungssensor.1: ",{"text":"Die geschlichenen Zentimeter","bold":true}]
scoreboard objectives add PZBewS.1Sprung minecraft.custom:minecraft.jump ["Bewegungssensor.1: ",{"text":"Springen","bold":true}]


Variante 1: Zyklus-Funktion

Editor Icon.png technik_wiki:bewegungssensor/v1zyklus.mcfunction
# Bei jeglischer Form der Bewegung erhält der Spieler das gleiche Etikett
tag @a[distance=..15,scores={PZBewS.1Gehen=1..}] add EtiBewS.1BewegungErfasst
tag @a[distance=..15,scores={PZBewS.1Planch=1..}] add EtiBewS.1BewegungErfasst
tag @a[distance=..15,scores={PZBewS.1Schwim=1..}] add EtiBewS.1BewegungErfasst
tag @a[distance=..15,scores={PZBewS.1Sprint=1..}] add EtiBewS.1BewegungErfasst
tag @a[distance=..15,scores={PZBewS.1Schl=1..}] add EtiBewS.1BewegungErfasst
tag @a[distance=..15,scores={PZBewS.1Sprung=1..}] add EtiBewS.1BewegungErfasst

# Wenn der Spieler sich bewegt hat, besitzt er ein Etikett, welches abgefragt wird um ihm dann eine Nachricht auszugeben
tellraw @a[distance=..15,tag=EtiBewS.1BewegungErfasst] ["Bewegungssensor.1: ",{"text":"Deine Bewegung wurde erfasst!","bold":true} ]

# Anschließend wird dem Spieler sein Punktestand wieder zurückgesetzt und das Etikett wieder entfernt
scoreboard players reset @a[distance=..15,scores={PZBewS.1Gehen=1..}] PZBewS.1Gehen
scoreboard players reset @a[distance=..15,scores={PZBewS.1Planch=1..}] PZBewS.1Planch
scoreboard players reset @a[distance=..15,scores={PZBewS.1Schwim=1..}] PZBewS.1Schwim
scoreboard players reset @a[distance=..15,scores={PZBewS.1Sprint=1..}] PZBewS.1Sprint
scoreboard players reset @a[distance=..15,scores={PZBewS.1Schl=1..}] PZBewS.1Schl
scoreboard players reset @a[distance=..15,scores={PZBewS.1Sprung=1..}] PZBewS.1Sprung
tag @a[tag=EtiBewS.1BewegungErfasst] remove EtiBewS.1BewegungErfasst


Variante 1: Stopp-Funktion

Editor Icon.png technik_wiki:bewegungssensor/v1stopp.mcfunction
# Die Punktestand-Ziele für jede Form der Bewegung werden entfernt
scoreboard objectives remove PZBewS.1Gehen
scoreboard objectives remove PZBewS.1Planch
scoreboard objectives remove PZBewS.1Schwim
scoreboard objectives remove PZBewS.1Sprint
scoreboard objectives remove PZBewS.1Schl
scoreboard objectives remove PZBewS.1Sprung


Variante 2[Bearbeiten | Quelltext bearbeiten]

Redstone-Schaltkreise Symbol.png
Diese Technik ist noch nicht in der aktuellen Redstone-Welt vorhanden.
In einem der nächsten Updates wird sie dort hinzugefügt werden.

Vorrichtungen Bewegungssensor (Befehle) Bild 2.1.png

Damit man nicht nur das reine "gehen" prüfen kann, müssen sehr viel mehr Punktestand-Ziele erstellt werden, als in Variante 1. Dazu werden Statistiken abgefragt, die das Springen, das Sprinten und das Kriechen abfragenBefehl 2.1Befehl 2.2Befehl 2.3Befehl 2.4. Damit man immer den gleichen Bereich von einem bestimmten Punkt aus prüfen kann, wird ein Rüstungsständer erzeugt, der diesen Mittelpunkt markiertBefehl 2.5. Nun stellt man die Befehlsblock-Kette auf, die nach diesen Merkmalen um den Rüstungsständer prüftBefehl 2.6Befehl 2.7Befehl 2.8Befehl 2.10. Je nach dem was der Spieler gerade macht, löst der entsprechende Befehlsblock samt Komparator aus. Daran kann man weitere Techniken koppeln, die dann ein Ereignis starten könnten. Um die Punktestand-Ziele samt Rüstungsständer zu löschen, legt man den Hebel einfach wieder umBefehl 2.11Befehl 2.12Befehl 2.13Befehl 2.14Befehl 2.15. Die klebrigen Kolben samt Diamantblock dienen nur zur Veranschaulichung des Ausgangssignal, daher kann auch der Springen-Abfrage-Befehl nicht lang genug aktiv sein, einen Kolben lang genug anzusteuern, damit dieser ausfährt. Deshalb wurde das mit einem Ketten-BefehlsblockBefehl 2.9 gelöst, der noch vor dem Rücksetzt-Ketten-Befehlsblock prüft ob der Spieler springt und gibt dann eine tellraw-Nachricht aus.


Befehlsblöcke mit Befehlen:



Variante 2: Start-Funktion

Editor Icon.png technik_wiki:bewegungssensor/v2start.mcfunction
# Die Punktestand-Ziele für x, y und z Koordinaten, sowie für die Rotationen werden erstellt
scoreboard objectives add PZBewS.2X dummy ["Bewegungssensor.2: ",{"text":"Die X-Koordinate","bold":true}]
scoreboard objectives add PZBewS.2Y dummy ["Bewegungssensor.2: ",{"text":"Die Y-Koordinate","bold":true}]
scoreboard objectives add PZBewS.2Z dummy ["Bewegungssensor.2: ",{"text":"Die Z-Koordinate","bold":true}]
scoreboard objectives add PZBewS.2XVergl dummy ["Bewegungssensor.2: ",{"text":"Die letzte X-Koordinate","bold":true}]
scoreboard objectives add PZBewS.2YVergl dummy ["Bewegungssensor.2: ",{"text":"Die letzte Y-Koordinate","bold":true}]
scoreboard objectives add PZBewS.2ZVergl dummy ["Bewegungssensor.2: ",{"text":"Die letzte Z-Koordinate","bold":true}]
scoreboard objectives add PZBewS.2Ric dummy ["Bewegungssensor.2: ",{"text":"Die Richtung","bold":true}]
scoreboard objectives add PZBewS.2RicVergl dummy ["Bewegungssensor.2: ",{"text":"Die letzte Richtung","bold":true}]
scoreboard objectives add PZBewS.2Nei dummy ["Bewegungssensor.2: ",{"text":"Die Neigung","bold":true}]
scoreboard objectives add PZBewS.2NeiVergl dummy ["Bewegungssensor.2: ",{"text":"Die letzte Neigung","bold":true}]


Variante 2: Zyklus-Funktion

Editor Icon.png technik_wiki:bewegungssensor/v2zyklus.mcfunction
# Die letzten Koordinaten und Rotationen werden in die Vergleichspunktestände gespeichert
execute as @a[distance=..25] run scoreboard players operation @s PZBewS.2XVergl = @s PZBewS.2X
execute as @a[distance=..25] run scoreboard players operation @s PZBewS.2YVergl = @s PZBewS.2Y
execute as @a[distance=..25] run scoreboard players operation @s PZBewS.2ZVergl = @s PZBewS.2Z
execute as @a[distance=..25] run scoreboard players operation @s PZBewS.2RicVergl = @s PZBewS.2Ric
execute as @a[distance=..25] run scoreboard players operation @s PZBewS.2NeiVergl = @s PZBewS.2Nei

# Anschließend werden die aktuellen Koordinaten und Rotationen der Spieler gespeichert
execute as @a[distance=..25] store result score @s PZBewS.2X run data get entity @s Pos[0] 1000
execute as @a[distance=..25] store result score @s PZBewS.2Y run data get entity @s Pos[1] 1000
execute as @a[distance=..25] store result score @s PZBewS.2Z run data get entity @s Pos[2] 1000
execute as @a[distance=..25] store result score @s PZBewS.2Ric run data get entity @s Rotation[0] 1000
execute as @a[distance=..25] store result score @s PZBewS.2Nei run data get entity @s Rotation[1] 1000

# Eine Nachricht wird ausgegeben, wenn die Bewegung des Spielers erfasst wurde
tellraw @a[distance=..15,tag=EtiBewS.2BewegungErfasst] ["Bewegungssensor.2: ",{"text":"Deine Bewegung wurde erfasst!","bold":true} ]

# Wenn sich die Koordinaten und Rotationen verändert haben, ist die letzte und die aktuelle Position, sowie die letzte und aktuelle Rotation ungleich und dann bekommt der Spieler ein Etikett, was jedoch zuvor entfernt wird, um jeden Tick erneut dies zu prüfen
tag @a[distance=..25,tag=EtiBewS.2BewegungErfasst] remove EtiBewS.2BewegungErfasst
execute as @a[distance=..25] unless score @s PZBewS.2XVergl = @s PZBewS.2X run tag @s[tag=!EtiBewS.2BewegungErfasst] add EtiBewS.2BewegungErfasst
execute as @a[distance=..25] unless score @s PZBewS.2YVergl = @s PZBewS.2Y run tag @s[tag=!EtiBewS.2BewegungErfasst] add EtiBewS.2BewegungErfasst
execute as @a[distance=..25] unless score @s PZBewS.2ZVergl = @s PZBewS.2Z run tag @s[tag=!EtiBewS.2BewegungErfasst] add EtiBewS.2BewegungErfasst
execute as @a[distance=..25] unless score @s PZBewS.2RicVergl = @s PZBewS.2Ric run tag @s[tag=!EtiBewS.2BewegungErfasst] add EtiBewS.2BewegungErfasst
execute as @a[distance=..25] unless score @s PZBewS.2NeiVergl = @s PZBewS.2Nei run tag @s[tag=!EtiBewS.2BewegungErfasst] add EtiBewS.2BewegungErfasst

# Wenn der Spieler sich bewegt hat, erhält eine Nachricht
tellraw @a[distance=..25,tag=EtiBewS.2BewegungErfasst] ["Bewegungssensor.2: ",{"text":"Deine Bewegung wurde erfasst!","bold":true} ]


Variante 2: Stopp-Funktion

Editor Icon.png technik_wiki:bewegungssensor/v2stopp.mcfunction
# Die Punktestand-Ziele für x, y und z Koordinaten, sowie für die Rotationen werden entfernt
scoreboard objectives remove PZBewS.2X
scoreboard objectives remove PZBewS.2Y
scoreboard objectives remove PZBewS.2Z
scoreboard objectives remove PZBewS.2XVergl
scoreboard objectives remove PZBewS.2YVergl
scoreboard objectives remove PZBewS.2ZVergl
scoreboard objectives remove PZBewS.2Ric
scoreboard objectives remove PZBewS.2RicVergl
scoreboard objectives remove PZBewS.2Nei
scoreboard objectives remove PZBewS.2NeiVergl


Disambig color.svg