Das offizielle Minecraft Wiki twittert hier: Wiki-Twitter     Noch keinen Server gefunden? Es gibt einen Wiki-Server
Nicht die Technik gefunden, die du suchst ? Dann schlag sie vor: Gemeinschaftsportal

We have begun migration of most wikis to our new host, Amazon Web Services. All but the top 100 wikis are in read-only mode until the migration is complete. Estimated completion: TBD -- Update: Fri 10/20 11pm UTC - We have encountered some unexpected issues. Our staff is working around the clock to complete this process as quickly as possible. Thank you for your patience.

Maschinen/Kontrollpunkt-System (Befehle)

Aus Technik Wiki
Wechseln zu: Navigation, Suche
Gruppe: Grid Trichter.png
Maschinen

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.

Parcours können sehr vielfältig sein, das nur die eigene Kreativität des Erbauers ihm die Grenzen setzt. So kann es sein, dass diese immer länger, größer, weiter ausfallen und kein Ende mehr nehmen. Wenn man dann auch noch beim Parcours häufiger scheitert und dann erneut von ganz vorne anfangen muss ist das sehr ärgerlich, für denjenigen der den Parcours komplett absolvieren möchte. Dafür gibt es dann sogenannte Kontrollpunkte (engl. Checkpoints) die den letzten Kontrollpunkt, den der Spieler durchschritten hat, speichern. Jedoch unterscheidet man zwischen "Einzelspieler"- und "Mehrspieler"-Kontrollpunkten da die Kontrollpunkt-Systeme für den Mehrspieler sehr viel schwieriger zu konstruieren sind.

Variante 1[Bearbeiten | Quelltext bearbeiten]

Maschinen Kontrollpunkt-System (Befehle) Bild 1.1.png

Um das besagte Kontrollpunkt-System für den Einzelspieler zu erstellen, werden nur zwei Befehlsblöcke, ein Wiederhol-Befehlsblock sowie drei Ketten-Befehlsblöcke benötigt. Legt man den Hebel um, so wird der Befehlsblock mit dem Befehl[B1.1] aktiviert. Dieser beschwört einen Rüstungsständer mit dem Namen "Kontrollpunkt1". Er ist schwerelos und klein. Der danach geschaltete Ketten-Befehlsblock gibt den Spieler ein Etikett[B1.2], damit andere Spieler nicht die Kontrollpunkte beeinflussen können. Der Wiederhol-Befehlsblock trägt den Befehl[B1.3] in sich. Der /execute-Befehl testet alle Spieler die in einem Radius von 25 Metern um den Wiederhol-Befehlsblock sind. Findet er welche, so testet er ob unter ihnen ein Goldblock ist. Ist das der Fall wird der Rüstungsständer zu dem Spieler teleportiert. Verlässt der Spieler den Goldblock bleibt der Rüstungsständer dort stehen, bis der Spieler wieder den Goldblock betritt. Dabei spielt es keine Rolle ob der Spieler auf einen anderen in der Nähe befindlichen Goldblock stößt, auch dort würde der Rüstungsständer zum Spieler teleportiert werden. Der Ketten-Befehlsblock hat den Befehl[B1.4] inne. Dieser sucht auch wieder Spieler in einem Radius von 25 Metern um sich selbst. Hier prüft er ob der Spieler unter sich einen Diamantblock hat. Wenn das der Fall sein sollte, so wird der Spieler zum letzten Kontrollpunkt teleportiert. Dadurch hat man nun ein funktionierendes Kontrollpunkt-System. Wenn man es wieder abschaltet wird, der Befehl[B1.5] aktiviert, der den Rüstungsständer löscht. Der dahinter liegende Ketten-Befehlsblock löscht das Etikett des Spielers[B1.6].


Befehlsblöcke mit Befehlen:
/summon armor_stand ~ ~3 ~ {CustomName:Kontrollpunkt1,NoGravity:1b,Small:1}
/scoreboard players tag @p add Kontrollpunkt1


/execute @a[tag=Kontrollpunkt1,r=25] ~ ~ ~ detect ~ ~-1 ~ gold_block 0 /tp @e[name=Kontrollpunkt1] @p[tag=Kontrollpunkt1]
/execute @a[tag=Kontrollpunkt1,r=25] ~ ~ ~ detect ~ ~-1 ~ diamond_block 0 /tp @p[tag=Kontrollpunkt1] @e[name=Kontrollpunkt1]


/kill @e[type=armor_stand,name=Kontrollpunkt1]
/scoreboard players tag @a[tag=Kontrollpunkt1] remove Kontrollpunkt1

