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/Bank (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

Diese Technik ist noch in
keiner Download-Welt enthalten.
Disambig color.svg
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.

Eine Bank ermöglicht es, für jeden Spieler ein Konto bereitzustellen, in welches dieser Werte, wie Smaragde einzahlen kann. Er kann sie jederzeit wieder entnehmen. Einzahlen kann der Spieler so viel, wie er besitzt, jedoch kann er nur so viel wieder herausholen, wie er eingezahlt hat, in den negativen Bereich kann er nicht gelangen.

Inhaltsverzeichnis

Variante 1[Bearbeiten | Quelltext bearbeiten]

Maschinen Bank (Befehle) Bild 1.1.png Maschinen Bank (Befehle) Bild 1.2.png Maschinen Bank (Befehle) Bild 1.3.png Maschinen Bank (Befehle) Bild 1.4.png

Mit dieser Bank kann man an einer Einzahlstelle Smaragde durch das Rechtsklicken (auf Rahmen) einzahlen und durch das Linksklicken wieder auszahlen lassen. Zuerst werden beim Einschalten die Punktestand-Ziele erstellt[B1.1][B1.2][B1.3], welche für die Spielernummer, für das Vergleichen und den eingezahlten Wert benutzt werden. Danach werden mehrere Rüstungsständer auf einem sofort verschwindenden Drop erzeugt[B1.4], die so zahlreichen Rüstungsständer werden dann verteilt[B1.5]. Damit eine Einzahl-Stelle immer direkt in Nähe ist, wird separat zu den anderen Rüstungsständer ein einzelner noch erzeugt[B1.6]. Jetzt wird über all diesen Rüstungsständern ein Goldblock platziert[B1.7]. An dem wird nun die Einzahl-Stelle in Form eines Rahmens mit Smaragd im Fach erstellt[B1.8]. Alle Spieler erhalten noch ein paar Smaragde[B1.9] und nun folgt als Abschluss ein Rüstungsständer der die Fächer der Spieler erzeugen wird[B1.10].

Damit jeder Spieler eine eigene Nummer besitzt, wird zuerst in der Befehlskette, die vom Wiederhol-Befehlsblock angeführt wird, zuerst die allgemeine Spieler-Nummer um eins erhöht[B1.11] um anschließend sie dem Spieler selbst zu übertragen[B1.12]. Immer wenn ein neuer Spieler dazu kommt, wird die allgemeine Spieler-Nummer um eins erhöht und dann dem neuen Spieler übergeben, so erhält jeder eine einzige unverwechselbare Nummer. Nachdem der Spieler seine Nummer erhalten hat, wird sofort ein Konto-Fach in Form eines Rüstungsständers mit Truhe erstellt[B1.13], welcher dann auch die Spieler-Nummer des neuen Spielers erhält[B1.14]. Anschließend werden Etiketten vergeben, damit die betroffenen Objekte nur einmal Ziel dieser Aktion werden können[B1.15][B1.16][B1.17]. Wenn Spieler nun mit einem Linksklick auf den Rahmen klicken, so fällt der Smaragd raus, damit dieser nicht fälschlicherweise ins Inventar des Spielers wandert, wird er zuerst erkannt[B1.18] und anschließend gelöscht[B1.19].

Nun soll der Spieler auch einzahlen können, dies wird dadurch ermöglicht, das man an der Einzahl-Stelle durch den Rahmen überprüft ob sich dort ein Spieler innerhalb eines drei Meter Radius aufhält. Wenn der Spieler auf den Rahmen geklickt hat egal ob rechts oder links so wird das zuvor entfernte Etikett[B1.21] nicht mehr wieder vergeben werden können[B1.21]. Hierbei wird überprüft ob der Rahmen allgemein angeklickt wurde, damit man im späteren Verlauf, auf einen allgemeinen Klick des Spielers reagieren kann. Nun wird der Rahmen auch auf einen Linksklick getestet, in dem ihm das Etikett erst weg genommen wird[B1.22] und er es nur bekommt, wenn er keinen Linksklick vom Spieler erhalten hat[B1.23]. Falls es einen Linksklick gab, wird nun die Gegenstandsrotation im Rahmen wieder zurecht gerückt[B1.24]. Erst dann wird nach einem Rechtsklick ausschau gehalten, denn anders herum kann man nicht die beiden Klicks unterscheiden, da eine Rotation nur vorhanden ist, wenn auch ein Gegenstand zugegen ist. So wird dem Rahmen auch hier zuerst das Etikett entfernt[B1.25] und anschließend wieder gegeben, wenn kein Rechtsklick stattgefunden hat[B1.26]. Wenn jedoch einer stattgefunden hat, wird nun der Rahmen wieder mit dem Smaragd ausgestattet, welcher er beim Rechtsklick verloren hat[B1.27].

Wenn der Spieler also einen Klick auf den Rahmen gemacht hat, besitzt der Rahmen das Etikett für den Klick nicht mehr und somit wird dann ein Spieler von solch einen Rahmen ausgewählt und bekommt zuvor das Etikett für die Auswahl entfernt[B1.28], um es dann wieder zu bekommen, wenn er noch nah dran ist[B1.29]. Wenn der Spieler dabei einen Rechtsklick ausgeführt hat, wird noch überprüft ob der Spieler überhaupt Smaragde besitzt, welche er zum Einzahlen braucht[B1.30]. Wenn das nicht der Fall ist[B1.31], erhält er eine Titel-Nachricht und falls er doch Smaragde im Inventar hatte, so erhält er eine Titel-Nachricht, die ihm mitteilt, das es geklappt hat[B1.32]. Anschließend wird diesem Spieler ein Smaragd aus dem Inventar gezogen[B1.33]. Dann werden alle Konto-Fächer ausgewählt und von allen die gleiche Spieler-Nummer von deren Vergleichswert abgezogen[B1.34]. Nur das Konto, welches den Punktestand von null hat, ist das richtige Fach[B1.35]. Dann erhält der Spieler auf seinem Konto einen zusätzlichen Smaragd in Form eines weiteren Wertes[B1.36]. Zusätzlich wird dem Spieler mitgeteilt, wie sein aktueller Kontostand aussieht[B1.37], danach wird das Etikett vom Spieler wieder entfernt[B1.38].

Das Einzahlen ist jetzt damit abgehandelt, nun gehts um das Auszahlen. Hierbei wird vom Kontofach (Rüstungsständer) aus geprüft ob sich ein Spieler am Rahmen aufhält der einen Linksklick ausgeführt hat[B1.39]. Dabei wird getestet ob der Spieler überhaupt was auf seinem Konto hat, wenn nicht wird ihm die Titel-Nachricht das mitteilen. Wenn er was auf seinem Konto hat, wird ihm das stattdessen mitgeteilt[B1.40]. Dann erhält er einen Smragd[B1.41] und sein Konto wird um eins reduziert, solange der Wert nicht negativ wird[B1.42]. Anschließend wird dem Spieler der aktuelle Kontostand mitgeteilt[B1.43]. Hiermit hat man eine voll funktionsfähige Bank für abzählbar unendlich viele Spieler (in der Theorie). Möchte man die Bank ausschalten und alle Konten löschen, legt man einfach den Hebel wieder in Ausgangsstellung und die Redstone-Fackel entzündet sich und schaltet die Befehlsblockkette an, die für das Löschen zuständig ist[B1.44][B1.45][B1.46][B1.47][B1.48][B1.49][B1.50][B1.51].


Befehlsblöcke mit Befehlen:
/scoreboard objectives add PZBank:1Nr dummy
/scoreboard objectives add PZBank:1Vergl dummy
/scoreboard objectives add PZBank:1Wert dummy
/summon minecraft:item ~ ~ ~-2 {Item:{id:"minecraft:barrier",Count:1b},Age:6000,Tags:["EtiBank:1Alle"],Passengers:[{id:"minecraft:armor_stand",Invisible:true,Tags:["EtiBank:1Alle"] },{id:"minecraft:armor_stand",Invisible:true,Tags:["EtiBank:1Alle"] },{id:"minecraft:armor_stand",Invisible:true,Tags:["EtiBank:1Alle"] } ] }
/execute @e[type=minecraft:item,tag=EtiBank:1Alle] ~ ~ ~ /spreadplayers ~ ~ 5 10 false @e[type=minecraft:armor_stand,tag=EtiBank:1Alle]
/summon minecraft:armor_stand ~4 ~-6 ~ {Invisible:true,Tags:["EtiBank:1Alle"] }
/execute @e[type=minecraft:armor_stand,tag=EtiBank:1Alle] ~ ~ ~ /setblock ~ ~1 ~ minecraft:gold_block 0 keep
/execute @e[type=minecraft:armor_stand,tag=EtiBank:1Alle] ~ ~ ~ /summon minecraft:item_frame ~ ~1 ~1 {Item:{id:"minecraft:emerald",Count:1b,tag:{display:{Lore:["Anzeige"] } } },CustomName:"ObjBank:1Tausch",Tags:["EtiBank:1Alle"],Facing:0}
/give @a[r=25] minecraft:emerald 64 0 {display:{Name:"Bank:1",Lore:["Smaragde für dein Konto"] } }
/summon minecraft:armor_stand ~3 ~-10 ~ {NoGravity:true,CustomName:"ObjBank:1Start",Tags:["EtiBank:1Alle"],Small:true,Invisible:true,Marker:true,ArmorItems:[{},{},{},{id:"minecraft:lime_shulker_box",Count:1b} ] }


/execute @p[tag=!EtiBank:1SpielerNummer] ~ ~ ~ /scoreboard players add #VarBank:1SpielerNummer PZBank:1Nr 1
/scoreboard players operation @p[tag=!EtiBank:1SpielerNummer] PZBank:1Nr = #VarBank:1SpielerNummer PZBank:1Nr
/execute @e[type=minecraft:armor_stand,name=ObjBank:1Start,tag=EtiBank:1Alle] ~ ~ ~ /summon minecraft:armor_stand ~ ~ ~ {NoGravity:true,CustomName:"ObjBank:1Konto",Small:true,Invisible:true,Marker:true,ArmorItems:[{},{},{},{id:"minecraft:chest",Count:1b} ] }
/scoreboard players operation @e[type=minecraft:armor_stand,name=ObjBank:1Konto,tag=!EtiBank:1Alle] PZBank:1Nr = #VarBank:1SpielerNummer PZBank:1Nr
/scoreboard players tag @e[type=minecraft:armor_stand,name=ObjBank:1Konto,tag=!EtiBank:1Alle] add EtiBank:1Alle
/tp @e[type=minecraft:armor_stand,name=ObjBank:1Konto] ~ ~1 ~
/scoreboard players tag @p[tag=!EtiBank:1SpielerNummer] add EtiBank:1SpielerNummer
/scoreboard players tag @e[type=minecraft:item] add EtiBank:1Anzeige {Item:{tag:{display:{Lore:["Anzeige"] } } } }
/kill @e[type=minecraft:item,tag=EtiBank:1Anzeige]


/execute @a[r=150] ~ ~ ~ /scoreboard players tag @e[type=minecraft:item_frame,tag=EtiBank:1Klick,r=3] remove EtiBank:1Klick
/execute @a[r=150] ~ ~ ~ /scoreboard players tag @e[type=minecraft:item_frame,name=ObjBank:1Tausch,tag=EtiBank:1Alle,r=3] add EtiBank:1Klick {Item:{id:"minecraft:emerald",Count:1b},ItemRotation:0b}
/execute @a[r=150] ~ ~ ~ /scoreboard players tag @e[type=minecraft:item_frame,tag=EtiBank:1Linksklick,r=3] remove EtiBank:1Linksklick
/execute @a[r=150] ~ ~ ~ /scoreboard players tag @e[type=minecraft:item_frame,name=ObjBank:1Tausch,tag=EtiBank:1Alle,r=3] add EtiBank:1Linksklick {Item:{id:"minecraft:emerald",Count:1b} }
/execute @a[r=150] ~ ~ ~ /entitydata @e[type=minecraft:item_frame,name=ObjBank:1Tausch,tag=!EtiBank:1Linksklick,r=3] {Item:{id:"minecraft:emerald",Count:1b,tag:{display:{Lore:["Anzeige"] } } } }
/execute @a[r=150] ~ ~ ~ /scoreboard players tag @e[type=minecraft:item_frame,tag=EtiBank:1Rechtsklick,r=3] remove EtiBank:1Rechtsklick
/execute @a[r=150] ~ ~ ~ /scoreboard players tag @e[type=minecraft:item_frame,name=ObjBank:1Tausch,tag=EtiBank:1Alle,r=3] add EtiBank:1Rechtsklick {ItemRotation:0b}
/execute @a[r=150] ~ ~ ~ /entitydata @e[type=minecraft:item_frame,name=ObjBank:1Tausch,tag=!EtiBank:1Rechtsklick,r=3] {ItemRotation:0b}
/execute @e[type=minecraft:item_frame,tag=!EtiBank:1Klick,r=150] ~ ~ ~ /scoreboard players tag @p[tag=EtiBank:1Auswahl,r=3] remove EtiBank:1Auswahl
/execute @e[type=minecraft:item_frame,tag=!EtiBank:1Klick,r=150] ~ ~ ~ /scoreboard players tag @p[tag=!EtiBank:1Auswahl,r=3] add EtiBank:1Auswahl
/execute @e[type=minecraft:item_frame,tag=!EtiBank:1Rechtsklick,r=150] ~ ~ ~ /execute @p[tag=EtiBank:1Auswahl,r=3] ~ ~ ~ /scoreboard players tag @p[tag=!EtiBank:1Smaragd,r=0] add EtiBank:1Smaragd {Inventory:[{id:"minecraft:emerald"} ] }
/execute @e[type=minecraft:item_frame,tag=!EtiBank:1Rechtsklick,r=150] ~ ~ ~ /title @p[tag=!EtiBank:1Smaragd,r=3] actionbar ["",{"text":"Du hast keine Smaragde um sie einzuzahlen","color":"red","bold":"true"} ] }
/execute @e[type=minecraft:item_frame,tag=!EtiBank:1Rechtsklick,r=150] ~ ~ ~ /title @p[tag=EtiBank:1Smaragd,r=3] actionbar ["",{"text":"Du hast einen Smaragd eingezahlt","bold":"true"} ]
/execute @e[type=minecraft:item_frame,tag=!EtiBank:1Rechtsklick,r=150] ~ ~ ~ /clear @p[tag=EtiBank:1Smaragd,r=3] minecraft:emerald -1 1
/execute @e[type=minecraft:item_frame,tag=!EtiBank:1Klick,r=150] ~ ~ ~ /execute @p[tag=EtiBank:1Auswahl,r=3] ~ ~ ~ /execute @e[type=minecraft:armor_stand,name=ObjBank:1Konto,tag=EtiBank:1Alle] ~ ~ ~ /scoreboard players operation @e[type=minecraft:armor_stand,name=ObjBank:1Konto,tag=EtiBank:1Alle,c=1,r=0] PZBank:1Vergl = @e[type=minecraft:armor_stand,name=ObjBank:1Konto,tag=EtiBank:1Alle,c=1,r=0] PZBank:1Nr
/execute @e[type=minecraft:item_frame,tag=!EtiBank:1Klick,r=150] ~ ~ ~ /execute @p[tag=EtiBank:1Auswahl,r=3] ~ ~ ~ /scoreboard players operation @e[type=minecraft:armor_stand,name=ObjBank:1Konto,tag=EtiBank:1Alle] PZBank:1Vergl -= @p PZBank:1Nr
/execute @e[type=minecraft:item_frame,tag=!EtiBank:1Rechtsklick,r=150] ~ ~ ~ /execute @p[tag=EtiBank:1Smaragd,r=3] ~ ~ ~ /scoreboard players add @e[type=minecraft:armor_stand,name=ObjBank:1Konto,tag=EtiBank:1Alle,score_PZBank:1Vergl_min=0,score_PZBank:1Vergl=0] PZBank:1Wert 1
/tellraw @p[tag=EtiBank:1Smaragd] ["Bank:1",{"text":" Das Bankkonto ","bold":"true"},{"score":{"name":"@e[type=minecraft:armor_stand,name=ObjBank:1Konto,tag=EtiBank:1Alle,score_PZBank:1Vergl_min=0,score_PZBank:1Vergl=0]","objective":"PZBank:1Nr"} },{"text":" wurde um einen Smaragd, auf ein Gesamtvermögen von ","bold":"true"},{"score":{"name":"@e[type=minecraft:armor_stand,name=ObjBank:1Konto,tag=EtiBank:1Alle,score_PZBank:1Vergl_min=0,score_PZBank:1Vergl=0]","objective":"PZBank:1Wert"} },{"text":" Smaragde, aufgestockt.","bold":"true"} ]
/execute @e[type=minecraft:item_frame,tag=!EtiBank:1Rechtsklick,r=150] ~ ~ ~ /scoreboard players tag @a[tag=EtiBank:1Smaragd,r=3] remove EtiBank:1Smaragd
/execute @e[type=minecraft:armor_stand,name=ObjBank:1Konto,tag=EtiBank:1Alle,score_PZBank:1Vergl_min=0,score_PZBank:1Vergl=0,score_PZBank:1Wert=0] ~ ~ ~ /execute @e[type=minecraft:item_frame,tag=!EtiBank:1Linksklick,r=150] ~ ~ ~ /title @p[tag=EtiBank:1Auswahl,r=3] actionbar ["",{"text":"Du hast nicht genügend Smaragde auf deinem Konto","color":"red","bold":"true"} ] }
/execute @e[type=minecraft:armor_stand,name=ObjBank:1Konto,tag=EtiBank:1Alle,score_PZBank:1Vergl_min=0,score_PZBank:1Vergl=0,score_PZBank:1Wert_min=1] ~ ~ ~ /execute @e[type=minecraft:item_frame,tag=!EtiBank:1Linksklick,r=150] ~ ~ ~ /title @p[tag=EtiBank:1Auswahl,r=3] actionbar ["",{"text":"Dir wurde ein Smaragd ausbezahlt","bold":"true"} ]
/execute @e[type=minecraft:armor_stand,name=ObjBank:1Konto,tag=EtiBank:1Alle,score_PZBank:1Vergl_min=0,score_PZBank:1Vergl=0,score_PZBank:1Wert_min=1] ~ ~ ~ /execute @e[type=minecraft:item_frame,tag=!EtiBank:1Linksklick,r=150] ~ ~ ~ /give @p[tag=EtiBank:1Auswahl,r=3] minecraft:emerald 1 0 {display:{Name:"Bank:1",Lore:["Smaragde für dein Konto"] } }
/execute @e[type=minecraft:item_frame,tag=!EtiBank:1Linksklick,r=150] ~ ~ ~ /execute @p[tag=EtiBank:1Auswahl,r=3] ~ ~ ~ /scoreboard players remove @e[type=minecraft:armor_stand,name=ObjBank:1Konto,tag=EtiBank:1Alle,score_PZBank:1Vergl_min=0,score_PZBank:1Vergl=0,score_PZBank:1Wert_min=1] PZBank:1Wert 1
/execute @e[type=minecraft:armor_stand,name=ObjBank:1Konto,tag=EtiBank:1Alle,score_PZBank:1Vergl_min=0,score_PZBank:1Vergl=0,score_PZBank:1Wert_min=1] ~ ~ ~ /execute @e[type=minecraft:item_frame,tag=!EtiBank:1Linksklick,r=150] ~ ~ ~ /tellraw @p[tag=EtiBank:1Auswahl,r=3] ["Bank:1",{"text":" Von dem Bankkonto ","bold":"true"},{"score":{"name":"@e[type=minecraft:armor_stand,name=ObjBank:1Konto,tag=EtiBank:1Alle,score_PZBank:1Vergl_min=0,score_PZBank:1Vergl=0]","objective":"PZBank:1Nr"} },{"text":" wurde ein Smaragd abgezogen, Gesamtvermögen: ","bold":"true"},{"score":{"name":"@e[type=minecraft:armor_stand,name=ObjBank:1Konto,tag=EtiBank:1Alle,score_PZBank:1Vergl_min=0,score_PZBank:1Vergl=0]","objective":"PZBank:1Wert"} } ]


/scoreboard objectives remove PZBank:1Nr
/scoreboard objectives remove PZBank:1Vergl
/scoreboard objectives remove PZBank:1Wert
/execute @e[type=minecraft:item_frame,tag=EtiBank:1Alle] ~ ~ ~ /setblock ~ ~ ~-1 minecraft:air
/kill @e[tag=EtiBank:1Alle]
/scoreboard players tag @a[tag=EtiBank:1SpielerNummer] remove EtiBank:1SpielerNummer
/scoreboard players tag @a[tag=EtiBank:1Auswahl] remove EtiBank:1Auswahl
/clear @a[r=25] minecraft:emerald -1 9999 {display:{Name:"Bank:1"} }