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

Flugzeug (Befehle)

Aus Technik Wiki
Wechseln zu: Navigation, Suche
Gruppe: Grid Schleimblock.png
Verkehrsanlagen

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

Das Flugzeug ist eine steuerbare Konstruktion, die sich durch einen Tastenklick oder durch Bewegung (Position und Rotation) des Spielers, fliegen lässt. Das Flugzeug wird mit Hilfe eines Konstruktionsblockes an die Position des Spielers geladen. Das Flugzeug bewegt sich einen Meter in Fahrtrichtung, kann aber auch automatisch in die vorgegebene Richtung fliegen, wenn man es einstellt. Es kann in die vier Himmelsrichtungen ausgerichtet werden und es bietet eine Dritte-Person-Ansicht um so das Flugzeug von außen betrachten zu können.

Inhaltsverzeichnis

Variante 1[Bearbeiten | Quelltext bearbeiten]

Roter Sand.png
Diese neue oder überarbeitete Technik ist noch nicht in der aktuellen Mechanik-Welt vorhanden.
In einem der nächsten Updates wird sie dort hinzugefügt werden.

Flugzeug (Befehle) Bild 1.1.png Flugzeug (Befehle) Bild 1.2.png Flugzeug (Befehle) Bild 1.3.png

Dieses Flugzeug lässt sich über die Chat-Nachrichten steuern. Man kann die Richtung und die Neigung einstellen. Ebenfalls kann man den Tempomat aktivieren, sodass das Flugezug von ganz alleine weiter fliegt und es ist möglich die Aussenansicht einzuschalten, mit der der Spieler in der dritten-Person-Ansicht das Flugzeug betrachten kann.

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:


Variante 1: Start-Funktion
Die Start-Funktion erstellt ein Punktestand-Ziel und ein Piloten-Team. In dieses wird der Spieler gesteckt und es werden mehrere Rüstungsständer erzeugt, die für das Steuern des Flugzeuges benötigt werden.

Editor Icon.png luftschiff:v1start.mcfunction
# Das Auslöser-Punktestand-Ziel wird erstellt.
scoreboard objectives add PZFlugz.1Wert trigger ["Flugzeug.1: ",{"text":"Auslöser für Nachrichten","bold":true}]

# Das Team für Piloten wird erstellt und der nächstgelegene Spieler wird in dieses gesteckt.
team add TMFlugz.1Pilot ["Flugzeug.1: ",{"text":"Piloten","bold":true}]
team join TMFlugz.1Pilot @p[distance=..5,team=!TMFlugz.1Pilot]

# Der Flugzeug-Rüstungsständer mit einem zweiten huckepack, wird 25 Meter über der Befehlsquelle erzeugt.
summon minecraft:armor_stand ~ ~25.5 ~ {Small:true,NoGravity:true,Invisible:true,CustomName:'{"text":"Westen","color":"gold","bold":true}',Tags:["EtiFlugz.1Alle","EtiFlugz.1Flugzeug","EtiFlugz.1Richtung"],Rotation:[90.0f,0.0f],Passengers:[{id:"minecraft:armor_stand",Small:true,NoGravity:true,Invisible:true,CustomName:'{"text":"Geradeaus","color":"aqua","bold":true}',Tags:["EtiFlugz.1Alle","EtiFlugz.1Neigung"]},{id:"minecraft:armor_stand",Small:true,NoGravity:true,Invisible:true,CustomName:'{"text":"falsch","color":"red","bold":true}',Tags:["EtiFlugz.1Alle","EtiFlugz.1Aussenansicht"]},{id:"minecraft:armor_stand",Small:true,NoGravity:true,Invisible:true,CustomName:'{"text":"falsch","color":"red","bold":true}',Tags:["EtiFlugz.1Alle","EtiFlugz.1Tempomat"]}]}

# Einen Block unter dem Flugzeug-Rüstungsständer wird ein Eichenholzbrett platziert, damit der Spieler bei der Teleportation auf festen Untegrund steht.
execute at @e[type=minecraft:armor_stand,tag=EtiFlugz.1Flugzeug] run setblock ~2 ~-1 ~ minecraft:oak_planks replace
execute at @e[type=minecraft:armor_stand,tag=EtiFlugz.1Flugzeug] run teleport @p[team=TMFlugz.1Pilot] ~2 ~ ~

# Der Spieler bekommt den Wert zwölf gesetzt. Das sorgt dafür, dass das Flugzeug einen Tick später erstellt wird.
scoreboard players set @p[team=TMFlugz.1Pilot] PZFlugz.1Wert 12

Variante 1: Zyklus-Funktion
Die Zyklus-Funktion bietet dem Spieler die Optionen des Flugzeugs als Chat-Nachricht an. Zudem wird die Steuern-Funktion geladen, wenn der Spieler eine Option ausgewählt hat. Die dritte-Person-Ansicht wird ebenfalls ermöglicht.

Editor Icon.png luftschiff:v1zyklus.mcfunction
# Falls der Spieler auf die eine Option geklickt hat, wird die Steuern-Funktion geladen
execute as @e[type=minecraft:armor_stand,tag=EtiFlugz.1Flugzeug] at @s if entity @p[distance=..28,team=TMFlugz.1Pilot,scores={PZFlugz.1Wert=1..}] run function flugzeug:v1steuern

