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

Maschinen/Zonen-System (Befehle)

Aus Technik Wiki
Wechseln zu: Navigation, Suche
Baustelle.svg
Diese Seite wird gerade von Nethonos neu erstellt oder grundlegend überarbeitet.
Fragen und Vorschläge bitte in die Diskussion. Fortschritt: Grid Redstone-Block.pngGrid Redstone-Block.pngGrid Redstone-Block.pngGrid Redstone-Block.pngGrid Redstone-Block.pngGrid Redstone-Block.pngGrid Redstone-Block.pngGrid Redstone-Block blass.pngGrid Redstone-Block blass.pngGrid Redstone-Block blass.png


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.

Ein Zonen-System ermöglicht es, dem Spieler eigene Zonen anzulegen, die dann anderen Spielern zeigen, das hier schon jemand am werkeln ist. Bei komplexeren Systemen wird auch dafür gesorgt, das der Zutritt nur für die Eigentümer gestattet ist.

Inhaltsverzeichnis

Variante 1[Bearbeiten | Quelltext bearbeiten]


Dieses Zonen-System ist relativ einfach gehalten, es ermöglicht bei einer längeren Schleichzeit durch eine tellraw-Nachricht einen Auslöser zu aktivieren, der eine Zone setzen, erstellen oder löschen kann. Zuerst benötigt man mehrere Punktestand-Ziele um die Spielernummer[B1.1], um die Spielernummer zu vergleichen[B1.2], um die schleichzeit zu ermitteln[B1.3] und um das Klicken im Chat zu ermöglichen[B1.4]. Wird der Hebel am Wiederhol-Befehlsblock umgelegt, werden zuerst die drei Befehle aktiv, die allen Spielern auf der Welt eine bestimmte Spielernummer geben[B1.5][B1.6][B1.7]. Dazu wird zuerst ein allgemeiner Zähler, der die Spieleranzahl zählt pro weiteren Spieler um eins erhöht und gibt dann seinen aktuelle Wert als Spielernummer den nächsten neuen Spieler. Anschließend erhält jeder Spieler, der seine Nummer erhalten hat ein Etikett, damit er nicht erneut eine Nummer bekommen muss. Nun folgen drei weitere Befehle, die für die Chatnachricht erforderlich sind, welche es dem Spieler ermöglicht, eine Zone zu setzen, zu erstellen und zu löschen. Zuerst wird dem Spieler ermöglicht, das er einen trigger-Befehl einmal auslösen darf[B1.8], wenn er mindestens fünf Ticks geschlichen ist. Anschließend bekommt er die Chat-Nachricht, um die Zone-Optionen mitgeteilt zu bekommen[B1.9]. Dort hat er wie schon erwähnt die Möglichkeit, die Zone zu erstellen. Als letztes wird der Punktestand vom Schleichen wieder zurückgesetzt, damit die Nachricht immer wieder aufgerufen werden kann[B1.10]. Wenn der Spieler in den Chat auf "Zone markieren" geklickt hat, wird ein trigger-Befehl ausgelöst, der dem Spieler einen Punktestand von eins gibt, dieser Wert kann nun von dem nächsten Befehl[B1.11] abgefragt werden um einen unsichtbaren Rüstungsständer mit Truhe zu erschaffen, welcher die zu setzende Zone darstellt. Die mögliche Zone wird mit Partikel-Effekten auch visuell in der Landschaft markiert[B1.31][B1.32][B1.33][B1.34]. Damit nicht zwei oder mehr Zonen sich überlappen, werden neu gesetzte Zonen die zu nah an benachbarte bestehende Zone grenzen, wieder gelöscht[B1.12]. Zuvor wird allerdings beim zu nahen Rüstungsständer ein Barrieren-Partikel erscheinen[B1.35]. Es folgt dann auch eine Benachrichtigung[B1.13]. Falls keine Zone zu nah war, wird dem Rüstungsständer nun die Spielernummer gegeben[B1.14] und anschließend mit einem Etikett versiegelt[B1.15]. Klickt der Spieler nun in der Nähe eines solchen gesetzten Rüstungsständers auf "Zone erstellen", so folgt nun eine Nachricht, die dem Spieler vermittelt, das die Zone erfolgreich gesetzt wurde[B1.16]. Die Zone wird nun mit einer Stufenumrandung ausgestattet[B1.17][B1.18]. Anschließend erhält der Rüstungsständer ein Etikett[B1.19], welches dazu da ist, eine fertige Zone zu markieren. Wenn man mit der aktuellen Position der Zone dennoch unzufrieden ist, kann man sie auch wieder löschen. Dazu klickt man in dem Chat-Feld auf die entsprechende trigger-Nachricht. Wird der Löschbefehl aktiv, so wird zuerst die gelöschte Zone im Chat angezeigt[B1.20] und erst anschließend wird der Bereich komplett gelöscht[B1.21][B1.22]. Erst dann wird auch der Rüstungsständer, der die Zone darstellt gelöscht[B1.23]. Nun muss auch der trigger-Punktestand des Spielers zurückgesetzt werden[B1.24], damit die Zone nicht nochmal erstellt oder gelöscht wird. Damit alle Spieler die nicht die Zone erstellt haben auch mitgeteilt bekommen, wem die Zone gehört, wird nun die Spielernummer der Spieler verglichen[B1.25][B1.26]. Hierbei wird die Zonennummer, die die Nummer des Zoneninhabers (Rüstungsständer trägt die Spielernummer) ist in einen Vergleichspunktestand von allen Spielern gespeichert, die die Zone betreten. Nun wird die von diesen Spielern die eigene Spielernummer vom Vergleichspunktestand abgezogen, wenn der Punktestand null beträgt, handelt es sich um den Zoneninhaber. Nun wird jedem Spieler mitgeteilt, um welche Zone es sich handelt[B1.27]. Wenn der Zoneninhaber anwesend ist, wird auch der Name von ihm angezeigt[B1.28]. Um die Spieler zu erfassen, die die Zone betreten, wird ihnen in einem Kubus-Bereich um den Rüstungsständer herum ein Etikett verliehen[B1.29], welches dazu dient, das die Spieler die Nachricht nur einmal erhalten. Wenn die Spieler die Zone verlassen, wird ihnen das Etikett wieder entfernt[B1.30]. Will man die Maschine ausschalten, so legt man einfach den Hebel wieder um, sodass die Redstone-Fackel auf der anderen Seite den Befehlsblock aktiviert. Dann werden alle Punktestand-Ziele gelöscht[B1.36][B1.37][B1.38][B1.39], sowie alle Etiketten werden von den Spielern entfernt[B1.40][B1.41].


