Technik Wiki
Registrieren
Advertisement
Gruppe: Grid Schleimblock
Verkehrsanlagen

Grid Roter Sand blass mit Mechaniken

Grid Redstone blass mit Redstone
                Hier:
Grid Befehlsblock mit Befehlen
Verfügbar in:
Wiki Mechanik-Welt Mechanik-Welt

Die Transport-Röhre wird benutzt um Spieler von einem Abschnitt in der Welt in einen anderen zu transportieren. Dabei reitet der Spieler auf einem Interaktionsobjekt, sodass er in jede Richtung blicken kann, in die ihn die Röhre bewegt.

Variante 1[]

Transport-Röhre (Befehle) Bild 1.1 Transport-Röhre (Befehle) Bild 1.2

Bei dieser Transport-Röhre wird der Spieler durch eine Glasblock-Linie durchbewegt. Dazu muss bereits ein eine Glasblock-Linie platziert sein und an deren Anfang und Ende ein Einstiegs- bzw. Ausstiegskabine. Beim Einschalten bekommt der Spieler einen magischen Stock, welchen er in der Schnellleiste auswählen muss, dabei muss er in der Kabine stehen. Dann durchläuft der Spieler automatisch die Röhre bis zum Ende. Die Röhre darf dabei keine Abzweigungen haben. Ebenso sollte sie eine Kabine am Ende besitzen andernfalls fällt der Spieler einfach raus. Wenn der Spieler während er durch die Röhre reist, den magischen stock abwählt, steigt er an der Stelle direkt aus. Damit er dabei keinen Schaden erhält, bekommt er den sanften-Fall-Effekt.

Einschalten
  • Befehl 1.1 Wenn der Hebel umgelegt wird, wird die Start-Funktion gestartet.
Wiederholen
  • Befehl 1.2 Beim Einschalten wird auch der Wiederhol-Befehlsblock gestartet, der jeden Tick die Zyklus-Funktion lädt.
Ausschalten
  • Befehl 1.3 Wenn der Hebel wieder in Ausgangsstellung zurück gelegt wird, wird die Stopp-Funktion ausgelöst und schaltet alles wieder ab.

Befehlsblöcke mit Befehlen:


Datenpaket:


Variante 1: Start-Funktion
Die Start-Funktion gibt den Spielern den magischen Stock und erstellt das Punkte-Ziel.

Editor Icon transport-roehre:v1start.mcfunction
# Das Punkte-Ziel wird erstellt.
scoreboard objectives add PZTranPR.1Wert dummy ["Transport-Röhre.1: ",{"text":"Werte der Variablen","bold":true}]

# Der Spieler erhält einen magischen Stock um durch die Röhre zu sausen.
give @a[distance=..15] minecraft:stick{EigTranPR.1Alle:true,EigTranPR.1Roehre:true,display:{Name:'{"text":"Röhre","color":"gold","bold":true}',Lore:['"Wähle den Stock aus"','"um in der Röhre"','"transportiert zu werden."']},Enchantments:[{id:-1}] } 1

# Damit der Spieler von der Technik auch weiter weg sein kann.
forceload add ~ ~


Variante 1: Zyklus-Funktion
Die Zyklus-Funktion prüft ob der Spieler den Stock auswählt und davon abhängig wird die Röhren-Funktion geladen, ebenso wird die Transport-Funktion von dem Interaktionsobjekt geladen, auf welchen der Spieler sitzt, wenn er durch die Röhre reist.

Editor Icon transport-roehre:v1zyklus.mcfunction
# Bei Auswahl des magischen Stocks wird ein Etikett vergeben, damit man nach diesen prüfen kann.
tag @a[nbt={SelectedItem:{tag:{EigTranPR.1Roehre:true} } }] add EtiTranPR.1Ausgewaehlt