Variante 2[Bearbeiten | Quelltext bearbeiten]

Maschinen Kontrollpunkt-System (Befehle) Bild 2.1.png

Auch dieses Kontrollpunkt-System ist für den Einzelspieler und basiert auf der Variante 1. Der Unterschied liegt darin, dass an dem Kontrollpunkt ein Diamantblock mit Partikeln erscheint, der sich rotiert. Mit Hilfe dieses Effektes, kann der Spieler schneller erkennen wo sein letzte Kontrollpunkt ist, gleichzeitig wird aber sicher gestellt, dass der Spieler genau in der Blickrichtung starten kann, wie er sie zu letzt verlassen hat (Die Rotation des Diamantblockes spielt dabei keine Rolle). Wird also der Hebel umgelegt, so wird der Befehlsblock mit dem Befehl[B2.1] ausgeführt, der zwei unsichtbare Rüstungsständer erzeugt, die aufeinander gestapelt sind. Der zweite Rüstungsständer besitzt einen Diamantblock in dem Kopfslot, wodurch dieser sichtbar ist. Der nachfolgende Ketten-Befehlsblock gibt dem Spieler ein Etikett[B2.2]. Der Wiederhol-Befehlsblock der vom Hebel ebenfalls angesteuert wird, löst nun permanent den Befehl[B2.3] aus. Dieser testet ob sich ein Spieler in einem Radius von 30 Metern auf einem Goldblock befindet, trifft dies zu, so wird der erste Rüstungsständer zu diesen teleportiert. Der Wiederhol-Befehlsblock löst eine Kette von Ketten-Befehlsblöcken aus, davon besitzt der erste den Befehl[B2.4] der prüft ob der Spieler auf einem Diamantblock ist, wenn ja, so wird der Spieler zum ersten Rüstungsständer teleportiert. Der nächste Ketten-Befehlsblock mit dem Befehl[B2.5] prüft ob der erste Rüstungsständer auf einem Goldblock ist, ist das der Fall, so prüft er ob der zweite Rüstungsständer mindestens 5 Meter von ihm entfernt ist, ist dies der Fall wird der zweite Rüstungsständer zum Spieler teleportiert. Dadurch wird der zweite Rsütungsständer mit dem Diamantblock nur einmal teleportiert und nicht immer wieder. Der nächste Ketten-Befehlsblock mit dem Befehl[B2.6] rotiert den zweiten Rüstungsständer, wodurch dieser sich dreht. Der vorletzte Ketten-Befehlsblock mit dem Befehl[B2.7] erzeugt an der Postion des zweiten Rüstungsständer einige Partikel. Der letzte Ketten-Befehlsblock löst den Befehl[B2.8] aus, der prüft ob der zweite Rüstungsständer in der Luft ist, ist das der Fall, so wird er um 0.7 Meter nach unten teleportiert, damit der Diamantblock fast auf dem Boden ist. Damit ist der Funktionsbereich abgeschlossen, will man nun das Kontrollpunkt-System wieder ausschalten so legt man den Hebel wieder um und die beiden Befehlsblöcke mit dem Befehl[B2.9] und dem Befehl[B2.10] töten die beiden Rüstungsständer. In dem Bild kann man unten rechts beide Rüstungsständer sehen, diese wurde ohne die Eigenschaft Invisible:1b erzeugt.


Befehlsblöcke mit Befehlen:
/summon armor_stand ~ ~5 ~ {CustomName:Kontrollpunkt2a,NoGravity:1b,Small:1,ArmorItems:[{},{},{},{id:diamond_block}],Invulnerable:1b,Invisible:1b,Tags:[Kontrollpunkt2],Passengers:[{id:armor_stand,CustomName:Kontrollpunkt2,NoGravity:1b,Small:1,Invulnerable:1b,Invisible:1b,Tags:[Kontrollpunkt2] } ] }
/scoreboard players tag @p add Kontrollpunkt2


/execute @a[tag=Kontrollpunkt2,r=30] ~ ~ ~ detect ~ ~-1 ~ gold_block 0 /tp @e[name=Kontrollpunkt2] @p[tag=Kontrollpunkt2]
/execute @a[tag=Kontrollpunkt2,r=30] ~ ~ ~ detect ~ ~-1 ~ diamond_block 0 /tp @p[tag=Kontrollpunkt2] @e[name=Kontrollpunkt2]
/execute @e[type=armor_stand,name=Kontrollpunkt2] ~ ~ ~ detect ~ ~-1 ~ gold_block 0 /execute @e[type=armor_stand,name=Kontrollpunkt2a,rm=5] ~ ~ ~ /tp @e[name=Kontrollpunkt2a] @p[tag=Kontrollpunkt2]
/tp @e[type=armor_stand,name=Kontrollpunkt2a] ~ ~ ~ ~10 ~
/execute @e[type=armor_stand,name=Kontrollpunkt2a] ~ ~ ~ /particle spell ~ ~0.5 ~ 0 0 0 1 10
/execute @e[type=armor_stand,name=Kontrollpunkt2a] ~ ~ ~ detect ~ ~ ~ air 0 /tp @e[name=Kontrollpunkt2a] ~ ~-0.7 ~