# Von der Position des Flugzeug-Rüstungsständers wird nach einem Piloten gesucht und dieser darf nicht den Wert null besitzen, muss also den Auslöser betätigt haben. Dann erhält er im Chat alle Steuerungsoptionen des Flugzeuges.
execute at @e[type=minecraft:armor_stand,tag=EtiFlugz.1Flugzeug] as @p[distance=..28,team=TMFlugz.1Pilot] unless entity @s[scores={PZFlugz.1Wert=0}] run tellraw @s ["Flugzeug.1: ",{"text":"\nrichtung = ","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für Norden"} },"clickEvent":{"action":"run_command","value":"/trigger PZFlugz.1Wert set 1"} },{"text":"Norden","color":"gray","bold":true},{"text":"\nrichtung = ","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für Osten"} },"clickEvent":{"action":"run_command","value":"/trigger PZFlugz.1Wert set 2"} },{"text":"Osten","color":"gray","bold":true},{"text":"\nrichtung = ","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für Süden"} },"clickEvent":{"action":"run_command","value":"/trigger PZFlugz.1Wert set 3"} },{"text":"Süden","color":"gray","bold":true},{"text":"\nrichtung = ","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für Westen"} },"clickEvent":{"action":"run_command","value":"/trigger PZFlugz.1Wert set 4"} },{"text":"Westen","color":"gray","bold":true},{"text":"\nrichtung == ","bold":true},{"entity":"@e[type=minecraft:armor_stand,tag=EtiFlugz.1Richtung,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"\nneigung = ","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für Oben"} },"clickEvent":{"action":"run_command","value":"/trigger PZFlugz.1Wert set 5"} },{"text":"Oben","color":"gray","bold":true},{"text":"\nneigung = ","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für Geradeaus"} },"clickEvent":{"action":"run_command","value":"/trigger PZFlugz.1Wert set 6"} },{"text":"Geradeaus","color":"gray","bold":true},{"text":"\nneigung = ","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für Unten"} },"clickEvent":{"action":"run_command","value":"/trigger PZFlugz.1Wert set 7"} },{"text":"Unten","color":"gray","bold":true},{"text":"\nneigung == ","bold":true},{"entity":"@e[type=minecraft:armor_stand,tag=EtiFlugz.1Neigung,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"\ntempomat (","bold":true},{"text":"wahr","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für aktiven Tempomat"} },"clickEvent":{"action":"run_command","value":"/trigger PZFlugz.1Wert set 8"} },{"text":"!","bold":true},{"text":"falsch","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für inaktiven Tempomat"} },"clickEvent":{"action":"run_command","value":"/trigger PZFlugz.1Wert set 9"} },{"text":") == ","bold":true},{"entity":"@e[type=minecraft:armor_stand,tag=EtiFlugz.1Tempomat,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"\naußenansicht (","bold":true},{"text":"wahr","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für die Außenansicht"} },"clickEvent":{"action":"run_command","value":"/trigger PZFlugz.1Wert set 10"} },{"text":"!","bold":true},{"text":"falsch","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für die Innenansicht"} },"clickEvent":{"action":"run_command","value":"/trigger PZFlugz.1Wert set 11"} },{"text":") == ","bold":true},{"entity":"@e[type=minecraft:armor_stand,tag=EtiFlugz.1Aussenansicht,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"\nfahren(richtung,neigung)","color":"gray","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Flugzeug fliegen"} },"clickEvent":{"action":"run_command","value":"/trigger PZFlugz.1Wert set 12"} } ]

# Von der Position des Flugzeug-Rüstungsständers erhält der Pilot die Erlaubnis den Auslöser wieder zu betätigen und sein Wert wird wieder auf null gesetzt.
execute at @e[type=minecraft:armor_stand,tag=EtiFlugz.1Flugzeug] as @p[distance=..28,team=TMFlugz.1Pilot] unless entity @s[scores={PZFlugz.1Wert=0}] run scoreboard players enable @s PZFlugz.1Wert
execute at @e[type=minecraft:armor_stand,tag=EtiFlugz.1Flugzeug] as @p[distance=..28,team=TMFlugz.1Pilot] unless entity @s[scores={PZFlugz.1Wert=0}] run scoreboard players set @s PZFlugz.1Wert 0

# Wenn die Außenansicht aktivert wurde, so wird der Aussenansichts-Rüstungsständer von der Rotation her so teleportiert, dass er die gleiche Ausrichtung besitzt wie der Spieler. Anschließend wird von Rüstungsständer aus 20 Meter hinter ihm der Spieler teleportiert, sodass der Spieler eine dritte-Person-Ansicht für das Flugzeug erhält.
execute as @e[type=minecraft:armor_stand,tag=EtiFlugz.1Aussenansicht,name="wahr",sort=nearest,limit=1] positioned as @s rotated as @p[team=TMFlugz.1Pilot] run teleport @s ~ ~ ~ ~ ~
execute if entity @e[type=minecraft:armor_stand,tag=EtiFlugz.1Aussenansicht,name="wahr",sort=nearest,limit=1] as @p[team=TMFlugz.1Pilot] at @e[type=minecraft:armor_stand,tag=EtiFlugz.1Aussenansicht,sort=nearest,limit=1] run teleport @s ^ ^0.5 ^-20

# Wenn der Tempomat eingeschaltet wurde, so wird dem dazugehörigen Rüstungsständer ein Wert jeden Tick erhöht und beim Wert vier wieder auf null gesetzt. Wenn der Wert genau eins ist, wird dem Spieler der Wert zwölf gegeben, damit das Flugzeug in die entsprechende Richtung automatisch fliegt.
scoreboard players add @e[type=minecraft:armor_stand,tag=EtiFlugz.1Tempomat,name="wahr",sort=nearest,limit=1] PZFlugz.1Wert 1
scoreboard players set @e[type=minecraft:armor_stand,tag=EtiFlugz.1Tempomat,name="wahr",scores={PZFlugz.1Wert=4..},sort=nearest,limit=1] PZFlugz.1Wert 0
execute at @e[type=minecraft:armor_stand,tag=EtiFlugz.1Tempomat,name="wahr",scores={PZFlugz.1Wert=1},sort=nearest,limit=1] run scoreboard players set @p[distance=..28,team=TMFlugz.1Pilot] PZFlugz.1Wert 12