Befehlsblöcke mit Befehlen:
/scoreboard objectives add PZZone:1Nr dummy
/scoreboard objectives add PZZone:1Vergl dummy
/scoreboard objectives add PZZone:1Nachr stat.sneakTime
/scoreboard objectives add PZZone:1Eing trigger


/execute @p[tag=!EtiZone:1SpielerNummer,r=150] ~ ~ ~ /scoreboard players add #VarZone:1SpielerNummer PZZone:1Nr 1
/scoreboard players operation @p[tag=!EtiZone:1SpielerNummer,r=150] PZZone:1Nr = #VarZone:1SpielerNummer PZZone:1Nr
/scoreboard players tag @p[tag=!EtiZone:1SpielerNummer,r=150] add EtiZone:1SpielerNummer
/scoreboard players enable @a[score_PZZone:1Nachr_min=5] PZZone:1Eing
/tellraw @a[score_PZZone:1Nachr_min=5,r=150] ["",{"text":"Zone:1"},{"text":" Zone markieren [%]","color":"yellow","hoverEvent":{"action":"show_text","value":{"text":"Zone positionieren"} },"clickEvent":{"action":"run_command","value":"/trigger PZZone:1Eing set 1"} },{"text":" Zone erstellen [O]","color":"green","hoverEvent":{"action":"show_text","value":{"text":"Zone erstellen"} },"clickEvent":{"action":"run_command","value":"/trigger PZZone:1Eing set 2"} }, {"text":" Zone löschen [X]","color":"red","hoverEvent":{"action":"show_text","value":{"text":"Zone löschen"} },"clickEvent":{"action":"run_command","value":"/trigger PZZone:1Eing set 3"} } ]
/scoreboard players reset @a[score_PZZone:1Nachr_min=5,r=150] PZZone:1Nachr
/execute @a[score_PZZone:1Eing_min=1,score_PZZone:1Eing=1] ~ ~ ~ /summon minecraft:armor_stand ~ ~ ~ {NoGravity:true,CustomName:"Zone",CustomNameVisible:true,Small:true,Invisible:true,Marker:true,ArmorItems:[{},{},{},{id:"minecraft:chest",Count:1b} ] }
/execute @a[score_PZZone:1Eing_min=1,score_PZZone:1Eing=1] ~ ~ ~ /execute @e[type=minecraft:armor_stand,name=Zone,tag=EtiZone:1Alle,r=15] ~ ~ ~ /execute @e[type=minecraft:armor_stand,name=Zone,tag=!EtiZone:1Alle,r=15] ~ ~ ~ /particle barrier ~ ~1 ~ 0 0 0 0.5 1 force @a[r=25]
/execute @a[score_PZZone:1Eing_min=1,score_PZZone:1Eing=1] ~ ~ ~ /execute @e[type=minecraft:armor_stand,name=Zone,tag=EtiZone:1Alle,r=15] ~ ~ ~ /kill @e[type=minecraft:armor_stand,name=Zone,tag=!EtiZone:1Alle,r=15]
/execute @a[score_PZZone:1Eing_min=1,score_PZZone:1Eing=1] ~ ~ ~ /tellraw @p ["",{"text":"Zone:1"},{"text":" Folgende Zone ist zu nah: "},{"score":{"name":"@e[type=minecraft:armor_stand,name=Zone,tag=EtiZone:1Alle,r=15]","objective":"PZZone:1Nr"} } ]
/execute @a[score_PZZone:1Eing_min=1,score_PZZone:1Eing=1] ~ ~ ~ /scoreboard players operation @e[type=minecraft:armor_stand,name=Zone,tag=!EtiZone:1Alle,r=1,c=1] PZZone:1Nr = @p PZZone:1Nr
/scoreboard players tag @e[type=minecraft:armor_stand,name=Zone,tag=!EtiZone:1Alle] add EtiZone:1Alle
/execute @a[score_PZZone:1Eing_min=2,score_PZZone:1Eing=2] ~ ~ ~ /tellraw @p ["",{"text":"Zone:1"},{"text":" Zone erstellt: "},{"score":{"name":"@e[type=minecraft:armor_stand,name=Zone,tag=EtiZone:1Alle,r=5,c=1]","objective":"PZZone:1Nr"} } ]
/execute @a[score_PZZone:1Eing_min=2,score_PZZone:1Eing=2] ~ ~ ~ /execute @e[type=minecraft:armor_stand,name=Zone,tag=EtiZone:1Alle,r=5,c=1] ~-7 ~ ~-7 /fill ~ ~ ~ ~15 ~ ~15 minecraft:stone_slab 0 replace minecraft:air
/execute @a[score_PZZone:1Eing_min=2,score_PZZone:1Eing=2] ~ ~ ~ /execute @e[type=minecraft:armor_stand,name=Zone,tag=EtiZone:1Alle,r=5,c=1] ~-7 ~ ~-7 /fill ~1 ~ ~1 ~14 ~ ~14 minecraft:air 0 replace minecraft:stone_slab
/execute @a[score_PZZone:1Eing_min=2,score_PZZone:1Eing=2] ~ ~ ~ /scoreboard players tag @e[type=minecraft:armor_stand,name=Zone,tag=!EtiZone:1Zone,r=5,c=1] add EtiZone:1Zone
/execute @a[score_PZZone:1Eing_min=3,score_PZZone:1Eing=3] ~ ~ ~ /tellraw @p ["",{"text":"Zone:1"},{"text":" Folgende Zone wurde gelöscht: "},{"score":{"name":"@e[type=minecraft:armor_stand,name=Zone,tag=EtiZone:1Alle,r=5,c=1]","objective":"PZZone:1Nr"} } ]
/execute @a[score_PZZone:1Eing_min=3,score_PZZone:1Eing=3] ~ ~ ~ /execute @e[type=minecraft:armor_stand,name=Zone,tag=EtiZone:1Zone,r=5,c=1] ~-7 ~ ~-7 /fill ~ ~ ~ ~15 ~ ~15 minecraft:air 0 replace minecraft:stone_slab
/execute @a[score_PZZone:1Eing_min=3,score_PZZone:1Eing=3] ~ ~ ~ /execute @e[type=minecraft:armor_stand,name=Zone,tag=EtiZone:1Zone,r=5,c=1] ~-6 ~ ~-6 /fill ~ ~ ~ ~13 ~15 ~13 minecraft:air
/execute @a[score_PZZone:1Eing_min=3,score_PZZone:1Eing=3] ~ ~ ~ /kill @e[type=minecraft:armor_stand,name=Zone,tag=EtiZone:1Alle,r=5,c=1]
/scoreboard players reset @a[score_PZZone:1Eing_min=1] PZZone:1Eing
/execute @e[type=minecraft:armor_stand,name=Zone,tag=EtiZone:1Alle] ~-6 ~ ~-6 /execute @a[x=~,y=~,z=~,dx=13,dy=15,dz=13,tag=!EtiZone:1Betreten] ~ ~ ~ /scoreboard players operation @p PZZone:1Vergl = @p PZZone:1Nr
/execute @e[type=minecraft:armor_stand,name=Zone,tag=EtiZone:1Alle] ~-6 ~ ~-6 /scoreboard players operation @a[x=~,y=~,z=~,dx=13,dy=15,dz=13,tag=!EtiZone:1Betreten] PZZone:1Vergl -= @e[type=minecraft:armor_stand,name=Zone,tag=EtiZone:1Alle,c=1] PZZone:1Nr
/execute @e[type=minecraft:armor_stand,name=Zone,tag=EtiZone:1Alle] ~-6 ~ ~-6 /tellraw @a[x=~,y=~,z=~,dx=13,dy=15,dz=13,tag=!EtiZone:1Betreten] ["",{"text":"Zonen-System:1"},{"text":" Die Zone mit der Nummer "},{"score":{"name":"@e[type=minecraft:armor_stand,name=Zone,tag=EtiZone:1Alle,c=1]","objective":"PZZone:1Nr"} },{"text":" befindet sich hier!"} ]
/execute @a[score_PZZone:1Vergl_min=0,score_PZZone:1Vergl=0] ~ ~ ~ /execute @e[type=minecraft:armor_stand,name=Zone,tag=EtiZone:1Alle,r=25] ~-6 ~ ~-6 /tellraw @a[x=~,y=~,z=~,dx=13,dy=15,dz=13,tag=!EtiZone:1Betreten] ["",{"text":"Zonen-System:1"},{"text":" Die Zone gehört "},{"selector":"@a[score_PZZone:1Vergl_min=0,score_PZZone:1Vergl=0]"} ]
/execute @e[type=minecraft:armor_stand,name=Zone,tag=EtiZone:1Alle] ~-6 ~ ~-6 /scoreboard players tag @a[x=~,y=~,z=~,dx=13,dy=15,dz=13,tag=!EtiZone:1Betreten] add EtiZone:1Betreten
/execute @e[type=minecraft:armor_stand,name=Zone,tag=EtiZone:1Alle] ~ ~ ~ /scoreboard players tag @a[tag=EtiZone:1Betreten,rm=15,r=20] remove EtiZone:1Betreten
/execute @e[type=minecraft:armor_stand,name=Zone,tag=!EtiZone:1Zone] ~ ~ ~ /particle totem ~8 ~1 ~8 0 2 0 0.1 10 force @a[r=25]
/execute @e[type=minecraft:armor_stand,name=Zone,tag=!EtiZone:1Zone] ~ ~ ~ /particle totem ~8 ~1 ~-7 0 2 0 0.1 10 force @a[r=25]
/execute @e[type=minecraft:armor_stand,name=Zone,tag=!EtiZone:1Zone] ~ ~ ~ /particle totem ~-7 ~1 ~-7 0 2 0 0.1 10 force @a[r=25]
/execute @e[type=minecraft:armor_stand,name=Zone,tag=!EtiZone:1Zone] ~ ~ ~ /particle totem ~-7 ~1 ~8 0 2 0 0.1 10 force @a[r=25]


/scoreboard objectives remove PZZone:1Nr
/scoreboard objectives remove PZZone:1Vergl
/scoreboard objectives remove PZZone:1Nachr
/scoreboard objectives remove PZZone:1Eing
/scoreboard players tag @a[tag=EtiZone:1SpielerNummer] remove EtiZone:1SpielerNummer
/scoreboard players tag @a[tag=EtiZone:1Betreten] remove EtiZone:1Betreten

Variante 2[Bearbeiten | Quelltext bearbeiten]


Mit diesem Zonen-System lassen sich Eindringlinge aussperren und man hat Ruhe für sich oder auch für Freunde, denen man erlaubt auf seinem Grundstück zu laufen. Zusätzlich hat man auch die Möglichkeit, die Zonengröße einzustellen.


Befehlsblöcke mit Befehlen:
#Befehle folgen