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

Bankautomat (Befehle)

Aus Technik Wiki
(Weitergeleitet von Maschinen/Bank (Befehle))
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.
Roter Sand.png
Überarbeitete oder neue Varianten dieser Technik existieren bereits in der aktuellen Mechanik-Welt.
Hier fehlt noch die Dokumentation dieser Varianten, diese müssen noch nachgetragen 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]

Bankautomat (Befehle) Bild 1.1.png Bankautomat (Befehle) Bild 1.2.png Bankautomat (Befehle) Bild 1.3.png Bankautomat (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 erstelltBefehl 1.1Befehl 1.2Befehl 1.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 erzeugtBefehl 1.4, die so zahlreichen Rüstungsständer werden dann verteiltBefehl 1.5. Damit eine Einzahl-Stelle immer direkt in Nähe ist, wird separat zu den anderen Rüstungsständer ein einzelner noch erzeugtBefehl 1.6. Jetzt wird über all diesen Rüstungsständern ein Goldblock platziertBefehl 1.7. An dem wird nun die Einzahl-Stelle in Form eines Rahmens mit Smaragd im Fach erstelltBefehl 1.8. Alle Spieler erhalten noch ein paar SmaragdeBefehl 1.9 und nun folgt als Abschluss ein Rüstungsständer der die Fächer der Spieler erzeugen wirdBefehl 1.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öhtBefehl 1.11 um anschließend sie dem Spieler selbst zu übertragenBefehl 1.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 erstelltBefehl 1.13, welcher dann auch die Spieler-Nummer des neuen Spielers erhältBefehl 1.14. Anschließend werden Etiketten vergeben, damit die betroffenen Objekte nur einmal Ziel dieser Aktion werden könnenBefehl 1.15Befehl 1.16Befehl 1.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 erkanntBefehl 1.18 und anschließend gelöschtBefehl 1.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 EtikettBefehl 1.21 nicht mehr wieder vergeben werden könnenBefehl 1.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 wirdBefehl 1.22 und er es nur bekommt, wenn er keinen Linksklick vom Spieler erhalten hatBefehl 1.23. Falls es einen Linksklick gab, wird nun die Gegenstandsrotation im Rahmen wieder zurecht gerücktBefehl 1.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 entferntBefehl 1.25 und anschließend wieder gegeben, wenn kein Rechtsklick stattgefunden hatBefehl 1.26. Wenn jedoch einer stattgefunden hat, wird nun der Rahmen wieder mit dem Smaragd ausgestattet, welcher er beim Rechtsklick verloren hatBefehl 1.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 entferntBefehl 1.28, um es dann wieder zu bekommen, wenn er noch nah dran istBefehl 1.29. Wenn der Spieler dabei einen Rechtsklick ausgeführt hat, wird noch überprüft ob der Spieler überhaupt Smaragde besitzt, welche er zum Einzahlen brauchtBefehl 1.30. Wenn das nicht der Fall istBefehl 1.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 hatBefehl 1.32. Anschließend wird diesem Spieler ein Smaragd aus dem Inventar gezogenBefehl 1.33. Dann werden alle Konto-Fächer ausgewählt und von allen die gleiche Spieler-Nummer von deren Vergleichswert abgezogenBefehl 1.34. Nur das Konto, welches den Punktestand von null hat, ist das richtige FachBefehl 1.35. Dann erhält der Spieler auf seinem Konto einen zusätzlichen Smaragd in Form eines weiteren WertesBefehl 1.36. Zusätzlich wird dem Spieler mitgeteilt, wie sein aktueller Kontostand aussiehtBefehl 1.37, danach wird das Etikett vom Spieler wieder entferntBefehl 1.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 hatBefehl 1.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 mitgeteiltBefehl 1.40. Dann erhält er einen SmragdBefehl 1.41 und sein Konto wird um eins reduziert, solange der Wert nicht negativ wirdBefehl 1.42. Anschließend wird dem Spieler der aktuelle Kontostand mitgeteiltBefehl 1.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 istBefehl 1.44Befehl 1.45Befehl 1.46Befehl 1.47Befehl 1.48Befehl 1.49Befehl 1.50Befehl 1.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"} }


Disambig color.svg