Variante 1: Steuern-Funktion
Die Steuern-Funktion reagiert auf die angeklickten Optionen und realisiert so, dass die Richtung, die Neigung, der Tempomat und die Aussenansicht ermöglicht werden.

Editor Icon.png luftschiff:v1steuern.mcfunction
# Wenn der Spieler den Chat angeklickt hat und dabei für den Auslöser den Wert eins bis vier hat, wird damit die entsprechende Richtung eingestellt.
execute if entity @p[distance=..28,team=TMFlugz.1Pilot,scores={PZFlugz.1Wert=1}] run data merge entity @s {CustomName:'{"bold":true,"color":"blue","text":"Norden"}',Rotation:[180.0f,0.0f]}
execute if entity @p[distance=..28,team=TMFlugz.1Pilot,scores={PZFlugz.1Wert=2}] run data merge entity @s {CustomName:'{"bold":true,"color":"gold","text":"Osten"}',Rotation:[270.0f,0.0f]}
execute if entity @p[distance=..28,team=TMFlugz.1Pilot,scores={PZFlugz.1Wert=3}] run data merge entity @s {CustomName:'{"bold":true,"color":"blue","text":"Süden"}',Rotation:[0.0f,0.0f]}
execute if entity @p[distance=..28,team=TMFlugz.1Pilot,scores={PZFlugz.1Wert=4}] run data merge entity @s {CustomName:'{"bold":true,"color":"gold","text":"Westen"}',Rotation:[90.0f,0.0f]}

# Wenn der Spieler im Chat auf die Neiugung geklickt hat, wird der entsprechende Wert die Neigung einstellen.
execute if entity @p[distance=..28,team=TMFlugz.1Pilot,scores={PZFlugz.1Wert=5}] run data merge entity @e[distance=..2,type=minecraft:armor_stand,tag=EtiFlugz.1Neigung,sort=nearest,limit=1] {CustomName:'{"bold":true,"color":"green","text":"Oben"}'}
execute if entity @p[distance=..28,team=TMFlugz.1Pilot,scores={PZFlugz.1Wert=6}] run data merge entity @e[distance=..2,type=minecraft:armor_stand,tag=EtiFlugz.1Neigung,sort=nearest,limit=1] {CustomName:'{"bold":true,"color":"aqua","text":"Geradeaus"}'}
execute if entity @p[distance=..28,team=TMFlugz.1Pilot,scores={PZFlugz.1Wert=7}] run data merge entity @e[distance=..2,type=minecraft:armor_stand,tag=EtiFlugz.1Neigung,sort=nearest,limit=1] {CustomName:'{"bold":true,"color":"red","text":"Unten"}'}

# Wenn der Spieler die Option des Tempomat angeklickt hat, so wird dieser entweder aktiviert oder deaktiviert.
execute if entity @p[distance=..28,team=TMFlugz.1Pilot,scores={PZFlugz.1Wert=8}] run data merge entity @e[type=minecraft:armor_stand,tag=EtiFlugz.1Tempomat,sort=nearest,limit=1] {CustomName:'{"bold":true,"color":"green","text":"wahr"}'}
execute if entity @p[distance=..28,team=TMFlugz.1Pilot,scores={PZFlugz.1Wert=9}] run data merge entity @e[type=minecraft:armor_stand,tag=EtiFlugz.1Tempomat,sort=nearest,limit=1] {CustomName:'{"bold":true,"color":"red","text":"falsch"}'}

# Für die Aussenansicht kann der Spieler ebenfalls diese Option aktivieren oder deaktivieren. Der Spieler wird dabei in den Zuschauermodus versetzt oder wieder zurück in den Kreativmodus.
execute if entity @p[distance=..28,team=TMFlugz.1Pilot,scores={PZFlugz.1Wert=10}] run data merge entity @e[type=minecraft:armor_stand,tag=EtiFlugz.1Aussenansicht,sort=nearest,limit=1] {CustomName:'{"bold":true,"color":"green","text":"wahr"}'}
execute run gamemode spectator @p[distance=..28,team=TMFlugz.1Pilot,scores={PZFlugz.1Wert=10}]
execute if entity @p[distance=..28,team=TMFlugz.1Pilot,scores={PZFlugz.1Wert=11}] run data merge entity @e[type=minecraft:armor_stand,tag=EtiFlugz.1Aussenansicht,sort=nearest,limit=1] {CustomName:'{"bold":true,"color":"red","text":"falsch"}'}
execute run gamemode creative @p[distance=..28,team=TMFlugz.1Pilot,scores={PZFlugz.1Wert=11}]
execute run teleport @p[distance=..28,team=TMFlugz.1Pilot,scores={PZFlugz.1Wert=11}] ~ ~ ~

# Falls der Spieler auf die Fahren-Option geklickt hat, wird die Flugzeug-Funktion geladen
execute if entity @p[distance=..28,team=TMFlugz.1Pilot,scores={PZFlugz.1Wert=12}] run function flugzeug:v1flugzeug

Variante 1: Flugzeug-Funktion
Die Flugzeug-Funktion platziert das Flugzeug mittels Konstruktionsblöcken in die entsprechende Richtung und räumt den Abraum der beim Fliegen entsteht beiseite.