/kill @e[type=armor_stand,tag=Kontrollpunkt2]
/scoreboard players tag @a[tag=Kontrollpunkt2] remove Kontrollpunkt2

Variante 3[Bearbeiten | Quelltext bearbeiten]

Maschinen Kontrollpunkt-System (Befehle) Bild 3.1.png

Bei diesem Kontrollpunkt-System handelt es sich um ein Mehrspieler-taugliches System, d.h. mehrere Spieler können dieses eine System nutzen. Hier werden zwei Teams gebildet und das jeweilige Team befördert den Kontrollpunkt immer weiter nach vorne. Wenn man den Hebel umlegt, so wird ein Befehlsblock[B3.1] mit einer Reihe an Ketten-Befehlsblöcken[B3.2][B3.3][B3.4][B3.5][B3.6] aktiviert. Diese erstellen die beiden Teams "Kontrollpunkt3a und 3b", erstellen das Punktestand-Ziel "Wiederkehr" und geben den Spielern eine Karottenrute. Die erste Reihe des wiederhol-Befehlsblockes mit Ketten-Befehlsblöcken, sorgt nun dafür, dass das Kontrollpunkt-System nun für beide Teams funktioniert. Dabei löst der erste Wiederhol-Befehlsblock folgenden Befehl[B3.7] aus. Dieser sorgt erstmal nur, dass ein eventuell schon vorhandener Rüstungsständer der als Kontrollpunkt für das Team "Kontrollpunkt3a" dient gelöscht wird, sobald ein Spieler dessen Teams auf dem Goldblock steht. Der nachfolgende Ketten-Befehlsblock[B3.8] sorgt nun dafür, dass genau bei solchen Spielern ein neuer Rüstungsständer gespawnt wird. Der nachfolgende Ketten-Befehlsblock[B3.9] sucht Spieler die auf einem Goldblock sind und teleportiert den Rüstungsständer dann zu ihm hin. Nun muss noch eine weitere Befehlsblock-Säule mit Wiederhol-Befehlsblock den Klick-Mechanismus abdecken. Denn wenn der Spieler nicht auf die Diamantplattformen landet, wo er direkt zurück gesetzt wird, muss er dies selbst tun. Dazu sorgt der Wiederhol-Befehlsblock, dass der Spieler immer den Punktestand von eins hat[B3.10], wenn er sich auf Diamant befindet. Nun sorgen die nachfolgenden Ketten-Befehlsblöcke dafür, dass der Spieler immer zum letzten Kontrollpunkt zurück teleportiert wird[B3.11][B3.12]. Anschließend setzt der letzte Ketten-Befehlsblock den Punktestand wieder zurück[B3.13].


Befehlsblöcke mit Befehlen:
/scoreboard teams add Kontrollpunkt3a
/scoreboard teams add Kontrollpunkt3b
/scoreboard teams join Kontrollpunkt3a @r[team=,r=25]
/scoreboard teams join Kontrollpunkt3a @r[team=,r=25]
/scoreboard objectives add Wiederkehr stat.useItem.minecraft.carrot_on_a_stick
/give @a[r=25] minecraft:carrot_on_a_stick 1


/execute @a[team=Kontrollpunkt3a] ~ ~ ~ detect ~ ~-1 ~ gold_block 0 /kill @e[type=armor_stand,name=Wiederkehr,tag=Kontrollpunkt3a]
/execute @a[team=Kontrollpunkt3a] ~ ~ ~ detect ~ ~-1 ~ gold_block 0 /summon armor_stand ~ ~-3 ~ {NoGravity:1b,Invisible:0b,Marker:1b,CustomName:Wiederkehr,Tags:["Kontrollpunkt3a"] }
/execute @a[team=Kontrollpunkt3a] ~ ~ ~ detect ~ ~-1 ~ gold_block 0 /tp @e[type=armor_stand,name=Wiederkehr,tag=Kontrollpunkt3a] @p[r=25]


