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

Objekt-Zähler (Befehle)

Aus Technik Wiki
Wechseln zu: Navigation, Suche
Gruppe: Grid Kolben.png
Vorrichtungen

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 Redstone-Welt angesehen werden.
Redstone-Schaltkreise Symbol.png
Überarbeitete oder neue Varianten dieser Technik existieren bereits in der aktuellen Redstone-Welt.
Hier fehlt noch die Dokumentation dieser Varianten, diese müssen noch nachgetragen werden.

Ein Objektzähler kann vielerlei Dinge übernehmen, so kann er die getöteten Kreaturen durch einen Spieler zählen oder die Anzahl der zur Zeit vorhandenen Objekte in der Welt feststellen. Dadurch ist man auch in der Lage Begrenzungen für bestimmte Objekte oder Kreaturen festzulegen.

Variante 1[Bearbeiten | Quelltext bearbeiten]

Objekt-Zähler (Befehle) Bild 1.1.png Objekt-Zähler (Befehle) Bild 1.2.png

Mit dieser Vorrichtung ist man in der Lage die Anzahl der Objekte in einem bestimmten Gebiet festzustellen. Hierzu wird beim Einschalten ein Punktestand-Ziel erstelltBefehl 1.1, welches zum zählen verwendet wird. Zusätzlich wird bereits ein Rüstungsständer erstelltBefehl 1.2, welcher mitgezählt wird und der Spieler bekommt einen Stapel von Rüstungsständer ins Inventar gelegtBefehl 1.3, welche er platzieren kann, damit sie mitgezählt werden. Der Wiederhol-Befehlsblock prüft nun ob sich mindestens ein Spieler in einem Radius von 40 Metern bei der Vorrichtung aufhält, nur dann wird die Anzahl der Objekte zuerst auf null gesetztBefehl 1.4 um dann die genaue und aktuelle Anzahl an Rüstungsständer darauf zu addierenBefehl 1.5. Danach bekommt der Spieler eine Nachricht, die ihm die aktuelle Anzahl der Rüstungsständer mitteiltBefehl 1.6. Damit alle Rüstungsständer die in der Nähe platziert wurden auch zusammen erfasst werden können, erhalten sie ein EtikettBefehl 1.7. Wenn man die Vorrichtung ausschaltet, so wird das Punktestand-Ziel gelöschtBefehl 1.8, alle Rüstungsständer mit dem Etikett gelöschtBefehl 1.9 und alle Rüstungsständer im Inventar des Spielers entferntBefehl 1.10.


Befehlsblöcke mit Befehlen:
scoreboard objectives add PZObjZä:1 dummy
summon minecraft:armor_stand ~3 ~-2 ~
give @a[r=25] minecraft:armor_stand 64 0 {display:{Name:"Objektzähler:1",Lore:["Platziere das Objekt"] } }


execute @p[r=40] ~ ~ ~ /scoreboard players set #VarObjZä:1Zähler PZObjZä:1 0
execute @e[type=minecraft:armor_stand,r=25] ~ ~ ~ /scoreboard players add #VarObjZä:1Zähler PZObjZä:1 1
execute @e[type=minecraft:armor_stand,r=25,c=1] ~ ~ ~ /tellraw @a[r=15] ["Objektzähler:1 ",{"text":"Es befinden sich zur Zeit ","bold":"true"},{"score":{"name":"#VarObjZä:1Zähler","objective":"PZObjZä:1"} },{"text":" Rüstungsständer an diesem Ort.","bold":"true"} ]
scoreboard players tag @e[type=minecraft:armor_stand,tag=!EtiObjZä:1Alle,r=25] add EtiObjZä:1Alle


scoreboard objectives remove PZObjZä:1
kill @e[type=minecraft:armor_stand,tag=EtiObjZä:1Alle]
clear @a[r=25] minecraft:armor_stand -1 9999 {display:{Name:"Objektzähler:1"} }

Variante 2[Bearbeiten | Quelltext bearbeiten]

Objekt-Zähler (Befehle) Bild 2.1.png Objekt-Zähler (Befehle) Bild 2.2.png