Editor Icon.png luftschiff:v1flugzeug.mcfunction
# Bevor das Flugzeug in die neue Richtung bewegt wird, werden Akaziendruckplatten durch Luft ersetzt, die beim normalen Ersetzen droppen würden.
fill ~15 ~15 ~15 ~-15 ~-4 ~-15 minecraft:air replace minecraft:acacia_pressure_plate

# Wenn der Spieler das Flugzeug um 90° oder 180° dreht würden manche Teile davon weiterhin in der Luft bleiben, diese werden überprüft und entfernt
execute rotated ~ 0 run fill ^-1 ^-1 ^-15 ^1 ^4 ^-18 minecraft:air replace

execute rotated ~ 0 if block ^11 ^ ^ minecraft:white_concrete run fill ^3 ^-2 ^-3 ^15 ^4 ^10 minecraft:air replace
execute rotated ~ 0 if block ^-11 ^ ^ minecraft:white_concrete run fill ^-3 ^-2 ^-3 ^-15 ^4 ^10 minecraft:air replace

execute rotated ~ 0 if block ^ ^-1 ^5 minecraft:white_concrete run fill ^-7 ^-2 ^5 ^7 ^4 ^15 minecraft:air replace

# Der Flugzeug-Rüstungsständer wie auch der Spieler werden von ihrer Position je nach Neigung entsprechend nach vorne teleportiert.
execute if entity @e[distance=..2,type=minecraft:armor_stand,tag=EtiFlugz.1Neigung,name="Oben"] run teleport @s ^ ^1 ^1
execute if entity @e[distance=..2,type=minecraft:armor_stand,tag=EtiFlugz.1Neigung,name="Oben"] run teleport @p[distance=..10,team=TMFlugz.1Pilot] ~ ~ ~

execute if entity @e[distance=..2,type=minecraft:armor_stand,tag=EtiFlugz.1Neigung,name="Geradeaus"] rotated ~ 0 run teleport @s ^ ^ ^1
execute if entity @e[distance=..2,type=minecraft:armor_stand,tag=EtiFlugz.1Neigung,name="Geradeaus"] rotated ~ 0 run teleport @p[distance=..10,team=TMFlugz.1Pilot] ^ ^ ^1

execute if entity @e[distance=..2,type=minecraft:armor_stand,tag=EtiFlugz.1Neigung,name="Unten"] run teleport @s ^ ^-1 ^1
execute if entity @e[distance=..2,type=minecraft:armor_stand,tag=EtiFlugz.1Neigung,name="Unten"] run teleport @p[distance=..10,team=TMFlugz.1Pilot] ~ ~ ~

# Je nach Name des Rüstungsständers, welcher von dem Blickwinkel abhängt, wird ein Konstruktionsblock mit entsprechender Rotation platziert
execute if entity @s[name="Osten"] run setblock ~ ~-2 ~ minecraft:structure_block{rotation:"NONE",mode:"LOAD",posX:-14,posY:0,posZ:-10,name:"flugzeug:v1flugzeug"} replace
execute if entity @s[name="Süden"] run setblock ~ ~-2 ~ minecraft:structure_block{rotation:"CLOCKWISE_90",mode:"LOAD",posX:10,posY:0,posZ:-14,name:"flugzeug:v1flugzeug"} replace
execute if entity @s[name="Westen"] run setblock ~ ~-2 ~ minecraft:structure_block{rotation:"CLOCKWISE_180",mode:"LOAD",posX:14,posY:0,posZ:10,name:"flugzeug:v1flugzeug"} replace
execute if entity @s[name="Norden"] run setblock ~ ~-2 ~ minecraft:structure_block{rotation:"COUNTERCLOCKWISE_90",mode:"LOAD",posX:-10,posY:0,posZ:14,name:"flugzeug:v1flugzeug"} replace

# Neben dem Konstruktionsblock wird ein Redstone-Block platziert um diesen zu aktivieren
setblock ~1 ~-2 ~ minecraft:redstone_block replace

Variante 1: Stopp-Funktion
Die Stopp-Funktion löscht das Punktestand-Ziel, das Team, das Flugzeug und alle Gegenstände, Drops und Objekte die für das Flugzeug nötig waren.

Editor Icon.png luftschiff:v1stopp.mcfunction
# Das Punktestand-Ziel wird entfernt.
scoreboard objectives remove PZFlugz.1Wert

# Das Team der Piloten wird entfernt.
team remove TMFlugz.1Pilot

# Das Flugzeug wird durch Luft ersetzt.
execute at @e[type=minecraft:armor_stand,tag=EtiFlugz.1Flugzeug] run fill ^10 ^3 ^4 ^-10 ^-1 ^-15 minecraft:air replace

# Die Akazientüren und -druckplatten werden mit einem Etikett ausgestattet und anschließend werden alle Flugzeug-Objekte entfernt.
execute at @e[type=minecraft:armor_stand,tag=EtiFlugz.1Flugzeug] run tag @e[distance=..100,type=minecraft:item,nbt={Item:{id:"minecraft:acacia_door"} }] add EtiFlugz.1Alle
execute at @e[type=minecraft:armor_stand,tag=EtiFlugz.1Flugzeug] run tag @e[distance=..100,type=minecraft:item,nbt={Item:{id:"minecraft:acacia_pressure_plate"} }] add EtiFlugz.1Alle
kill @e[tag=EtiFlugz.1Alle]

Variante 2[Bearbeiten | Quelltext bearbeiten]

Roter Sand.png
Diese neue oder überarbeitete Technik ist noch nicht in der aktuellen Mechanik-Welt vorhanden.
In einem der nächsten Updates wird sie dort hinzugefügt werden.

