Technik Wiki
Advertisement
Die druckbare Version wird nicht mehr unterstützt und kann Darstellungsfehler aufweisen. Bitte aktualisiere deine Browser-Lesezeichen und verwende stattdessen die Standard-Druckfunktion des Browsers.
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 Elytren-Abschussrampe (engl. "Elytra-Launcher") ermöglicht Spielern, ohne dass sie selbst Elytren besitzen müssen, mit diesen zu gleiten. Dazu stellt man sich auf die Abschussrampe und anschließend wird man aus dem Stand heraus mehrere hundert Blöcke nach oben katapultiert.

Variante 1

Elytren-Abschussrampe (Befehle) Bild 1.1 Elytren-Abschussrampe (Befehle) Bild 1.2 Elytren-Abschussrampe (Befehle) Bild 1.3

Die Elytren-Abschussrampe wird gebaut, sobald man einen der Rüstungsständer, die man in die Hand bekommen, hat platziert. Man klettert die Leiter hoch und stellt sich auf das karierte Feld. Anschließend wird man in die Luft hoch katapultiert. Ist man mit den Elytren bis zum Boden gegleitet, werden dieser wieder aus dem Inventar entfernt.

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 Rüstungsständer für das Platzieren von Abschussrampen und das Punkte-Ziel wird erstellt.

Editor Icon elytren-abschussrampe:v1start.mcfunction
# Das Punkte-Ziel für die Zeit in der Luft wird erstellt.
scoreboard objectives add PZElyAb.1Gleiten dummy ["Elytren-Abschussrampe.1: ",{"text":"Gleiten","bold":true}]

# Spielern im Umkreis von 15 Metern erhalten 16 Rüstungsständer mit denen man die Abschussrampe platzieren kann.
give @a[distance=..15] minecraft:armor_stand{EigElyAb.1Alle:true,EigElyAb.1Bauwerk:true,display:{Name:'{"text":"Elytren-Abschussrampe","color":"gold","bold":true}',Lore:['"Platziere den Rüstungsständer"','"um eine Abschussrampe"','"zu errichten."','"Wirf den Rüstungsständer"','"auf eine Abschussrampe"','"um sie wieder abzubauen"']},EntityTag:{Invisible:true,Marker:true,NoGravity:true,Tags:["EtiElyAb.1Alle","EtiElyAb.1Bauwerk"]} } 16

# Der Chunk wird dauerhaft geladen.
forceload add ~ ~


Variante 1: Zyklus-Funktion
Die Zyklus-Funktion sorgt durch Aufrufe von weiteren Funktionen dafür dass die Abschussrampe platziert werden kann, dass der Spieler hochgeschossen und wieder landen kann und auch dafür dass die Abschussrampe entfernt werden kann.

Editor Icon elytren-abschussrampe:v1zyklus.mcfunction
# Wenn die Abschussrampe platziert wurde oder abgebaut wurde, wird die Bauwerks-Funktion geladen.
execute at @e[type=minecraft:armor_stand,tag=EtiElyAb.1Bauwerk] if block ~ ~ ~ minecraft:air as @p[distance=..5] run function elytren-abschussrampe:v1bauwerk

# Nach zwei Ticks ist der Spieler weit ab vom Boden, sodass dann geprüft werden kann, ob der Spieler auf dem Boden ist oder keine Elytren mehr im Rüstungsslot hat. Nur dann wird die Landungs-Funktion geladen.
execute as @a[tag=EtiElyAb.1Abflug,scores={PZElyAb.1Gleiten=2..}] unless entity @s[nbt=!{OnGround:true},nbt={Inventory:[{Slot:102b,id:"minecraft:elytra"}]}] run function elytren-abschussrampe:v1landung

# Wenn sich in der Nähe der Abschussrampe Spieler aufhalten, so wird geprüft ob diese tatsächlich auf der Rampe stehen und nur dann wird die Abflug-Funktion geladen.
execute at @e[type=minecraft:armor_stand,tag=EtiElyAb.1Bauwerk] positioned ~ ~2 ~ as @a[distance=..2,tag=!EtiElyAb.1Abflug,nbt=!{Inventory:[{Slot:102b}]}] at @s if block ~ ~-1 ~ minecraft:oak_planks if block ~1 ~-1 ~ minecraft:oak_planks if block ~-1 ~-1 ~ minecraft:oak_planks if blocks ~1 ~-1 ~ ~-1 ~-1 ~ ~-1 ~-1 ~1 all if blocks ~1 ~-1 ~ ~-1 ~-1 ~ ~-1 ~-1 ~-1 all run function elytren-abschussrampe:v1abflug