Diese Vorrichtungen erlaubt es eine Objektobergrenze für ein bestimmtes Objekt einzurichten. Dabei werden immer die zuletzt platzierten Objekte zu erst gelöscht. Hierzu wird beim Einschalten dafür gesorgt, das die entsprechenden Punktestand-Ziele erstellt werden, welche zum zählenBefehl 2.1 und zum vergleichenBefehl 2.2 benutzt werden. Danach wird ein Rüstungsständer platziertBefehl 2.3 und der Spieler erhält noch einen Stapel der Rüstungsständer um noch mehr platzieren zu können. Die Objektobergrenze in dem Bereich wird dann auf eins gesetztBefehl 2.5 damit sie schon definiert ist, da sonst kein Wert existieren würde und einfach alle Objekte gelöscht werden würden. Nun wird durch den Wiederhol-Befehlsblock getestet ob sich mindestens ein Spieler in einem Radius von 40 Metern hier aufhältBefehl 2.6. Nur dann wird die Anzahl auf null gesetzt und anschließend auf den aktuellen Wert gesetztBefehl 2.7. Dazu wird von jedem Rüstungsständer aus die Variable um eins erhöht, wenn sich also zwei Rüstungsständer dort aufhalten, wird von jedem aus die Variable um eins erhöht und besitzt dann den Wert zwei. Dann bekommt der Spieler eine Nachricht über die aktuelle Anzahl der Objekte und der aktuell eingestellten ObergrenzeBefehl 2.8. Nun wird, wenn sich der Spieler nah genug aufhält auch geschaut ob die Anzahl der Objekte nicht die Obergrenze überschreitet, dazu muss zuerst die aktuelle Anzahl der Objekte auf eine Vergleichsvariable kopiert werdenBefehl 2.9 um dann von dieser den Wert der Obergrenze abzuziehenBefehl 2.10. Wenn nun der Wert null oder größer null ergibt, so passiert nichts weiter. Wenn aber der Wert die null unterschreitetBefehl 2.11, bedeutet das das zu viele Objekte vorhanden sind und die beiden bedingten Ketten-Befehlsblock werden anschließend ausgelöst. Dabei wird eine Nachricht ausgegeben, das die Obergrenze überschritten wurdeBefehl 2.12 und das eine oder mehrere Objekte werden nach und nach gelöschtBefehl 2.13. Damit die Objekte alle erfassbar sind, werden sie mit einem Etikett ausgestattetBefehl 2.14. Die Obergrenze kann man separat einstellen, dazu kann man an einer Befehlsblockkonstuktion zwei Hebel bewegen. Der eine addiert auf die Variable der Obergrenze den Wert eins daraufBefehl 2.15 wodurch die Grenze erhöht wird. Dann erscheint auch eine Nachricht über die aktuelle ObergrenzeBefehl 2.16. Man kann jedoch auch den anderen Hebel aktivieren, welcher die Grenze senktBefehl 2.17. Wenn man nun sich für einen bestimmten Wert entschieden hat, kann man diese festgelegte Anzahl an Objekten in einem bestimmten Bereich nicht überschreiten. Wird die Vorrichtung ausgeschaltet, so werden zuerst die beiden Punktestand-Ziele gelöschtBefehl 2.18Befehl 2.19, sowie die gesetzten RüstungsständerBefehl 2.20 wie auch die noch im Inventar vorhandenenBefehl 2.21.


Befehlsblöcke mit Befehlen:
scoreboard objectives add PZObjZä:2Anz dummy
scoreboard objectives add PZObjZä:2Vergl dummy
summon minecraft:armor_stand ~3 ~-3 ~
give @a[r=25] minecraft:armor_stand 64 0 {display:{Name:"Objektzähler:2",Lore:["Platziere das Objekt"] } }
scoreboard players set #VarObjZä:2Grenze PZObjZä:2Anz 1


execute @p[r=40] ~ ~ ~ /scoreboard players set #VarObjZä:2Zähler PZObjZä:2Anz 0
execute @e[type=minecraft:armor_stand,r=25] ~ ~ ~ /scoreboard players add #VarObjZä:2Zähler PZObjZä:2Anz 1
execute @e[type=minecraft:armor_stand,r=25,c=1] ~ ~ ~ /tellraw @a[r=15] ["Objektzähler:2 ",{"text":"Es befinden sich zur Zeit ","bold":"true"},{"score":{"name":"#VarObjZä:2Zähler","objective":"PZObjZä:2Anz"} },{"text":" Rüstungsständer an diesem Ort und die Obergrenze liegt bei ","bold":"true"},{"score":{"name":"#VarObjZä:2Grenze","objective":"PZObjZä:2Anz"} } ]
execute @p[r=40] ~ ~ ~ /scoreboard players operation #VarObjZä:2Grenze PZObjZä:2Vergl = #VarObjZä:2Grenze PZObjZä:2Anz
execute @p[r=40] ~ ~ ~ /scoreboard players operation #VarObjZä:2Grenze PZObjZä:2Vergl -= #VarObjZä:2Zähler PZObjZä:2Anz
execute @p[r=40] ~ ~ ~ /scoreboard players test #VarObjZä:2Grenze PZObjZä:2Vergl * -1
tellraw @a[r=25] ["Objektzähler:2 ",{"text":"Die Obergrenze wurde überschritten!","color":"red","bold":"true"} ]
execute @p[r=25] ~ ~ ~ /kill @e[type=minecraft:armor_stand,r=15,c=1]
scoreboard players tag @e[type=minecraft:armor_stand,tag=!EtiObjZä:2Alle,r=25] add EtiObjZä:2Alle