Flugzeug (Befehle) Bild 2.1.png Flugzeug (Befehle) Bild 2.2.png Flugzeug (Befehle) Bild 2.3.png

Dieses Flugzeug lässt sich durch ein Steuerkreuz das man in der Hand ausgewählt hat und durch die Richtung in die man läuft steuern. Das Flugzeug lässt sich in alle vier Himmelsrichtungen manövieren. Man kann sich in eine Lore setzen um in die dritte-Person-Ansicht zu gelangen. Auch in dieser Ansicht kann der Spieler das Flugzeug durch das Bewegen der Lore steuern. Wenn er aussteigt gelangt er wieder in das Cockpit des Flugzeuges.

Einschalten
  • Befehl 2.1 Wenn der Hebel umgelegt wird, wird die Start-Funktion gestartet.
Wiederholen
  • Befehl 2.2 Beim Einschalten wird auch der Wiederhol-Befehlsblock gestartet, der jeden Tick die Zyklus-Funktion lädt.
Ausschalten
  • Befehl 2.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:


Variante 2: Start-Funktion
Die Start-Funktion erstellt ein Piloten-Team, das zusätzlich auch Kollisionen zwischen Mitgliedern vermeidet. Der Spieler wird an die mögliche Position des Flugzeugs teleportiert und alle Rüstungsständer werden erzeugt die für das Flugzeug nötig sind. Ebenfalls wird ein Dorfbewohner erzeugt, der als Copilot den Spieler unterstützt, wenn er gerade in der Außenansicht zugegen ist.

Editor Icon.png luftschiff:v2start.mcfunction
# Das Team für Piloten wird erstellt und der nächstgelegene Spieler wird in dieses gesteckt. Das Team sorgt außerdem dafür dass die Mitglieder nicht kollidieren.
team add TMFlugz.2Pilot ["Flugzeug.2: ",{"text":"Piloten","bold":true}]
team modify TMFlugz.2Pilot collisionRule never
team join TMFlugz.2Pilot @p[distance=..5,team=!TMFlugz.2Pilot]

# Der Flugzeug-Rüstungsständer mit einem zweiten huckepack, wird 25 Meter über der Befehlsquelle erzeugt.
summon minecraft:armor_stand ~ ~25.5 ~ {Small:true,NoGravity:true,Invisible:true,CustomName:'{"text":"Westen","color":"gold","bold":true}',Tags:["EtiFlugz.2Alle","EtiFlugz.2Flugzeug","EtiFlugz.2Richtung"],Rotation:[90.0f,0.0f],Passengers:[{id:"minecraft:armor_stand",Small:true,NoGravity:true,Invisible:true,CustomName:'{"text":"Geradeaus","color":"aqua","bold":true}',Tags:["EtiFlugz.2Alle","EtiFlugz.2Neigung"]}]}

# Einen Block unter dem Flugzeug-Rüstungsständer wird ein Eichenholzbrett platziert, damit der Spieler bei der Teleportation auf festen Untegrund steht.
execute at @e[type=minecraft:armor_stand,tag=EtiFlugz.2Flugzeug] run setblock ~-1 ~-1 ~ minecraft:red_concrete replace
execute at @e[type=minecraft:armor_stand,tag=EtiFlugz.2Flugzeug] run teleport @p[team=TMFlugz.2Pilot] ~-1 ~ ~

# Ein Rüstungsständer mit Lore wird erzeugt, in die der Spieler steigen kann um die Aussenansicht zu nutzen.
execute at @e[type=minecraft:armor_stand,tag=EtiFlugz.2Flugzeug] run summon minecraft:armor_stand ~-1 ~ ~ {Invulnerable:true,Invisible:true,NoGravity:true,Marker:true,Tags:["EtiFlugz.2Alle","EtiFlugz.2Halter"],Passengers:[{id:"minecraft:minecart",NoGravity:true,Invulnerable:true,Tags:["EtiFlugz.2Alle","EtiFlugz.2Sitz"]}]}

# Ein Dorfbewohner wird erzeugt, der als Copilot fungiert. Immer wenn der Spieler in der Aussenansicht sich gerade befindet, lenkt er den Copiloten um so das Flugzeug zu lenken.
execute at @e[type=minecraft:armor_stand,tag=EtiFlugz.2Flugzeug] run summon minecraft:villager ~-1 ~ ~ {Invulnerable:true,Silent:true,NoGravity:true,PersistenceRequired:true,CustomName:'{"text":"Copilot","bold":true}',Team:"TMFlugz.2Pilot",Tags:["EtiFlugz.2Alle","EtiFlugz.2PilotenSteuer"],Offers:{Recipes:[]},ActiveEffects:[{Id:2b,Amplifier:100b,Ambient:false,ShowParticles:false,Duration:2147483647},{Id:14b,Amplifier:0b,Ambient:false,ShowParticles:false,Duration:2147483647}],Attributes:[{Name:"generic.knockbackResistance",Base:"1f"},{Name:"generic.movementSpeed",Base:"0f"}]}

# Dem Piloten wird ein Holzschwert mit dem Namen Steuerkreuz gegeben. Damit lässt sich das Flugzeug steuern. Der Spieler bekommt außerdem ein Etikett, das dafür sorgt dass er im nächsten Tick das Flugzeug erstellt.
give @p[team=TMFlugz.2Pilot] minecraft:wooden_sword{flugzeug:"v2gegenstand",AttributeModifiers:[{AttributeName:"generic.attackDamage",Amount:-1,Name:"Extraschaden",Operation:0,UUIDLeast:1,UUIDMost:1,Slot:"mainhand"}],Unbreakable:true,Enchantments:[{id:-1}],HideFlags:6,display:{Name:'{"text":"Steuerkreuz","color":"gold","bold":true}',Lore:['"Wähle das Steuerkreuz"','"aus, um das Flugzeug zu fliegen"']} }
tag @p[team=TMFlugz.2Pilot] add EtiFlugz.2Steuer