# Wählt der Spieler den Stock gerade in diesen Moment aus, wird von ihm aus die Röhren-Funktion geladen.
execute as @a[tag=EtiTranPR.1Ausgewaehlt,tag=!EtiTranPR.1Auswahl] at @s run function transport-roehre:v1roehre

# Wenn der Spieler den Stock ausgewählt hat und dabei bereits das Interaktionsobjekt erzeugt hat (Der Wert eins steht dafür), so wird er auf dieses gesetzt, sofern er nicht bereits auf diesem sitzt.
execute as @a[tag=EtiTranPR.1Ausgewaehlt,scores={PZTranPR.1Wert=1}] at @s run ride @s mount @e[distance=..1,type=minecraft:interaction,tag=EtiTranPR.1Traeger,nbt=!{Passengers:[{}]},sort=nearest,limit=1]

# Von dem Interaktionsobjekt aus wird die Transport-Funktion geladen.
execute as @e[type=minecraft:interaction,tag=EtiTranPR.1Traeger] at @s run function transport-roehre:v1transport

# Wählt er den magischen Stock ab, so wird das Interaktionsobjekt entfernt und er bekommt den sanften-Fall-Effekt. Ebenso wird ihm dies mitgeteilt.
execute as @a[tag=!EtiTranPR.1Ausgewaehlt,tag=EtiTranPR.1Auswahl] on vehicle on passengers run tellraw @s ["Transport-Röhre.1:\n",{"text":"Röhre == ","color":"gray","bold":true},{"text":"falsch","color":"red","bold":true}]
execute as @a[tag=!EtiTranPR.1Ausgewaehlt,tag=EtiTranPR.1Auswahl] on vehicle on passengers run effect give @s minecraft:slow_falling 20 1 true
execute as @a[tag=!EtiTranPR.1Ausgewaehlt,tag=EtiTranPR.1Auswahl] on vehicle run kill @s[type=minecraft:interaction,tag=EtiTranPR.1Traeger]

# Um zu Erfassen ob der Spieler in einem Moment den Stock auswählt oder abwählt, erhält er dementsprechend das Etikett oder es wird entfernt.
tag @a[tag=EtiTranPR.1Ausgewaehlt,tag=!EtiTranPR.1Auswahl] add EtiTranPR.1Auswahl
tag @a[tag=!EtiTranPR.1Ausgewaehlt,tag=EtiTranPR.1Auswahl] remove EtiTranPR.1Auswahl

# Für das Prüfen im nächsten Tick wird es entfernt.
tag @a[tag=EtiTranPR.1Ausgewaehlt] remove EtiTranPR.1Ausgewaehlt


Variante 1: Röhren-Funktion
Die Röhren-Funktion prüft ob der Spieler in der Kabine für die Röhre steht und nur dann wird ein Interaktionsobjekt erzeugt, auf dem er später reiten wird.

Editor Icon transport-roehre:v1roehre.mcfunction
# Von der Position des Spielers aus, wird gezählt wie viele Falltüren um ihm herum befinden.
execute store result score @s PZTranPR.1Wert run clone ~-1 ~ ~-1 ~1 ~2 ~1 ~-1 ~ ~-1 filtered minecraft:oak_trapdoor force

# Eine Meldung wird ausgegeben, ob die Anzahl reicht oder nicht reicht.
tellraw @s[scores={PZTranPR.1Wert=0..8}] ["Transport-Röhre.1:\n",{"text":"Kabine == ","color":"gray","bold":true},{"text":"falsch","color":"red","bold":true}]
tellraw @s[scores={PZTranPR.1Wert=9..}] ["Transport-Röhre.1:\n",{"text":"Kabine == ","color":"gray","bold":true},{"text":"wahr","color":"green","bold":true}]

# Wenn die Anzahl reicht, wird ein Interaktionsobjekt erzeugt, auf das der Spieler reiten wird. Er bekommt dann auch den Wert eins zugewiesen.
execute store success score @s[scores={PZTranPR.1Wert=9..}] PZTranPR.1Wert align xyz run summon minecraft:interaction ~0.5 ~ ~0.5 {Tags:["EtiTranPR.1Alle","EtiTranPR.1Traeger"],Rotation:[0.0f,-90.0f]}


