Technik Wiki
Registrieren
Advertisement
Gruppe: Grid Klebriger Kolben
Anlagen

Grid Roter Sand blass mit Mechaniken

Grid Redstone mit Redstone
                Hier:
Grid Befehlsblock mit Befehlen
Verfügbar in:
Wiki Redstone-Welt Redstone-Welt

Die Mehrfachauswahl ermöglicht den Spielern die Auswahl von mehreren Schaltflächen. Alle Schaltflächen die durch einen Rechtsklick aktiviert werden bleiben das auch. Um sie zu deaktivieren, muss man sie mit einem Linksklick anpeilen.

Variante 1[]

Mehrfachauswahl (Befehle) Bild 1.1 Mehrfachauswahl (Befehle) Bild 1.2 Mehrfachauswahl (Befehle) Bild 1.3

Mit dieser Mehrfachauswahl lassen sich beliebig viele Schaltflächen erzeugen, die man rechtsklicken kann um sie zu aktivieren. Aktivierte Schaltflächen lassen sich durch einen Linksklick wieder deaktivieren.

Einschalten
  • Befehl 1.1 Wenn der Hebel umgelegt wird, wird die Start-Funktion gestartet.
Wiederholen
  • Befehl 1.2 Beim Einschalten wird auch der Wiederhol-Befehlsblock gestartet, der jeden Tick die Zyklus-Funktion lädt.
Ausschalten
  • Befehl 1.3 Wenn der Hebel wieder in Ausgangsstellung zurück gelegt wird, wird die Stopp-Funktion ausgelöst und schaltet alles wieder ab.

Befehlsblöcke mit Befehlen:


Variante 1: Start-Funktion
Die Start-Funktion erstellt das Punktestand-Ziel für das Erkennen von Rechtsklicken auf Dorfbewohnern und gibt den Spielern die Schaltflächen in die Hand.

Editor Icon mehrfachauswahl:v1start.mcfunction
# Das Punktestand-Ziel, für das Erkennen von Rechtsklicks auf Dorfbewohnern, wird erstellt.
scoreboard objectives add PZMehrfA.1Klick minecraft.custom:minecraft.talked_to_villager ["Mehrfachauswahl.1: ",{"text":"Klick auf Dorfbewohner","bold":true}]

# Den Spielern in einem Umkreis von 25 Metern werden 16 Rüstungsständer ins Inventar gelegt.
give @a[distance=..25] minecraft:armor_stand{mehrfachauswahl:"v1gegenstand",display:{Name:'{"text":"Schaltfläche","bold":true}',Lore:['"Platziere den Rüstungsständer"','"um eine Schaltfläche"','"zu erstellen"']},EntityTag:{Small:true,Invisible:true,Tags:["EtiMehrfA.1Alle","EtiMehrfA.1Erstellen"]} } 16

Variante 1: Zyklus-Funktion
Die Zyklus-Funktion sorgt dafür, dass Schaltflächen erzeugt werden, wenn sie durch Rüstungsständer aufgerufen werden. Sie sorgt dafür, dass der Rechtsklick wie auch der Linksklick angezeigt wird.

Editor Icon mehrfachauswahl:v1zyklus.mcfunction
# Wenn der Erstellen-Rüstungsständer platziert wurde, wird an dessen Stelle ein Rüstungsständer mit Dorfbewohner erzeugt. Der Rüstungsständer besitzt einen Anzeigenamen und der Dorfbewohner besitzt keine KI, ist leise, besitzt keine Gravitation, keine Rezepte und ist unsichtbar. Der Erstellen-Rüstungsständer wird danach gelöscht.
execute at @e[type=minecraft:armor_stand,tag=EtiMehrfA.1Erstellen] run summon minecraft:armor_stand ~ ~ ~ {NoGravity:true,Small:true,Invisible:true,Marker:true,CustomNameVisible:true,CustomName:'{"text":"Schaltfläche","bold":true}',Tags:["EtiMehrfA.1Alle","EtiMehrfA.1Auswahl"],ArmorItems:[{},{},{},{id:"minecraft:bell",Count:1b} ],Passengers:[{id:"minecraft:villager",NoAI:true,Silent:true,NoGravity:true,Offers:{Recipes:[]},Tags:["EtiMehrfA.1Alle","EtiMehrfA.1Klicken"],ActiveEffects:[{Id:14b,Amplifier:0b,Ambient:false,ShowParticles:false,Duration:2147483647} ] } ] }
kill @e[type=minecraft:armor_stand,tag=EtiMehrfA.1Erstellen]

# Die Rüstungsständer schaue immer zum Spieler, wenn dieser näher kommt.
execute as @e[type=minecraft:armor_stand,tag=EtiMehrfA.1Auswahl] at @s run teleport @s ~ ~ ~ facing entity @p[distance=..5] eyes