# Jeden Tick bekommen Spieler die bereits mit Elytren unterwegs sind ihren Wert um eins erhöht.
scoreboard players add @a[tag=EtiElyAb.1Abflug] PZElyAb.1Gleiten 1

# Wenn in der Nähe der Abschussrampe ein Abschussrampen-Rüstungsständer gedroppt wurde, wird die Entfernen-Funktion geladen.
execute at @e[type=minecraft:armor_stand,tag=EtiElyAb.1Bauwerk] as @e[distance=..4,type=minecraft:item,nbt={Item:{tag:{EigElyAb.1Bauwerk:true} } },sort=nearest,limit=1] run function elytren-abschussrampe:v1entfernen


Variante 1: Bauwerks-Funktion
Die Bauwerks-Funktion platziert und richtet die Abschussrampe abhängig der Blickrichtung des Spielers entsprechend aus.

Editor Icon elytren-abschussrampe:v1bauwerk.mcfunction
# Der Konstruktionsblock wird mit den wichtigsten Daten platziert.
setblock ~ ~ ~ minecraft:structure_block{mode:"LOAD",name:"elytren-abschussrampe:v1abschussrampe",posY:0} replace

# Abhängig  der Blickrichtung des Rüstungsständers wird die Abschussrampe mit entsprechender Rotation platziert.
execute if entity @s[y_rotation=135..-135] run data merge block ~ ~ ~ {rotation:"CLOCKWISE_180",posX:3,posZ:3}
execute if entity @s[y_rotation=-135..-45] run data merge block ~ ~ ~ {rotation:"COUNTERCLOCKWISE_90",posX:-3,posZ:3}
execute if entity @s[y_rotation=-45..45] run data merge block ~ ~ ~ {rotation:"NONE",posX:-3,posZ:-3}
execute if entity @s[y_rotation=45..135] run data merge block ~ ~ ~ {rotation:"CLOCKWISE_90",posX:3,posZ:-3}

# Der Redstone-Block über den Konstruktionsblock platziert, sodass die Abschussrampe errichtet wird.
setblock ~ ~1 ~ minecraft:redstone_block replace


Variante 1: Abflug-Funktion
Die Abflug-Funktion sorgt dafür dass der Spieler die Elytren erhält und automatisch hochfliegt.

Editor Icon elytren-abschussrampe:v1abflug.mcfunction
# Der Spieler erhält die Elytren in dem Rüstungsslot.
item replace entity @s armor.chest with minecraft:elytra{EigElyAb.1Alle:true,EigElyAb.1Elytren:true,Enchantments:[{id:-1}],display:{Name:'{"text":"Leih-Elytren","color":"yellow","bold":true}',Lore:['"Rückgabe bei Landung"']} }

# Für den Abschuss erhält der Spieler den Effekt Schwebekraft und damit er bei einem eventuellen Aufprall nicht so viel Schaden erhält, bekommt er den Resistenz-Effekt, welcher unendlich lange gilt, solange er nicht landet.
effect give @s minecraft:levitation 1 100 true
effect give @s minecraft:resistance infinite 255 true

# Das Etikett wird vergeben um Spieler die gleiten einfacher zu erkennen.
tag @s add EtiElyAb.1Abflug


Variante 1: Landungs-Funktion
Die Landungs-Funktion sorgt dafür, dass die Elytren wieder entfernt werden und der Spieler dies mitgeteilt bekommt, ebenfalls wird sie auch verwendet, wenn der Spieler mitten in der Luft den Flug abbricht.

Editor Icon elytren-abschussrampe:v1landung.mcfunction
# Wenn der Spieler in der Luft die Elytren abnimmt, wird ihm das Etikett bereits jetzt entfernt, um in den nächsten Befehlen darauf zu reagieren.
tag @s[nbt=!{OnGround:true}] remove EtiElyAb.1Abflug