# Eine Nachricht an den Piloten, damit dieser weiss was er machen muss um das Flugzeug zu fahren.
tellraw @p[team=TMFlugz.2Pilot] ["Luftschiff.2: ",{"text":"Wähle das Steuerkreuz aus und laufe in die gewünschte Richtung um das Flugzeug zu fliegen. Klicke auf die Lore, um das Flugzeug von außen zu betrachten. Man kann das Flugzeug auch während man in der Lore ist steuern. Wenn man die Lore verlässt befindet man sich wieder im Flugzeug.","bold":true}]

Variante 2: Zyklus-Funktion
Die Zyklus-Funktion prüft ob der Spieler sich in eine der vier Himmelsrichtungen bewegt hat und dabei auch das Steuerkreuz in der Hand ausgewählt hat. Wenn das dem entspricht, wird die Flugzeug-Funktion geladen. Ebenfalls wird geprüft ob der Spieler die Aussenansicht gestartet hat, falls dem so ist, wird die Dritte-Ansicht-Funktion geladen.

Editor Icon.png luftschiff:v2zyklus.mcfunction
# Nur wenn der Spieler das Holzschwert ausgewählt hat, bekommt er ein Etikett, wenn er in der Nähe der Lore sich befindet, die auf dem Halter-Rüstungsständer sitzt. Der Copilot erhält dann auch das Etikett.
execute at @e[type=minecraft:armor_stand,tag=EtiFlugz.2Halter,sort=nearest,limit=1] run tag @a[distance=..10,team=TMFlugz.2Pilot,nbt={SelectedItem:{id:"minecraft:wooden_sword",tag:{flugzeug:"v2gegenstand"} } }] add EtiFlugz.2Steuer
execute if entity @p[tag=EtiFlugz.2Steuer] run tag @e[type=minecraft:villager,tag=EtiFlugz.2PilotenSteuer] add EtiFlugz.2Steuer

# Nur wenn der Spieler sich etwas mehr als einen halben Meter vom Flugzeug-Rüstungsständer entfernt und dabei auf roten Beton (Teil des Flugzeugs) steht, wird dem Rüstungsständer ein Etikett gegeben.
execute as @e[type=minecraft:armor_stand,tag=EtiFlugz.2Flugzeug] at @s at @e[distance=0.8..1.4,team=TMFlugz.2Pilot,tag=EtiFlugz.2Steuer,sort=nearest,limit=1] if block ~ ~-1 ~ minecraft:red_concrete run tag @s add EtiFlugz.2Fahren

# Je nach Blickwinkel des Spielers bekommt der Flugzeug-Rüstungsständer den Namen Oben, Geradeaus oder Unten.
execute as @e[type=minecraft:armor_stand,tag=EtiFlugz.2Fahren] at @s if entity @e[distance=0.8..1.4,team=TMFlugz.2Pilot,tag=EtiFlugz.2Steuer,x_rotation=-90..-45,sort=nearest,limit=1] run data merge entity @e[distance=..2,type=minecraft:armor_stand,tag=EtiFlugz.2Neigung,sort=nearest,limit=1] {CustomName:'{"bold":true,"color":"green","text":"Oben"}'}
execute as @e[type=minecraft:armor_stand,tag=EtiFlugz.2Fahren] at @s if entity @e[distance=0.8..1.4,team=TMFlugz.2Pilot,tag=EtiFlugz.2Steuer,x_rotation=-45..45,sort=nearest,limit=1] run data merge entity @e[distance=..2,type=minecraft:armor_stand,tag=EtiFlugz.2Neigung,sort=nearest,limit=1] {CustomName:'{"bold":true,"color":"aqua","text":"Geradeaus"}'}
execute as @e[type=minecraft:armor_stand,tag=EtiFlugz.2Fahren] at @s if entity @e[distance=0.8..1.4,team=TMFlugz.2Pilot,tag=EtiFlugz.2Steuer,x_rotation=45..90,sort=nearest,limit=1] run data merge entity @e[distance=..2,type=minecraft:armor_stand,tag=EtiFlugz.2Neigung,sort=nearest,limit=1] {CustomName:'{"bold":true,"color":"red","text":"Unten"}'}

# Der Flugzeug-Rüstungsständer wird an der neuen Position des Spielers zentriert teleportiert, mit Blickrichtung.
execute as @e[type=minecraft:armor_stand,tag=EtiFlugz.2Fahren] at @s at @e[distance=0.8..1.4,team=TMFlugz.2Pilot,tag=EtiFlugz.2Steuer,sort=nearest,limit=1] align xz run teleport @s ~0.5 ~ ~0.5 ~ ~

# Wenn der Rüstungsständer in eine Richtung schaut in die er bisher noch nicht geschaut hat (Name), wird er genau in die Himmelsrichtung ausgerichtet und bekommt als Namen den der Himmelsrichtung.
execute as @e[type=minecraft:armor_stand,tag=EtiFlugz.2Fahren,name=!"Norden",y_rotation=135..-135] run data merge entity @s {CustomName:'{"bold":true,"color":"blue","text":"Norden"}',Rotation:[180.0f,0.0f]}
execute as @e[type=minecraft:armor_stand,tag=EtiFlugz.2Fahren,name=!"Osten",y_rotation=-135..-45] run data merge entity @s {CustomName:'{"bold":true,"color":"gold","text":"Osten"}',Rotation:[270.0f,0.0f]}
execute as @e[type=minecraft:armor_stand,tag=EtiFlugz.2Fahren,name=!"Süden",y_rotation=-45..45] run data merge entity @s {CustomName:'{"bold":true,"color":"blue","text":"Süden"}',Rotation:[0.0f,0.0f]}
execute as @e[type=minecraft:armor_stand,tag=EtiFlugz.2Fahren,name=!"Westen",y_rotation=45..135] run data merge entity @s {CustomName:'{"bold":true,"color":"gold","text":"Westen"}',Rotation:[90.0f,0.0f]}