scoreboard players add #VarObjZä:2Grenze PZObjZä:2Anz 1
tellraw @a[r=15] ["Objektzähler:2 ",{"text":"Die Obergrenze liegt bei "},{"score":{"name":"#VarObjZä:2Grenze","objective":"PZObjZä:2Anz"} },{"text":" für die Rüstungsständer an diesem Ort."} ]
scoreboard players remove #VarObjZä:2Grenze PZObjZä:2Anz 1


scoreboard objectives remove PZObjZä:2Anz
scoreboard objectives remove PZObjZä:2Vergl
kill @e[type=minecraft:armor_stand,tag=EtiObjZä:2Alle]
clear @a[r=25] minecraft:armor_stand -1 9999 {display:{Name:"Objektzähler:2"} }

Variante 3[Bearbeiten | Quelltext bearbeiten]

Objekt-Zähler (Befehle) Bild 3.1.png Objekt-Zähler (Befehle) Bild 3.2.png

Dieser Objektzähler zählt die Tode vom Objekten, die der Spieler besiegt hat. Dazu werden zwei Punktestand-Ziele erstelltBefehl 3.1Befehl 3.2, bei dem eins für die Anzahl der besiegten Objekte steht und das andere für den aktuellen Tot eines Objektes. Danach erhält der Spieler ein DiamantschwertBefehl 3.3, mit dem er die nun erzeugten DorfbewohnerBefehl 3.4, welche auf einem verschwindenden Drop reiten und anschließend verteilt werdenBefehl 3.5, besiegen kann. Wenn der Spieler einen Dorfbewohner besiegt hat, so wird sein Punktestand automatisch sich um eins erhöhen, das wiederum wird abgefragt. Wenn das der Fall ist, wird sein Punktestand bezüglich der Anzahl um eins erhöhtBefehl 3.6. Danach bekommt er die Meldung über den Sieg einer KreaturBefehl 3.7 und die Anzahl der besiegten Kreaturen. Hiernach muss dann der Punktestand für das töten wieder zurückgesetzt werden, damit es nicht ständig die Nachricht auslöstBefehl 3.8. Schaltet man die Vorrichtung wieder aus, so werden die beiden Punktestand-Ziele gelöschtBefehl 3.9Befehl 3.10, das eventuell gedroppte Schwert bekommt ein EtikettBefehl 3.11, welches die Dorfbewohner ebenfalls besitzen und dann werden genau diese Objekte mit dem Etikett getötetBefehl 3.12. Als letztes bekommt der Spieler das Schwert aus dem Inventar gezogen, falls es sich in seinem Inventar noch befindetBefehl 3.13.


Befehlsblöcke mit Befehlen:
scoreboard objectives add PZObjZä:3Anz dummy
scoreboard objectives add PZObjZä:3Tote totalKillCount
give @a[r=25] minecraft:diamond_sword 1 0 {display:{Name:"Objektzähler:3",Lore:["Töte mit dem Schwert","die Dorfbewohner um","deine Punktestände zu erhöhen"] } }
summon minecraft:item ~ ~ ~-2 {Item:{id:"minecraft:barrier",Count:1b},Age:6000,Tags:["EtiObjZä:3Alle"],Passengers:[{id:"minecraft:villager",Tags:["EtiObjZä:3Alle"] },{id:"minecraft:villager",Tags:["EtiObjZä:3Alle"] },{id:"minecraft:villager",Tags:["EtiObjZä:3Alle"] },{id:"minecraft:villager",Tags:["EtiObjZä:3Alle"] },{id:"minecraft:villager",Tags:["EtiObjZä:3Alle"] } ] }
execute @e[type=minecraft:item,tag=EtiObjZä:3Alle] ~ ~ ~ /spreadplayers ~ ~ 2 10 false @e[type=minecraft:villager,tag=EtiObjZä:3Alle]


scoreboard players add @a[score_PZObjZä:3Tote_min=1] PZObjZä:3Anz 1
execute @a[score_PZObjZä:3Tote_min=1] ~ ~ ~ /tellraw @p ["Objektzähler:3 ",{"text":"Du hast ein Objekt besiegt und insgesamt sind es ","color":"red","bold":"true"},{"score":{"name":"@p[score_PZObjZä:3Tote_min=1,r=0]","objective":"PZObjZä:3Anz"} },{"text":" gewesen!","color":"red","bold":"true"} ]
scoreboard players reset @a[score_PZObjZä:3Tote_min=1] PZObjZä:3Tote


scoreboard objectives remove PZObjZä:3Anz
scoreboard objectives remove PZObjZä:3Tote
scoreboard players tag @e[type=minecraft:item,tag=!EtiObjZä:3Alle] add EtiObjZä:3Alle {Item:{tag:{display:{Name:"Objektzähler:3"} } } }
kill @e[tag=EtiObjZä:3Alle]
clear @a[r=25] minecraft:diamond_sword -1 9999 {display:{Name:"Objektzähler:3"} }

