Gruppe: Vorrichtungen |
mit Mechaniken |
mit Redstone |
Hier: mit Befehlen |
Verfügbar in: Redstone-Welt |
Ein Sichtweiten-Sensor misst die Sichtweite eines Spielers im Einzelspieler oder im Mehrspieler auf einem Server. Das sind geladene Chunks die der Spieler beim umherwandern sehen kann. Dabei gibt es die Sichtweite des Spielers wie er sie selbst unter den Grafikeinstellungen festgelegt hat und die Sichtweiten-Einstellung die auf einem Minecraft-Server herrscht.
Variante 1[]
Folgende Voraussetzungen werden benötigt: | ||
---|---|---|
|
Folgende Materialien werden benötigt: | |
---|---|
|
Dieser Sichtweiten-Sensor misst in die vier Himmelsrichtungen die Sichtweite und nimmt den kleinsten der vier Werte. Dadurch ist er zu einem gewissen Grad auch im Mehrspieler sehr zuverlässig was die Sichtweiten-Angabe betrifft. Um sich die Sichtweite anzeigen zu lassen, wählt man den Kompass aus. Über der Schnellleiste erscheint dann die Zahl die für die Anzahl der Chunks steht, wie weit man schauen kann. Stellt man die Sichtweite in dem Moment höher, kann es einige Sekunden dauern, bis der richtige neue Wert angezeigt wird. Wenn man dagegen die Sichtweite verringert, wird der Wert sofort richtig sein.
- Einschalten
- Befehl 1.1 Die Funktion sichtweiten-sensor:v1start wird hierbei aktiviert.
- Wiederholen
- Befehl 1.2 die Funktion sichtweiten-sensor:v1zyklus wird ständig aufgerufen.
- Ausschalten
- Befehl 1.3 Die Funktion sichtweiten-sensor:v1stopp wird geladen.
Befehlsblöcke mit Befehlen: |
|
Datenpaket |
|
Variante 1: Start-Funktion
Die Start-Funktion erstellt das Punkte-Ziel und Spieler erhalten den magischen Kompass.
sichtweiten-sensor:v1start.mcfunction
|
# Ein Punkte-Ziel wird angelegt um die Sichtweite als Punktestände zu speichern. scoreboard objectives add PZSichtWS.1Wert dummy ["Sichtweiten-Sensor.1: ",{"text":"Wert der Weite","bold":true}] # Den Spielern im Umkreis von 15 Blöcken wird ein Kompass gegeben, mit dem sie die Sichtweite messen können. give @a[distance=..15] minecraft:compass{EigSichtWS.1Alle:true,EigSichtWS.1Sensor:true,Enchantments:[{id:-1}],display:{Name:'{"text":"Sichtweiten-Sensor","color":"dark_purple","bold":true}',Lore:['"Wähle den Kompass aus"','"um die Sichtweite"','"anzuzeigen zu lassen."'] } } # Der Chunk wird aktiv, damit der Sensor auch weit ab vom Spieler noch funktioniert. forceload add ~ ~ |
Variante 1: Zyklus-Funktion
Die Zyklus-Funktion ruft vom Spieler aus, die Sensor-Funktion einmal pro Sekunde auf, wenn dieser den magischen Kompass ausgewählt hat. Dadurch wird die Sichtweite über der Schnellleiste angezeigt.
sichtweiten-sensor:v1zyklus.mcfunction
|
# Wenn der Spieler den Kompass ausgewählt hat, erhält er zur Erkennung ein Etikett. tag @a[nbt={SelectedItem:{tag:{EigSichtWS.1Sensor:true} } }] add EtiSichtWS.1Ausgewaehlt # Die Tick-Variable wird hochgezählt und bei einer Sekunde wird sie wieder auf null gesetzt. Dabei wird dem Spieler jedesmal der wert auch auf null gesetzt, damit dieser in der aufrufenden Sensor-Funktion benutzt werden kann. execute if score VarSichtWS.1Tick PZSichtWS.1Wert matches ..19 run scoreboard players add VarSichtWS.1Tick PZSichtWS.1Wert 1 execute if score VarSichtWS.1Tick PZSichtWS.1Wert matches 20.. run tag @a[tag=EtiSichtWS.1Ausgewaehlt,tag=EtiSichtWS.1Auswahl] remove EtiSichtWS.1Auswahl execute as @a[tag=EtiSichtWS.1Ausgewaehlt,tag=!EtiSichtWS.1Auswahl] store result score @s PZSichtWS.1Wert run scoreboard players set VarSichtWS.1Tick PZSichtWS.1Wert 0 # Wenn die Tick-Variable auf null ist und die Spieler den Kompass ausgewählt haben, wird die Sensor-Funktion aufgerufen. execute if score VarSichtWS.1Tick PZSichtWS.1Wert matches 0 as @a[tag=EtiSichtWS.1Ausgewaehlt] at @s rotated 0 0 run function sichtweiten-sensor:v1sensor # Die Sichtweite wird mit Hilfe des Wertes des Spielers angezeigt. execute as @a[tag=EtiSichtWS.1Ausgewaehlt] run title @s actionbar ["",{"text":"Sichtweite == ","color":"gray","bold":true},{"score":{"name":"@s","objective":"PZSichtWS.1Wert"},"color":"dark_purple","bold":true}] # Wenn der Kompass nicht mehr ausgewählt ist, wird die Nachricht über der Schnellleiste geleert. title @a[tag=!EtiSichtWS.1Ausgewaehlt,tag=EtiSichtWS.1Auswahl] actionbar [""] # Um zu erfassen ob der Spieler gerade den Kompass ausgewählt hat oder ihn nicht mehr auswählt, wird ihm ein Etikett gegeben oder entfernt. tag @a[tag=EtiSichtWS.1Ausgewaehlt,tag=!EtiSichtWS.1Auswahl] add EtiSichtWS.1Auswahl tag @a[tag=!EtiSichtWS.1Ausgewaehlt,tag=EtiSichtWS.1Auswahl] remove EtiSichtWS.1Auswahl # Das Etikett wird wieder entfernt. tag @a[tag=EtiSichtWS.1Ausgewaehlt] remove EtiSichtWS.1Ausgewaehlt |
Variante 1: Sensor-Funktion
Die Sensor-Funktion ruft in erster Linie die Weiten-Funktion auf die in einer Variable die Sichtweite speichert. Danach wird von den vier Richtungen der kleinste Wert übernommen und im Spieler gespeichert.
sichtweiten-sensor:v1sensor.mcfunction
|
# Die Weiten-Variable wird zunächst auf den Wert null gesetzt und im Anschluss wird sie in der Weiten-Funktion erhöht. scoreboard players set VarSichtWS.1Weite PZSichtWS.1Wert 0 execute rotated ~ 0 positioned ^ ^ ^16 run function sichtweiten-sensor:v1weite # Der niedrigste Weiten-Wert wird gespeichert, da es vorkommen kann, dass durch geladene Chunks oder andere Spieler die Weite abweichen kann. scoreboard players operation @s[scores={PZSichtWS.1Wert=0}] PZSichtWS.1Wert = VarSichtWS.1Weite PZSichtWS.1Wert scoreboard players operation @s PZSichtWS.1Wert < VarSichtWS.1Weite PZSichtWS.1Wert # Die Variable wird um eins erhöht und solange sie kleiner vier ist, wird die Sensor-Funktion um 90° gedreht erneut selbst aufgerufen. scoreboard players add VarSichtWS.1Richtung PZSichtWS.1Wert 1 execute if score VarSichtWS.1Richtung PZSichtWS.1Wert matches 1..3 rotated ~90 0 run function sichtweiten-sensor:v1sensor scoreboard players set VarSichtWS.1Richtung PZSichtWS.1Wert 0 |
Variante 1: Weiten-Funktion
Die Weiten-Funktion ermittelt die Sichtweite in dem sie sich selbst immer wieder um einen Chunk versetzt aufruft und dabei die Anzahl der Aufrufe speichert.
sichtweiten-sensor:v1weite.mcfunction
|
# Die Weiten-Variable wird hochgezählt und nur wenn der nächste Chunk geladen ist, wird die Funktion versetzt erneut aufgerufen. scoreboard players add VarSichtWS.1Weite PZSichtWS.1Wert 1 execute positioned ^ ^ ^16 if loaded ~ ~ ~ run function sichtweiten-sensor:v1weite |
Variante 1: Stopp-Funktion
Die Stopp-Funktion löscht das Punkte-Ziel wieder, entfernt das Etikett und löscht den magischen Kompass.
sichtweiten-sensor:v1stopp.mcfunction
|
# Das Punkte-Ziel wird entfernt. scoreboard objectives remove PZSichtWS.1Wert # Das Etikett zur Auswahl des Kompasses, wird wieder entfernt, falls es noch vorhanden war. tag @a[tag=EtiSichtWS.1Auswahl] remove EtiSichtWS.1Auswahl # Der magische Kompass wird aus dem Inventar entfernt. clear @a minecraft:compass{EigSichtWS.1Alle:true} # Falls der Kompass auf dem Boden geworfen wurde, wird der Drop entfernt. kill @e[type=minecraft:item,nbt={Item:{tag:{EigSichtWS.1Alle:true} } }] # Der aktive Chunk wird wieder entladen. forceload remove ~ ~ |
Kolben-Verlängerung => Redstone (erweitert); Blockupdate-Sensor => Redstone (erweitert); Block-Sensor => Befehle; Drop-Sensor => Befehle; Inventar-Sensor => Redstone, Befehle; Slot-Sensor => Befehle; Mülleimer => Mechanik, Redstone, Befehle; Objekt-Zähler => Befehle; Standort-Sensor => Befehle; Biom-Sensor => Befehle; Dimensions-Sensor => Befehle; Chunk-Sensor => Befehle; Höhlen-Sensor => Befehle; Licht-Sensor => Befehle; Shiftklick-Sensor => Befehle; Bewegungssensor => Befehle (erweitert); Koordinaten-Sensor => Befehle; Blickwinkel-Sensor => Befehle; Sichtweiten-Sensor => Befehle; Entfernungs-Sensor => Befehle; Uhrzeit-Sensor => Befehle; Sprachen-Sensor => Befehle; Versionen-Sensor => Befehle; Spielbeitritt-Sensor => Befehle; Server-Sensor => Befehle; Dropgenerator => Mechanik, Befehle; Kugelgenerator => Befehle;
|
|