Technik Wiki
Registrieren
Advertisement
Gruppe: Grid Eichenholzboot
Seeverkehrsanlagen

Grid Roter Sand mit Mechaniken

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

Der Schnellkanal ermöglicht es, dass Boote extrem beschleunigt werden und die Kanalstrecke voll automatisch entlang fahren. Dabei gilt jedoch, dass man mit dem Befehl /data oder Befehl /teleport das Boot nur bewegen kann, wenn der Spieler nicht in diesem sitzt. Daher kann ein Schnellkanal nur auf die Weise funktionieren, dass der Spieler nicht direkter Passagier oder Steuermann des Bootes ist. Hierzu muss er mit Hilfe von dem Befehl /ride auf ein anderes Objekt umsteigen, welches Passagier des Bootes ist, nur dann lässt sich das Boot bewegen.

Variante 1[]

Schnellkanal (Befehle) Bild 1.1 Schnellkanal (Befehle) Bild 1.2

Dieser Schnellkanal ermöglicht das automatische Fahren eines Bootes in einer Kanalstrecke. Beim Einschalten erhält man ein Boot und ein Schwert. Sitzt man im Boot und wählt das Schwert aus, so beginnt das Boot von alleine zu fahren. Das Boot beschleunigt sehr stark und auf geraden Strecken kann man so extrem schnell damit rasen. Befindet sich beim Boot voraus kein Wasser, so dreht es sich nach links, bis wieder Wasser voraus ist. Es kann jedoch nicht Wasserfälle nach unten oder oben fahren.

Einschalten
Wiederholen
Ausschalten

Befehlsblöcke mit Befehlen:


Datenpaket



Variante 1: Start-Funktion
Die Start-Funktion erstellt das Punkte-Ziel und Spieler erhalten das Boot und Holzschwert.

Editor Icon schnellkanal:v1start.mcfunction
# Das Punkte-Ziel wird für die Zeitbestimmung und anderen Berechnungen angelegt.
scoreboard objectives add PZSchKa.1Wert dummy ["Schnellkanal.1: ",{"text":"Zeit und Werte","bold":true}]

# Spieler erhalten ein Boot, was sie platzieren können um mit diesem automatisch zu fahren.
give @a[distance=..15] minecraft:oak_boat{EigSchKa.1Alle:true,display:{Name:'{"text":"Schnellkanal-Boot","color":"dark_purple","bold":true}',Lore:['"Platziere das Boot"','"auf das Wasser"','"und setze dich rein,"','"damit es automatisch fährt."'] } }

# Spieler erhalten ein Holzschert, mit dem sie sitzend im Boot signalisieren können, dass sie automatisch fahren wollen.
give @a[distance=..15] minecraft:wooden_sword{EigSchKa.1Alle:true,EigSchKa.1Steuer:true,Unbreakable:true,HideFlags:6,AttributeModifiers:[{AttributeName:"minecraft:generic.attack_damage",Amount:-1,Name:"Extraschaden",Operation:0,UUID:[0,0,0,1],Slot:"mainhand"}],Enchantments:[{id:-1}],display:{Name:'{"text":"Steuer","color":"gold","bold":true}',Lore:['"Setze dich in das Boot"','"und wähle das Steuer aus"','"um das Boot zu starten."','"Sodass es selbständig fährt."'] } }

# Damit die Spieler sich von der Technik weit entfernen können.
forceload add ~ ~


Variante 1: Zyklus-Funktion
Die Zyklus-Funktion prüft ob der Spieler sitzend im Boot das Schwert ausgewählt hat und ruft dann die Sitzen-Funktion auf

Editor Icon schnellkanal:v1zyklus.mcfunction
# Die Tick-Variable wird jeden Tick um eins erhöht um die viertel Sekunde zu bestimmen.
scoreboard players add VarSchKa.1Tick PZSchKa.1Wert 1

# Wenn der Spieler das Holzschert ausgewählt hat, erhält er ein Etikett, damit die Prüfung nicht mehrmals über die teure NBT-Prüfung stattfinden muss.
execute if score VarSchKa.1Tick PZSchKa.1Wert matches 5.. run tag @a[nbt={SelectedItem:{tag:{EigSchKa.1Steuer:true} } }] add EtiSchKa.1Ausgewaehlt

# Wenn der Spieler das Schwert ausgewählt hat und im Boot sitzt, wird die Sitzen-Funktion aufgerufen.
execute if score VarSchKa.1Tick PZSchKa.1Wert matches 5.. as @a[tag=EtiSchKa.1Ausgewaehlt] on vehicle at @s if block ~ ~ ~ minecraft:water run function schnellkanal:v1sitzen

# Damit beim nächsten Tick erneut geprüft werdne kann ob das Holzschert ausgewählt wurde.
execute if score VarSchKa.1Tick PZSchKa.1Wert matches 5.. run tag @a[tag=EtiSchKa.1Ausgewaehlt] remove EtiSchKa.1Ausgewaehlt

# Alle viertel Sekunde wird die Variable wieder auf null gesetzt.
execute if score VarSchKa.1Tick PZSchKa.1Wert matches 5.. run scoreboard players set VarSchKa.1Tick PZSchKa.1Wert 0


Variante 1: Sitzen-Funktion
Die Sitzen-Funktion lässt den Spieler auf einem Interaktionsobjekt sitzen und richtet das Boot aus. Sie ruft die Fahren-Funktion auf.