# Wenn der Spieler auf einen Dorfbewohner einen Rechtsklick macht, so erhält er einen Wert, woran das erkannt wird und zwei Meter vor ihm wird nach dem Dorfbewohner Ausschau gehalten. Wenn das zutrifft, wird ein Glocken-Geräiusch abgespielt und der Rüstungsständer bekommt ein Etikett und der Spieler die Benachrichtigung.
execute as @a[scores={PZMehrfA.1Klick=1..}] at @s positioned ^ ^ ^2 if entity @e[distance=..2,type=minecraft:villager,tag=EtiMehrfA.1Klicken] run playsound minecraft:block.bell.use block @s ~ ~ ~ 5 1 1
execute at @a[scores={PZMehrfA.1Klick=1..}] positioned ^ ^ ^2 run tag @e[distance=..2,type=minecraft:armor_stand,tag=EtiMehrfA.1Auswahl,sort=nearest,limit=1] add EtiMehrfA.1Angeklickt
execute as @a[scores={PZMehrfA.1Klick=1..}] at @s positioned ^ ^ ^2 if entity @e[distance=..2,type=minecraft:armor_stand,tag=EtiMehrfA.1Angeklickt,sort=nearest,limit=1] run tellraw @s ["Mehrfachauswahl.1: ",{"text":"Der Schalter wurde aktiviert (Rechtsklick)","bold":true} ]

# Die angeklickten Schaltflächen erzeugen weiße Partikel und besitzen den Leuchten-Effekt.
execute at @e[type=minecraft:armor_stand,tag=EtiMehrfA.1Angeklickt] run particle minecraft:block minecraft:white_concrete ~ ~1.1 ~ 0 0 0 0.1 1 normal @a[distance=..25]
effect give @e[type=minecraft:armor_stand,tag=EtiMehrfA.1Angeklickt] minecraft:glowing 1 1 false

# Spieler die Dorfbewohner angeklickt haben, erhalten wieder den Wert null.
scoreboard players set @a[scores={PZMehrfA.1Klick=1..}] PZMehrfA.1Klick 0

# Dorfbewohner die mit einem Linksklick Schaden erhalten, werden dadurch erkannt, dass deren Gesundheit nicht mehr maximal ist. Spieler im Umkreis erhalten ein Geröusch sowie eine Benachrichtigung. Effekte werden ebenfalls entfernt sowie das Etikett. Der Dorfbewohner wird anschließend wieder auf maximale Gesundheit gesetzt.
execute as @e[type=minecraft:villager,tag=EtiMehrfA.1Klicken] store result score @s PZMehrfA.1Klick run data get entity @s Health 100
execute as @e[type=minecraft:villager,tag=EtiMehrfA.1Klicken,scores={PZMehrfA.1Klick=0..1999}] at @s at @a[distance=..3] positioned ^ ^ ^2 if entity @s[distance=..2] run tellraw @a[distance=..3] ["Mehrfachauswahl.1: ",{"text":"Der Schalter wurde deaktiviert (Linksklick)","bold":true}]
execute as @e[type=minecraft:villager,tag=EtiMehrfA.1Klicken,scores={PZMehrfA.1Klick=0..1999}] at @s at @a[distance=..3] positioned ^ ^ ^2 if entity @s[distance=..2] run playsound minecraft:block.anvil.place block @p ~ ~ ~ 10 1 1
execute at @e[type=minecraft:villager,tag=EtiMehrfA.1Klicken,scores={PZMehrfA.1Klick=0..1999}] at @a[distance=..3] positioned ^ ^ ^2 run effect clear @e[distance=..2,type=minecraft:armor_stand,tag=EtiMehrfA.1Angeklickt,sort=nearest,limit=1]
execute as @e[type=minecraft:villager,tag=EtiMehrfA.1Klicken,scores={PZMehrfA.1Klick=0..1999}] at @s at @a[distance=..3] positioned ^ ^ ^2 run tag @e[distance=..2,type=minecraft:armor_stand,tag=EtiMehrfA.1Angeklickt,sort=nearest,limit=1] remove EtiMehrfA.1Angeklickt
execute as @e[type=minecraft:villager,tag=EtiMehrfA.1Klicken,scores={PZMehrfA.1Klick=0..1999}] run data merge entity @s {Health:20.0f}

Variante 1: Stopp-Funktion
Die Stopp-Funktion löscht das Punktestand-Ziel sowie die Rüstungsständer und Dorfbewohner wieder.

Editor Icon mehrfachauswahl:v1stopp.mcfunction
# Das Punktestand-Ziel wird entfernt.
scoreboard objectives remove PZMehrfA.1Klick

# Alle Rüstungsständer mit der speziellen Eigenschaft werden aus den Inventaren entfernt.
clear @a[distance=..50] minecraft:armor_stand{mehrfachauswahl:"v1gegenstand"}

# Alle Rüstungsständer als Objekt in der Welt oder als Drop, werden gelöscht.
tag @e[type=minecraft:item,nbt={Item:{tag:{mehrfachauswahl:"v1gegenstand"} } }] add EtiMehrfA.1Alle
kill @e[tag=EtiMehrfA.1Alle]


Disambig color
Advertisement