# Wenn der Spieler normal auf den Boden angekommen ist, wird ihm eine Nachricht über der Schnellleiste ausgegeben.
title @s[tag=EtiElyAb.1Abflug] actionbar ["",{"text":"Da du gelandet bist, wurden deine Elytren entfernt","color":"gold","bold":true}]

# Falls der Spieler mitten im Fall ist, wird ihm eine schlechte Nachricht ausgegeben.
title @s[tag=!EtiElyAb.1Abflug] actionbar ["",{"text":"Das war keine gute Idee! Du stürzt jetzt ab!","color":"red","bold":true}]

# Falls der Spieler die Elytren gedroppt hat, werden diese entfernt.
execute if entity @s[tag=!EtiElyAb.1Abflug] run kill @e[type=minecraft:item,nbt={Item:{tag:{EigElyAb.1Elytren:true} } }]

# Damit der Spieler beim freien Fall nicht zu Schaden kommt, erhält er den sanften-Fall-Effekt.
effect give @s[tag=!EtiElyAb.1Abflug] minecraft:slow_falling 20 1 true

# Die Elytren wird entfernt.
clear @s minecraft:elytra{EigElyAb.1Elytren:true}

# Die Gleit-Zeit wird wieder auf null zurück gesetzt.
scoreboard players set @s PZElyAb.1Gleiten 0

# Der unendliche Resistenz-Effekt wird entfernt.
effect clear @s minecraft:resistance

# Das Etikett für den Flug wird entfernt.
tag @s remove EtiElyAb.1Abflug


Variante 1: Entfernen-Funktion
Die Entfernen-Funktion entfernt die Abschussrampe und sorgt dafür, dass der geworfene Abschussrampen-Rüstungsständer wieder um eins erhöht wird.

Editor Icon elytren-abschussrampe:v1entfernen.mcfunction
# Die aktuelle Anzahl des Drops wird ausgelesen und um eins erhöht.
execute store result score VarElyAb.1Anzahl PZElyAb.1Gleiten run data get entity @s Item.Count
execute store result entity @s Item.Count byte 1 run scoreboard players add VarElyAb.1Anzahl PZElyAb.1Gleiten 1

# Die Abschussrampe wird entfernt, die droppenden Teppiche ebenfalls.
fill ~-3 ~ ~-3 ~3 ~3 ~3 minecraft:air replace
execute as @e[distance=..5,type=minecraft:item] unless entity @s[nbt=!{Item:{id:"minecraft:white_carpet"} },nbt=!{Item:{id:"minecraft:black_carpet"} },nbt=!{Item:{id:"minecraft:ladder"} }] run kill @s

# Der Bauwerks-Rüstungsständer wird entfernt.
kill @e[distance=..1,type=minecraft:armor_stand,tag=EtiElyAb.1Bauwerk,sort=nearest,limit=1]


Variante 1: Stopp-Funktion
Die Stopp-Funktion löscht das Punkte-Ziel, sowie die Rüstungsständer in der Hand wie auch in der Welt. Etiketten sowie die Bauwerke werden ebenfalls entfernt.

Editor Icon elytren-abschussrampe:v1stopp.mcfunction
# Das Punkte-Ziel wird gelöscht.
scoreboard objectives remove PZElyAb.1Gleiten

# Der Rüstungsständer in der Hand wird entfernt.
clear @a minecraft:armor_stand{EigElyAb.1Alle:true}

# Eventuell vorhandene Etiketten werden entfernt.
tag @a[tag=EtiElyAb.1Abflug] remove EtiElyAb.1Abflug

# Das Bauwerk wird entfernt, in dem die Entfernen-Funktion aufgerufen wird.
execute at @e[type=minecraft:armor_stand,tag=EtiElyAb.1Bauwerk] run function elytren-abschussrampe:v1entfernen

# Alle herum liegenden Gegenstände wie auch Objekte werden entfernt.
tag @e[type=minecraft:item,nbt={Item:{tag:{EigElyAb.1Alle:true} } }] add EtiElyAb.1Alle
kill @e[tag=EtiElyAb.1Alle]

# Der Chunk wird entladen.
forceload remove ~ ~
Advertisement