Diese Seite wird gerade von Nethonos neu erstellt oder grundlegend überarbeitet. Fragen und Vorschläge bitte in die Diskussion. Fortschritt: |
Gruppe: Unbekannter Gruppenname [[]] |
mit Mechaniken |
mit Redstone |
Hier: mit Befehlen |
Verfügbar in: Redstone-Welt |
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 Vorlage:De aus.
Variante 1
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.
|
Unbekannter Gruppenname Folgende Voraussetzungen werden benötigt: | ||
---|---|---|
|
Folgende Materialien werden benötigt: | |
---|---|
|
Datei: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
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
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
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
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.
|
Unbekannter Gruppenname Folgende Voraussetzungen werden benötigt: | ||
---|---|---|
|
Folgende Materialien werden benötigt: | |
---|---|
|
Datei: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
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
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
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 |
|
Unbekannter Gruppenname | unbekannter Parameter, siehe Doku |
---|
|