Variante 1: Transport-Funktion
Die Transport-Funktion prüft in welche Richtung die Röhre weiter geht und bewegt das Interaktionsobjekt entsprechend. Falls die Röhre endet, wird auch das Interaktionsobjekt entfernt.

Editor Icon transport-roehre:v1transport.mcfunction
# Nur wenn Luft sich voraus befindet, wird geprüft ob sich um das Interaktionsobjekt Falltüren befinden. Falls dass der Fall ist, wird ihm der Wert eins gesetzt.
execute store success score @s PZTranPR.1Wert if block ^ ^ ^1 minecraft:air
execute store success score @s[scores={PZTranPR.1Wert=1}] PZTranPR.1Wert positioned ^ ^ ^1 run clone ~-1 ~ ~-1 ~1 ~ ~1 ~-1 ~ ~-1 filtered minecraft:oak_trapdoor force

# Wenn voraus Glasblöcke sind, wird ihm der Wert eins zugewiesen.
execute store success score @s[scores={PZTranPR.1Wert=0}] PZTranPR.1Wert if block ^ ^ ^1 #minecraft:impermeable

# Solange kein Glasblock links, rechts, oben oder unten gefunden wird, bleibt der Wert bei null, ansonsten wird er eins. Dabei wird dann auch das Interaktionsobjekt neu ausgerichtet, sodass es in die neue Richtung schaut.
execute store success score @s[scores={PZTranPR.1Wert=0}] PZTranPR.1Wert if block ^1 ^ ^ #minecraft:impermeable run teleport @s ~ ~ ~ facing ^1 ^ ^
execute store success score @s[scores={PZTranPR.1Wert=0}] PZTranPR.1Wert if block ^-1 ^ ^ #minecraft:impermeable run teleport @s ~ ~ ~ facing ^-1 ^ ^
execute store success score @s[scores={PZTranPR.1Wert=0}] PZTranPR.1Wert if block ^ ^1 ^ #minecraft:impermeable run teleport @s ~ ~ ~ facing ^ ^1 ^
execute store success score @s[scores={PZTranPR.1Wert=0}] PZTranPR.1Wert if block ^ ^-1 ^ #minecraft:impermeable run teleport @s ~ ~ ~ facing ^ ^-1 ^

# Nur wenn Glasblöcke in eine bestimmte Richtung vorhanden sind oder Falltüren um das Interaktionsobjekt herum liegen, wird dieses nach vorne bewegt.
execute at @s[scores={PZTranPR.1Wert=1}] run teleport @s ^ ^ ^1

# Falls nichts davon gefunden wurde, wird es entfernt.
kill @s[scores={PZTranPR.1Wert=0}]


Variante 1: Stopp-Funktion
Die Stopp-Funktion löscht das Punkte-Ziel, sowie den magischen Stock in der Hand wie auch in der Welt. Etiketten sowie die Interaktionsobjekte werden ebenfalls entfernt.

Editor Icon transport-roehre:v1stopp.mcfunction
# Das Punkte-Ziel wird entfernt.
scoreboard objectives remove PZTranPR.1Wert

# Der Stock wird entfernt.
clear @a minecraft:stick{EigTranPR.1Alle:true}

# Das eventuell noch vorhandene Etikett wird entfernt.
tag @a[tag=EtiTranPR.1Auswahl] remove EtiTranPR.1Auswahl

# Der Stock als Drop in der Welt sowie das Interaktionsobjekt werden gelöscht.
tag @e[type=minecraft:item,nbt={Item:{tag:{EigTranPR.1Alle:true} } }] add EtiTranPR.1Alle
kill @e[tag=EtiTranPR.1Alle]

# Der Chunk wird entladen.
forceload remove ~ ~
Advertisement