/execute @a[r=25] ~ ~ ~ detect ~ ~-1 ~ diamond_block 0 /scoreboard players set @p[r=25] Wiederkehr 1
/tp @a[team=Kontrollpunkt3a,score_Wiederkehr_min=1] @e[type=armor_stand,name=Wiederkehr,tag=Kontrollpunkt3a]
/tp @a[team=Kontrollpunkt3b,score_Wiederkehr_min=1] @e[type=armor_stand,name=Wiederkehr,tag=Kontrollpunkt3b]
/scoreboard players reset @a[score_Wiederkehr_min=1] Wiederkehr

Variante 4[Bearbeiten | Quelltext bearbeiten]

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

Maschinen Kontrollpunkt-System (Befehle) Bild 4.1.png

Dieses Kontrollpunkt-System ist für den Mehrspieler geeignet. Es setzt für jeden einzelnen Spieler, unabhängig, einen Kontrollpunkt fest. Dabei ist es egal wie viele Spieler dem System beitreten. Zuerst werden zwei Punktestand-Ziele benötigt[B4.1][B4.2], welche für das Zählen der Spieler-Nummer sowie für das Vergleichen zuständig sind. Nun beginnt die Wiederhol-Befehlsblockkette anzulaufen. zuerst wird dafür gesorgt, das alle Spieler die noch keine Spieler-Nummer haben eine bekommen[B4.3][B4.4][B4.5]. Dazu wird die Spieler-Nummer-Variable um eins erhöht, für jeden Spieler der noch keine Nummer besitzt und anschließend bekommt der neue Spieler die Spieler-Nummer. Damit er sie nur einmal bekommt, erhält er anschließend ein Etikett. Beim Start der Maschine befindet sich noch kein Rüstungsständer auf Kontrollpunkten, daher werden erst nach dem erstmaligen Betreten der Kontrollpunkte (Goldblöcke) Rüstungsständer vorhanden sein. Wenn diese vorhanden sind, wird nun geprüft ob ein Spieler auf einem Goldblock sich gerade befindet und wenn das der Fall ist, wird durch eine Vergleichsberechnung der Rüstungsständer, dem der Spieler gehört ermittelt[B4.6][B4.7]. Der zugehörige Rüstungsständer wird so ermittelt: Man nimmt die Nummer des Spielers und die des Rüstungsständers und zieht sie voneinander ab, wenn das Ergebnis auf einer extra gespeicherten Vergleichs-Punktestand-Ziel gleich null ist, dann handelt es sich um den eigenen, sonst nicht. Anschließend wird der eigene Rüstungsständer an die aktuelle Blickrichtung des Spielers angepasst, damit Zurücksetzen des Spielers, dieser die gleichen Ausgangsbedingungen hat[B4.8]. Damit man aber überhaupt einen Rüstungsständer neu als Kontrollpunkt erzeugen kann, muss man erstmal wissen ob sich einer auf der aktuellen Position befindet, dazu bekommen zuerst einmal alle Spieler ein Etikett[B4.9] und nur dann wenn sich bereits ein Kontrollpunkt an der aktuellen Position (Goldblock) befindet, dann wird dieses Etikett wieder entfernt[B4.10] und löst damit nicht die weiteren Ketten-Befehlsblöcke aus, die nach genau diesem Etikett ausschau halten. Falls sich kein Rüstungsständer als Kontrollpunkt an der aktuellen Position befindet, wird zuerst dafür gesorgt das eventuell wo anders befindliche Kontrollpunkte des Spielers gelöscht werden[B4.11]. Erst dann wird ein neuer an der aktuellen Position erzeugt[B4.12]. Nun bekommt der Rüstungsständer noch die Nummer des Spielers[B4.13], um seine Zugehörigkeit zu ermitteln und es erscheint eine Titel-Nachricht[B4.14]. Anschließend wird sein Etikett entfernt, welches nur für die Spieler-Nummer-Übertragung benötigt wurde[B4.15]. Nun folgt die Abfrage von Bereichen, die den Spieler wieder zum aktuellen Kontrollpunkt zurück schicken soll. Dazu wird ebenfalls eine Vergleichsrechnung gestartet, sobald der Spieler auf einen Diamantblock läuft[B4.16][B4.17] und wenn der Vergleichswert null ist, wird der Spieler zu diesem Rüstungsständer zurück teleportiert[B4.18]. Schaltet man die Maschine aus, so müssen nicht nur die Punktestand-Ziele gelöscht werden[B4.19][B4.20], sondern auch die Kontrollpunkte[B4.21] wie auch das Etikett für die Spieler-Nummer[B4.22].


Befehlsblöcke mit Befehlen:
/scoreboard objectives add PZKont:4Nr dummy
/scoreboard objectives add PZKont:4Vergl dummy