# Der Flugzeug-Rüstungsständer ruft die Flugzeug-Funktion auf, wenn dieser das Etikett bekommen hat, welches vergeben wird, wenn der Spieler mit dem Flugzeug fliegen möchte.
execute as @e[type=minecraft:armor_stand,tag=EtiFlugz.2Fahren] at @s run function flugzeug:v2flugzeug

# Nur wenn der Spieler das Etikett noch nicht besitzt und in einer Lore sitzt, die auf dem Halter-Rüstungsständer sitzt, dann erhält er das Etikett.
tag @p[team=TMFlugz.2Pilot,tag=!EtiFlugz.2Ansicht,nbt={RootVehicle:{Entity:{Tags:["EtiFlugz.2Halter"]} } }] add EtiFlugz.2Ansicht

# Nur wenn der Spieler nicht in der Lore sitzt, wird die Lore samt Halter-Rüstungsständer zum Copiloten teleportiert.
execute unless entity @p[tag=EtiFlugz.2Ansicht] at @e[type=minecraft:villager,tag=EtiFlugz.2PilotenSteuer] run teleport @e[type=minecraft:armor_stand,tag=EtiFlugz.2Halter] ~ ~ ~

# Wenn der Spieler in der Lore sitzt, wird die Dritte-Ansicht-Funktion geladen.
execute as @p[tag=EtiFlugz.2Ansicht] at @s run function flugzeug:v2dritte_ansicht

# Wenn der Spieler nicht mehr in der Lore sitzt, wird er wieder zum Copiloten teleportiert.
execute at @e[type=minecraft:villager,tag=EtiFlugz.2PilotenSteuer] run teleport @p[tag=EtiFlugz.2Ansicht,nbt=!{RootVehicle:{} }] ~ ~ ~
tag @p[tag=EtiFlugz.2Ansicht,nbt=!{RootVehicle:{} }] remove EtiFlugz.2Ansicht

# Der Rüstungsständer wie auch der Spieler bekommen das jeweilige Etikett entfernt wenn sie es besaßen.
tag @e[type=minecraft:armor_stand,tag=EtiFlugz.2Fahren] remove EtiFlugz.2Fahren
tag @e[tag=EtiFlugz.2Steuer] remove EtiFlugz.2Steuer

Variante 2: Flugzeug-Funktion
Die Flugzeug-Funktion positioniert das Flugzeug und räumt alles weg was das Flugzeug hinterlassen hat. Das Flugzeug wird durch Konstruktionsblöcke entsprechend der gewünschten Richtung geladen. Das Alias #flugzeug:v2drop-bloecke wird verwendet um die Blöcke ausfindig zu machen die beim laden des Flugzeuges droppen würden. Diese werden zuvor durch Luft ersetzt.

Editor Icon.png luftschiff:v2flugzeug.mcfunction
# Bevor das Flugzeug in die neue Richtung bewegt wird, werden alle Blöcke durch Luft ersetzt, die beim normalen Ersetzen droppen würden.
fill ~15 ~15 ~15 ~-15 ~-4 ~-15 minecraft:air replace #flugzeug:v2drop-bloecke

# Wenn der Spieler das Flugzeug um 90° oder 180° dreht, würden manche Teile davon weiterhin in der Luft bleiben, diese werden überprüft und entfernt.
execute rotated ~ 0 run fill ^-6 ^3 ^-22 ^6 ^9 ^-26 minecraft:air replace

execute rotated ~ 0 if block ^16 ^ ^ minecraft:red_concrete run fill ^6 ^-2 ^14 ^22 ^8 ^-6 minecraft:air replace
execute rotated ~ 0 if block ^-16 ^ ^ minecraft:red_concrete run fill ^-6 ^-2 ^14 ^-22 ^8 ^-6 minecraft:air replace

execute rotated ~ 0 if block ^ ^-1 ^7 minecraft:red_concrete run fill ^-15 ^-4 ^7 ^15 ^9 ^21 minecraft:air replace

# Der Copilot wird an die Position des Spielers teleportiert, wenn dieser in der Nähe ist und nicht in der Aussenansicht sich befindet.
execute at @p[distance=..10,team=TMFlugz.2Pilot] run teleport @e[type=minecraft:villager,tag=EtiFlugz.2PilotenSteuer] ~ ~ ~ ~ ~

# Der Flugzeug-Rüstungsständer wie auch der Spieler werden von ihrer Position, entsprechend der Neigung, um einen Meter nach vorne teleportiert
execute if entity @e[distance=..2,type=minecraft:armor_stand,tag=EtiFlugz.2Neigung,name="Oben"] run teleport @s ^ ^1 ^1
execute if entity @e[distance=..2,type=minecraft:armor_stand,tag=EtiFlugz.2Neigung,name="Oben"] run teleport @p[distance=..10,team=TMFlugz.2Pilot] ~ ~ ~