Variante 4[Bearbeiten | Quelltext bearbeiten]

Objekt-Zähler (Befehle) Bild 4.1.png Objekt-Zähler (Befehle) Bild 4.2.png

Der Objektzähler zählt die aufgehobenen Drops mit. Hierzu wird beim Einschalten dafür gesorgt, das zwei Punktestand-Ziele erstellt werden, welche die AnzahlBefehl 4.1 sowie das Aufheben zählenBefehl 4.2. Dann werden mehrere Truhen-Drops auf einem fallenden Block reitend erzeugtBefehl 4.3, welche dann verteilt werdenBefehl 4.4. Wenn nun der Spieler einen oder mehrere dieser Drops aufsammelt, wird ihm sein Punktestand automatisch erhöht und das wiederum kann überprüft werdenBefehl 4.5. Immer wenn sich der Aufhebe-Punktestand erhöht, wird die Anzahl um eins erhöht. Dann bekommt der Spieler eine Nachricht, das er gerade eine Truhe aufgehoben hatBefehl 4.6. Damit diese Nachricht nur einmal erscheint, wird nun der Punktestand fürs Aufheben wieder zurückgesetztBefehl 4.7. Der Spieler kann dann munter alle Drops aufsammeln, am Ende kann er dann sehen wie viele er insgesamt gesammelt hat. Wenn man die Vorrichtung ausschaltet, werden die beiden Punktestand-Ziele wieder gelöschtBefehl 4.8Befehl 4.9, die Truhen-DropsBefehl 4.10 und die noch vorhandenen Truhen im InventarBefehl 4.11 ebenfalls gelöscht.


Befehlsblöcke mit Befehlen:
scoreboard objectives add PZObjZä:4Anz dummy
scoreboard objectives add PZObjZä:4Aufheb stat.pickup.minecraft.chest
summon minecraft:falling_block ~ ~ ~-2 {Block:"minecraft:barrier",Tags:["EtiObjZä:4Alle"],Passengers:[{id:"minecraft:item",CustomName:"Hol mich",CustomNameVisible:true,Tags:["EtiObjZä:4Alle"],Item:{id:"minecraft:chest",Count:1b,tag:{display:{Name:"Objektzähler:4",Lore:["Hebe den Gegenstand auf"] } } } },{id:"minecraft:item",CustomName:"Hol mich",CustomNameVisible:true,Tags:["EtiObjZä:4Alle"],Item:{id:"minecraft:chest",Count:1b,tag:{display:{Name:"Objektzähler:4",Lore:["Hebe den Gegenstand auf"] } } } },{id:"minecraft:item",CustomName:"Hol mich",CustomNameVisible:true,Tags:["EtiObjZä:4Alle"],Item:{id:"minecraft:chest",Count:1b,tag:{display:{Name:"Objektzähler:4",Lore:["Hebe den Gegenstand auf"] } } } },{id:"minecraft:item",CustomName:"Hol mich",CustomNameVisible:true,Tags:["EtiObjZä:4Alle"],Item:{id:"minecraft:chest",Count:1b,tag:{display:{Name:"Objektzähler:4",Lore:["Hebe den Gegenstand auf"] } } } },{id:"minecraft:item",CustomName:"Hol mich",CustomNameVisible:true,Tags:["EtiObjZä:4Alle"],Item:{id:"minecraft:chest",Count:1b,tag:{display:{Name:"Objektzähler:4",Lore:["Hebe den Gegenstand auf"] } } } } ] }
execute @e[type=minecraft:falling_block,tag=EtiObjZä:4Alle] ~ ~ ~ /spreadplayers ~ ~ 2 10 false @e[type=minecraft:item,tag=EtiObjZä:4Alle]


scoreboard players add @a[score_PZObjZä:4Aufheb_min=1] PZObjZä:4Anz 1
execute @a[score_PZObjZä:4Aufheb_min=1] ~ ~ ~ /tellraw @p ["Objektzähler:4 ",{"text":"Du hast eine Truhe aufgehoben und insgesamt sind es ","bold":"true"},{"score":{"name":"@p[score_PZObjZä:4Aufheb_min=1]","objective":"PZObjZä:4Anz"} },{"text":" gewesen!","bold":"true"} ]
scoreboard players reset @a[score_PZObjZä:4Aufheb_min=1] PZObjZä:4Aufheb


scoreboard objectives remove PZObjZä:4Anz
scoreboard objectives remove PZObjZä:4Aufheb
kill @e[type=minecraft:item,tag=EtiObjZä:4Alle]
clear @a[r=25] minecraft:chest -1 9999 {display:{Name:"Objektzähler:4"} }