/execute @p[tag=!EtiKont:4Nummer] ~ ~ ~ /scoreboard players add #VarKont:4SpielerNummer PZKont:4Nr 1
/scoreboard players operation @p[tag=!EtiKont:4Nummer] PZKont:4Nr = #VarKont:4SpielerNummer PZKont:4Nr
/scoreboard players tag @p[tag=!EtiKont:4Nummer] add EtiKont:4Nummer
/execute @a ~ ~ ~ detect ~ ~-1 ~ minecraft:gold_block 0 /execute @e[type=minecraft:armor_stand,score_PZKont:4Nr_min=1] ~ ~ ~ /scoreboard players operation @e[type=minecraft:armor_stand,score_PZKont:4Nr_min=1,c=1] PZKont:4Vergl = @e[type=minecraft:armor_stand,score_PZKont:4Nr_min=1,c=1] PZKont:4Nr
/execute @a ~ ~ ~ detect ~ ~-1 ~ minecraft:gold_block 0 /scoreboard players operation @e[type=minecraft:armor_stand,score_PZKont:4Vergl_min=1] PZKont:4Vergl -= @p[r=2] PZKont:4Nr
/execute @a ~ ~ ~ detect ~ ~-1 ~ minecraft:gold_block 0 /tp @e[type=minecraft:armor_stand,score_PZKont:4Vergl_min=0,score_PZKont:4Vergl=0,r=2] @p
/scoreboard players tag @a[tag=!EtiKont:4Kontrollpunkt] add EtiKont:4Kontrollpunkt
/execute @a ~ ~ ~ detect ~ ~-1 ~ minecraft:gold_block 0 /execute @e[type=minecraft:armor_stand,score_PZKont:4Vergl=0,score_PZKont:4Vergl_min=0,r=2] ~ ~ ~ /scoreboard players tag @a[r=2,tag=EtiKont:4Kontrollpunkt] remove EtiKont:4Kontrollpunkt
/execute @a[tag=EtiKont:4Kontrollpunkt] ~ ~ ~ detect ~ ~-1 ~ minecraft:gold_block 0 /kill @e[type=minecraft:armor_stand,score_PZKont:4Vergl=0,score_PZKont:4Vergl_min=0]
/execute @a[tag=EtiKont:4Kontrollpunkt] ~ ~ ~ detect ~ ~-1 ~ minecraft:gold_block 0 /summon armor_stand ~ ~ ~ {Invisible:0b,NoGravity:1,Invulnerable:1,Tags:["EtiKont:4Nummer","EtiKont:4Alle"] }
/execute @a[tag=EtiKont:4Kontrollpunkt] ~ ~ ~ detect ~ ~-1 ~ minecraft:gold_block 0 /scoreboard players operation @e[type=minecraft:armor_stand,tag=EtiKont:4Nummer,r=2,c=1] PZKont:4Nr = @p PZKont:4Nr
/execute @a[tag=EtiKont:4Kontrollpunkt] ~ ~ ~ detect ~ ~-1 ~ minecraft:gold_block 0 /title @a[r=2] title {"text":"Kontrollpunkt gesetzt!","bold":"true"}
/scoreboard players tag @e[type=minecraft:armor_stand,tag=EtiKont:4Nummer] remove EtiKont:4Nummer
/execute @a ~ ~ ~ detect ~ ~-1 ~ minecraft:diamond_block 0 /execute @e[type=minecraft:armor_stand,score_PZKont:4Nr_min=1] ~ ~ ~ /scoreboard players operation @e[type=minecraft:armor_stand,score_PZKont:4Nr_min=1,c=1] PZKont:4Vergl = @e[type=minecraft:armor_stand,score_PZKont:4Nr_min=1,c=1] PZKont:4Nr
/execute @a ~ ~ ~ detect ~ ~-1 ~ minecraft:diamond_block 0 /scoreboard players operation @e[type=minecraft:armor_stand,score_PZKont:4Vergl_min=1] PZKont:4Vergl -= @p[r=2] PZKont:4Nr
/execute @a ~ ~ ~ detect ~ ~-1 ~ minecraft:diamond_block 0 /tp @p @e[type=minecraft:armor_stand,score_PZKont:4Vergl=0,score_PZKont:4Vergl_min=0,c=1]


/scoreboard objectives remove PZKont:4Nr
/scoreboard objectives remove PZKont:4Vergl
/kill @e[type=minecraft:armor_stand,tag=EtiKont:4Alle]
/scoreboard players tag @p[tag=EtiKont:4Nummer] remove EtiKont:4Nummer