execute if entity @e[distance=..2,type=minecraft:armor_stand,tag=EtiFlugz.2Neigung,name="Geradeaus"] rotated ~ 0 run teleport @s ^ ^ ^1
execute if entity @e[distance=..2,type=minecraft:armor_stand,tag=EtiFlugz.2Neigung,name="Geradeaus"] rotated ~ 0 run teleport @p[distance=..10,team=TMFlugz.2Pilot] ^ ^ ^1

execute if entity @e[distance=..2,type=minecraft:armor_stand,tag=EtiFlugz.2Neigung,name="Unten"] run teleport @s ^ ^-1 ^1
execute if entity @e[distance=..2,type=minecraft:armor_stand,tag=EtiFlugz.2Neigung,name="Unten"] run teleport @p[distance=..10,team=TMFlugz.2Pilot] ~ ~ ~

# Je nach Blickrichtung des Spielers wird ein Konstruktionsblock mit entsprechender Rotation platziert.
execute if entity @s[name="Osten"] run setblock ~ ~-4 ~ minecraft:structure_block{rotation:"NONE",mode:"LOAD",posX:-21,posY:0,posZ:-15,name:"flugzeug:v2flugzeug"} replace
execute if entity @s[name="Süden"] run setblock ~ ~-4 ~ minecraft:structure_block{rotation:"CLOCKWISE_90",mode:"LOAD",posX:15,posY:0,posZ:-21,name:"flugzeug:v2flugzeug"} replace
execute if entity @s[name="Westen"] run setblock ~ ~-4 ~ minecraft:structure_block{rotation:"CLOCKWISE_180",mode:"LOAD",posX:21,posY:0,posZ:15,name:"flugzeug:v2flugzeug"} replace
execute if entity @s[name="Norden"] run setblock ~ ~-4 ~ minecraft:structure_block{rotation:"COUNTERCLOCKWISE_90",mode:"LOAD",posX:-15,posY:0,posZ:21,name:"flugzeug:v2flugzeug"} replace

# Neben dem Konstruktionsblock wird ein Redstone-Block platziert um diesen zu aktivieren.
setblock ~1 ~-4 ~ minecraft:redstone_block replace
JSON Icon.png flugzeug:v2drop-bloecke.json
{
  "values":[
  "minecraft:stone_button",
  "minecraft:iron_door",
  "minecraft:redstone_torch"
  ]
}

Variante 2: Dritte-Ansicht-Funktion
Die Dritte-Ansicht-Funktion ermöglicht es dem Spieler, aus der dritten-Person-Ansicht das Flugzeug zu sehen und zu steuern. Wenn der Spieler gerade sich dort aufhält, wird alles über den Copiloten geregelt, welcher die Ausrichtung und die Bewegung des Spielers übernimmt.

Editor Icon.png luftschiff:v2dritte_ansicht.mcfunction
# Wenn der Spieler in der Lore sich in eine beliebige Richtung bewegen will, so wird deren Bewegung benutzt und in den Copiloten übertragen.
execute if entity @p[tag=EtiFlugz.2Steuer] store result entity @e[type=minecraft:villager,tag=EtiFlugz.2PilotenSteuer,limit=1,sort=nearest] Motion[0] double 0.00175 run data get entity @s Motion[0] 10000
execute if entity @p[tag=EtiFlugz.2Steuer] store result entity @e[type=minecraft:villager,tag=EtiFlugz.2PilotenSteuer,limit=1,sort=nearest] Motion[2] double 0.00175 run data get entity @s Motion[2] 10000

# Wenn der Spieler in der Lore sitzt, wird der Copilot von der Rotation genauso ausgerichtet wie der Spieler. Anschließend wird der Spieler 30 Meter genau hinter ihm in seiner Blickrichtung teleportiert. So erhält der Spieler die dritte-Person-Ansicht.
execute as @e[type=minecraft:villager,tag=EtiFlugz.2PilotenSteuer,sort=nearest,limit=1] positioned as @s rotated as @p[team=TMFlugz.2Pilot] run teleport @s ~ ~ ~ ~ ~
execute as @e[type=minecraft:armor_stand,tag=EtiFlugz.2Halter,sort=nearest,limit=1] at @e[type=minecraft:villager,tag=EtiFlugz.2PilotenSteuer,sort=nearest,limit=1] run teleport @s ^ ^0.5 ^-30

Variante 2: Stopp-Funktion
Die Stopp-Funktion löscht das Team wieder und das Steuerkreuz, sowie das Flugzeug und die dafür benötigten Gegenstände, Drops und Objekte.

Editor Icon.png luftschiff:v2stopp.mcfunction
# Das Team der Piloten wird entfernt.
team remove TMFlugz.2Pilot

# Das Holzschwert mit entsprechender Eigenschaft wird wieder entfernt.
clear @a minecraft:wooden_sword{flugzeug:"v2gegenstand"}

# Das Flugzeug wird durch Luft ersetzt und die droppenden Blöcke werden zuvor entfernt.
execute at @e[type=minecraft:armor_stand,tag=EtiFlugz.2Flugzeug] run fill ~23 ~10 ~23 ~-23 ~-3 ~-23 minecraft:air replace #flugzeug:v2drop-bloecke
execute at @e[type=minecraft:armor_stand,tag=EtiFlugz.2Flugzeug] run fill ~23 ~10 ~23 ~-23 ~-3 ~-23 minecraft:air replace

# Falls das Holzschwert gedroppt wurde, erhält es ein Etikett und wird mit samt aller Flugzeug-Objekte entfernt.
tag @e[type=minecraft:item,nbt={Item:{tag:{flugzeug:"v2gegenstand"} } }] add EtiFlugz.2Alle
kill @e[tag=EtiFlugz.2Alle]