Editor Icon schnellkanal:v1sitzen.mcfunction
# Wenn der Spieler im Boot sitzt, steigt er damit ab.
execute if entity @s[type=minecraft:boat] run ride @p[tag=EtiSchKa.1Ausgewaehlt] dismount

# Wenn das Boot noch kein Sitzt-Objekt besitzt, wird eins erzeugt und dort als Passagier eingesetzt.
execute if entity @s[type=minecraft:boat,tag=!EtiSchKa.1Boot] run summon minecraft:interaction ~ ~ ~ {Tags:["EtiSchKa.1Alle","EtiSchKa.1Sitzen"]}
execute if entity @s[type=minecraft:boat,tag=!EtiSchKa.1Boot] run ride @e[type=minecraft:interaction,tag=EtiSchKa.1Sitzen,sort=nearest,limit=1] mount @s

# Falls der Spieler im Boot sitzt, wird er jetzt auf das Sitzt-Objekt gesetzt.
execute if entity @s[type=minecraft:boat] run ride @p[tag=EtiSchKa.1Ausgewaehlt] mount @e[type=minecraft:interaction,tag=EtiSchKa.1Sitzen,sort=nearest,limit=1]

# Wenn das Boot noch keinen Namen hat, erhält es diesen und zur Erkennung auch Etiketten.
data merge entity @s[type=minecraft:boat,tag=!EtiSchKa.1Boot] {CustomNameVisible:true,CustomName:'{"text":"Schnellkanal-Boot","color":"dark_purple","bold":true}',Tags:["EtiSchKa.1Alle","EtiSchKa.1Boot"]}

# Vom Boot aus, wird die Fahren-funktion aufgerufen. Dort wird auch die Drehen-Variable verändert, falls sich das Boot dreht.
scoreboard players set VarSchKa.1Drehen PZSchKa.1Wert 0
scoreboard players set VarSchKa.1Fahren PZSchKa.1Wert 0
execute as @e[distance=..0.5,type=minecraft:boat,tag=EtiSchKa.1Boot,sort=nearest,limit=1] run function schnellkanal:v1fahren

# Falls das Boot sich nicht gedreht hat, wird es in eine der vier Himmelsrichtungen ausgerichtet, sodass es immer gerade ausfährt.
execute if score VarSchKa.1Drehen PZSchKa.1Wert matches 0 on vehicle at @s[y_rotation=-45..45] run teleport @s ~ ~ ~ 0 0
execute if score VarSchKa.1Drehen PZSchKa.1Wert matches 0 on vehicle at @s[y_rotation=45..135] run teleport @s ~ ~ ~ 90 0
execute if score VarSchKa.1Drehen PZSchKa.1Wert matches 0 on vehicle at @s[y_rotation=135..-135] run teleport @s ~ ~ ~ 180 0
execute if score VarSchKa.1Drehen PZSchKa.1Wert matches 0 on vehicle at @s[y_rotation=-135..-45] run teleport @s ~ ~ ~ 270 0


Variante 1: Fahren-Funktion
Die Fahren-Funktion bewegt das Boot nach vorne, wenn die Kanalstrecke gerade aus verläuft ansonsten wird das Boote nach links gedreht.

Editor Icon schnellkanal:v1fahren.mcfunction
# Wenn fast fünf Blöcke voraus kein Wasser mehr ist, beginnt das Boot sich nach links zu drehen, ansonsten fährt es gerade aus.
execute at @s store success score @s PZSchKa.1Wert if block ^ ^ ^4.5 minecraft:water
execute at @s[scores={PZSchKa.1Wert=1}] run teleport @s ^ ^ ^0.8
execute at @s[scores={PZSchKa.1Wert=0}] run teleport @s ~ ~ ~ ~-8 ~

# Falls sich das Boot gedreht hat, wird die Drehen-Variable um eins erhöht.
execute if entity @s[scores={PZSchKa.1Wert=0}] run scoreboard players add VarSchKa.1Drehen PZSchKa.1Wert 1

# Bis zu fünfmal wird die Fahren-Funktion erneut aufgerufen, um das Boot zu beschleunigen.
scoreboard players add VarSchKa.1Fahren PZSchKa.1Wert 1
execute if score VarSchKa.1Fahren PZSchKa.1Wert matches ..4 run function schnellkanal:v1fahren


Variante 1: Stopp-Funktion
Die Stopp-Funktion löscht das Punkte-Ziel wieder, entfernt das Boot und das Schwert aus dem Inventar, auf den Boden oder als Objekt.

Editor Icon schnellkanal:v1stopp.mcfunction
# Das Punkte-Ziel wird entfernt.
scoreboard objectives remove PZSchKa.1Wert

# Das Boot und das Schwert werden aus dem Inventar gelöscht.
clear @a minecraft:oak_boat{EigSchKa.1Alle:true}
clear @a minecraft:wooden_sword{EigSchKa.1Alle:true}

# Falls die Gegenstände auf den Boden geworfen wurden, werden sie markiert.
tag @e[type=minecraft:item,nbt={Item:{tag:{EigSchKa.1Alle:true} } }] add EtiSchKa.1Alle

# Alle Objekte wie Gegenstände oder Boote werden entfernt.
kill @e[tag=EtiSchKa.1Alle]

# Der Chunk wird entladen.
forceload remove ~ ~


Disambig color
Advertisement