Diese Seite stammt ursprünglich aus de.minecraft.wiki und wurde von der Quelle abweichend verändert.
|
Gruppe: Schaltkreise |
mit Mechaniken |
mit Redstone |
Hier: mit Befehlen |
Verfügbar in: Redstone-Welt |
Ein Impulsgeber gibt ein ganz kurzes Befehlssignal von sich und dieses löst dann eine beliebig große Anzahl an Befehlen aus. Hierbei kann der Impuls sofort erfolgen oder zeitlich verzögert sein, ähnlich einem Zeitbaustein.
Variante 1[]
Folgende Voraussetzungen werden benötigt: | ||
---|---|---|
|
Folgende Materialien werden benötigt: | |
---|---|
|
Mit diesem Impulsgeber erhält man einen Impuls sofort, nachdem man den erhaltenen Stock in der Schnellleiste ausgewählt hat. Der Impuls selbst wird als Chat-Nachricht ausgegeben und erfolgt sofort.
- Einschalten
- Befehl 1.1 Spieler im Umkreis von 15 Blöcken erhalten einen magischen Stock mit speziellen NBT-Eigenschaften.
- Wiederholen
- Befehl 1.2 Wenn Spieler den stock ausgewählt haben, erhalten sie ein Etikett, welches noch weiter unten abgefragt werden kann.
- Befehl 1.3 Wenn der Spieler den Stock in diesen Tick ausgewählt hat, besitzt er noch nicht das Auswahl-Etikett und bekommt deshalb einmalig eine Chat-Nachricht.
- Befehl 1.4 Wenn der Spieler im gleichen Tick den stock ausgewählt hat, erhält er das Auswahl-Etikett.
- Befehl 1.5 Das Auswahl-Etikett wird genau dann wieder entfernt, wenn der Spieler den Stock im selben Tick nicht mehr ausgewählt hat.
- Befehl 1.6 Das Etikett wird entfernt, damit es in jeden Tick nur dann vorhanden ist, wenn der Stock vom Spieler gehalten wird.
- ausschalten
- Befehl 1.7 Das Auswahl-Etikett wird entfernt, falls es beim Ausschalten noch vorhanden war.
- Befehl 1.8 Der Stock wird aus sämtlichen Inventaren der Spieler entfernt.
- Befehl 1.9 Falls Spieler den stock auf den Boden geworfen haben, wird er auch als Drop erkannt und entfernt.
Befehlsblöcke mit Befehlen: |
|
Variante 2[]
Folgende Voraussetzungen werden benötigt: | ||
---|---|---|
|
Folgende Materialien werden benötigt: | |
---|---|
|
Dieser Impulsgeber gibt einen zeitlich verzögerten Impuls aus. Wählt man den Stock aus, so läuft eine Zeit ab und erst wenn diese abgelaufen ist, wird der Impuls in Form eines Chat-Befehls ausgegeben.
- Einschalten
- Befehl 2.1 Das Punkte-Ziel wird erstellt.
- Befehl 2.2 Spielern im Umkreis von 15 Blöcken erhalten einen magischen Stock mit speziellen NBT-Eigenschaften.
- Wiederholen
- Befehl 2.3 Wenn der Spieler den Stock in der Schnellleiste ausgewählt hat, erhält er zur Markierung ein Etikett.
- Befehl 2.4 Wenn der Spieler den Stock ausgewählt hat und dabei in dem Wertebereich von eins bis zehn liegt, erhält er einen Wert dazu.
- Befehl 2.5 Nur wenn der Spieler den stock gerade ausgewählt hat, wird ihm der Wert auf eins gesetzt.
- Befehl 2.6 Wenn der Spieler den Stock ausgewählt hat und einen wert zwischen eins und zehn besitzt, wird eine Titel-Nachricht mit Zeitangabe und Zeitabstand angezeigt.
- Befehl 2.7 Wenn der Spieler den Stock ausgewählt hat und den Wert zehn erreicht hat, wird ihm einmalig eine Chat-Nachricht angezeigt, in der der Impuls erfolgte.
- Befehl 2.8 Um zu erkennen in welchen Tick der Spieler den stock ausgewählt hat, erhält er ein Auswahl-Etikett.
- Befehl 2.9 Wenn der Spieler den Stock in dem Tick nicht mehr ausgewählt hat, wird auch das Auswahl-Etikett entfernt.
- Befehl 2.10 Das Etikett für das Auswählen des Stockes wird wieder entfernt, sodass es nur dann vorhanden ist, wenn der Spieler den Stock tatsächlich ausgewählt hat.
- Ausschalten
- Befehl 2.11 Das Punkte-Ziel wird entfernt und damit auch alle Variablen.
- Befehl 2.12 Das Auswahl-Etikett wird entfernt, falls es beim Ausschalten noch vorhanden war.
- Befehl 2.13 Der Stock wird aus dem Inventar der Spieler gelöscht.
- Befehl 2.14 Der Stock wird auch als Drop in der Welt erkannt und gelöscht.
Befehlsblöcke mit Befehlen: |
|
Variante 3[]
Folgende Voraussetzungen werden benötigt: | ||
---|---|---|
|
Folgende Materialien werden benötigt: | |
---|---|
|
Bei diesen Impulsgeber lässt sich der zeitlich verzögerte Impuls einstellen. Dazu klickt man im Chat auf die entsprechende Schaltfläche, sodass der Zeitabstand erhöht wird. Das sorgt dafür, wenn man den Stock ausgewählt hat, dass erst eine Zeit ablaufen muss, die per Titel-Nachricht angezeigt wird, bevor der Impuls in Form einer Chat-Nachricht angezeigt wird.
- Einschalten
- Befehl 3.1 Auf dem Wiederhol-Befehlsblock befindet sich ein Hebel. Legt man ihn um, wird zuerst der Befehlsblock mit der Start-Funktion impulsgeber:v3start aktiviert.
- Wiederholen
- Befehl 3.2 Gleichzeitig wird auch der Wiederhol-Befehlsblock mit der Zyklus-Funktion impulsgeber:v3zyklus aktiv.
- Ausschalten
- Befehl 3.3 der Befehlsblock löst die Funktion impulsgeber:v3stopp aus.
Befehlsblöcke mit Befehlen: |
|
Datenpaket |
|
Variante 3: Start-Funktion
Die Start-Funktion erstellt die beiden Punkte-Ziele und gibt den Spielern einen speziellen Stock zum auswählen.
impulsgeber:v3start.mcfunction
|
# Es werden zwei Punkte-Ziele erstellt, welche Tick-Wert und den Auslöser-Wert speichern können. scoreboard objectives add PZImpG.3Wert dummy ["Impulsgeber.3: ",{"text":"Wert","bold":true}] scoreboard objectives add PZImpG.3Ausl trigger ["Impulsgeber.3: ",{"text":"Klick","bold":true}] # Es wird eine Variable für den Zeitabstand gesetzt. scoreboard players set VarImpG.3Abstand PZImpG.3Wert 1 # Spieler im Umkreis von 15 Blöcken erhalten einen Stock mit speziellen NBT-Eigenschaften. give @a[distance=..15] minecraft:stick{EigImpG.3Alle:true,EigImpG.3Stock:true,Enchantments:[{id:-1}],display:{Name:'{"text":"Impulsgeber","color":"dark_purple","bold":true}',Lore:['"Wähle den Stock aus"','"um einen Impuls"','"auszulösen."'] } } |
Variante 3: Zyklus-Funktion
Die Zyklus-Funktion prüft die Auswahl und Abwahl des Stockes und sorgt für einen zeitlichen Abstand vom Impuls. Ebenfalls erhält der Spieler die Möglichkeit im Chat den zeitlichen Abstand zu erhöhen.
impulsgeber:v3zyklus.mcfunction
|
# Es wird ein Etikett vergeben, wenn Spieler den Stock in der Schnellleiste ausgewählt haben. tag @a[nbt={SelectedItem:{tag:{EigImpG.3Stock:true} } }] add EtiImpG.3Ausgewaehlt # Wenn Spieler das Etikett besitzen und mindestens den Wert eins besitzen und maximal den Abstandswert haben, dann wird ihnen der Wert um eins erhöht. Falls Spieler gerade den Stock ausgewählt haben, wird ihr Wert auf eins gesetzt. execute as @a[tag=EtiImpG.3Ausgewaehlt,scores={PZImpG.3Wert=1..}] if score @s PZImpG.3Wert <= VarImpG.3Abstand PZImpG.3Wert run scoreboard players add @s PZImpG.3Wert 1 scoreboard players set @a[tag=EtiImpG.3Ausgewaehlt,tag=!EtiImpG.3Auswahl] PZImpG.3Wert 1 # Den Spielern wird durch die Titel-Nachricht über der Schnellleiste der Zeitabstand angezeigt, bis der Impuls in Form einer Chat-Nachricht erscheint. execute as @a[tag=EtiImpG.3Ausgewaehlt,scores={PZImpG.3Wert=1..}] if score @s PZImpG.3Wert <= VarImpG.3Abstand PZImpG.3Wert run title @s actionbar ["",{"score":{"name":"@s","objective":"PZImpG.3Wert"},"color":"yellow","bold":true},{"text":" Ticks, ","color":"gray","bold":true},{"score":{"name":"VarImpG.3Abstand","objective":"PZImpG.3Wert"},"color":"gold","bold":true},{"text":" Abstand","color":"gray","bold":true}] execute as @a[tag=EtiImpG.3Ausgewaehlt] if score @s PZImpG.3Wert = VarImpG.3Abstand PZImpG.3Wert run tellraw @s ["Impulgeber.3:\n",{"text":"Impuls(","color":"gray","bold":true},{"score":{"name":"VarImpG.3Abstand","objective":"PZImpG.3Wert"},"color":"dark_purple","bold":true},{"text":")","color":"gray","bold":true}] # Das Auswahl-Etikett wird in dem Tick vergeben, in dem der Stock ausgewählt wird. ebenfalls wird das Etikett wieder entfernt, wenn in dem Tick der stock nicht mehr ausgewählt wurde. tag @a[tag=EtiImpG.3Ausgewaehlt,tag=!EtiImpG.3Auswahl] add EtiImpG.3Auswahl tag @a[tag=!EtiImpG.3Ausgewaehlt,tag=EtiImpG.3Auswahl] remove EtiImpG.3Auswahl # Damit das Etikett nur vorhanden ist, wenn der Stock ausgewählt wird, wird es nach dem gesamten Vorgang wieder entfernt. tag @a[tag=EtiImpG.3Ausgewaehlt] remove EtiImpG.3Ausgewaehlt # Wenn der Spieler in der Chat-Nachricht auf die Schaltfläche geklickt hat, wird die Abstands-Variable um eins erhöht. execute if entity @p[distance=..15,scores={PZImpG.3Ausl=1}] run scoreboard players add VarImpG.3Abstand PZImpG.3Wert 1 # Wenn die Abstands-Variable existiert und die Spieler eine Schaltfläche angeklickt haben, wird ihnen im Chat erneut die Option mit Schaltflächen angezeigt. execute if score VarImpG.3Abstand PZImpG.3Wert = VarImpG.3Abstand PZImpG.3Wert as @a[distance=..15] unless entity @s[scores={PZImpG.3Ausl=0}] run tellraw @s ["Impulsgeber.3:\n",{"text":"abstand = ","bold":true},{"text":"abstand + 1","color":"gray","bold":true,"underlined":true,"hoverEvent":{"action":"show_text","contents":{"text":"Tippe für Abstand + 1"} },"clickEvent":{"action":"run_command","value":"/trigger PZImpG.3Ausl set 1"} },"\n",{"text":"abstand == ","bold":true},{"score":{"name":"VarImpG.3Abstand","objective":"PZImpG.3Wert"},"color":"dark_purple","bold":true}] # Damit Spieler immer wieder auf die Schaltflächen klicken können, erhalten sie nach dem klicken sofort wieder die Berechtigung und deren Wert wird wieder auf null zurück gesetzt. execute as @a[distance=..15] unless entity @s[scores={PZImpG.3Ausl=0}] run scoreboard players enable @s PZImpG.3Ausl execute as @a[distance=..15] unless entity @s[scores={PZImpG.3Ausl=0}] run scoreboard players set @s PZImpG.3Ausl 0 |
Variante 3: Stopp-Funktion
Die Stopp-Funktion löscht die Punkte-Ziele wieder und den stock bei allen Spielern.
impulsgeber:v3stopp.mcfunction
|
# Die Punkte-Ziele werden gelöscht und damit auch alle Variablen und andere darauf basierende Werte. scoreboard objectives remove PZImpG.3Ausl scoreboard objectives remove PZImpG.3Wert # Der Stock wird aus dem Inventar entfernt. clear @a minecraft:stick{EigImpG.3Alle:true} # Das Auswahl-Etikett wird entfernt, falls es noch beim Ausschalten vorhanden war. tag @a[tag=EtiImpG.3Auswahl] remove EtiImpG.3Auswahl # Falls der Stock auf den Boden geworfen wurde, wird er ebenfalls entfernt. kill @e[type=minecraft:item,nbt={Item:{tag:{EigImpG.3Alle:true} } }] |
Variante 4[]
Folgende Voraussetzungen werden benötigt: | ||
---|---|---|
|
Folgende Materialien werden benötigt: | |
---|---|
|
Dieser Impulsgeber ermöglicht es, dass auch bei der Abwahl des Stockes ein Impuls erfolgt. Ebenso gibt er einen Impuls wenn man den Stock ausgewählt hat, je nach Einstellung. Um den Impuls einzustellen klickt man im Chat auf die Schaltflächen. Hierbei kann der zeitliche Abstand erhöht oder verringert werden. Bei positiven Werten wird die Auswahl des Stockes dazu führen, dass ein zeitlich verzögerter Impuls stattfindet. Wenn der Wert negativ ist, wird nur dann ein Impuls ausgesendet, wenn der Stock wieder abgewählt wurde. Der zeitliche Abstand wird hierbei durch einen Titel-Befehl ermöglicht, der über der Schnellleiste die Zeit anzeigt.
- Einschalten
- Befehl 4.1 Auf dem Wiederhol-Befehlsblock befindet sich ein Hebel. Legt man ihn um, wird zuerst der Befehlsblock mit der Start-Funktion impulsgeber:v4start aktiviert.
- Wiederholen
- Befehl 4.2 Gleichzeitig wird auch der Wiederhol-Befehlsblock mit der Zyklus-Funktion impulsgeber:v4zyklus aktiv.
- Ausschalten
- Befehl 4.3 der Befehlsblock löst die Funktion impulsgeber:v4stopp aus.
Befehlsblöcke mit Befehlen: |
|
Datenpaket |
|
Variante 4: Start-Funktion
Die Start-Funktion erstellt die Punkte-Ziele und gibt den Spieler den Stock.
impulsgeber:v4start.mcfunction
|
# Es werden zwei Punkte-Ziel erstellt, die Werte speichern und für Auslöser-Nachrichten verwendet werden. scoreboard objectives add PZImpG.4Wert dummy ["Impulsgeber.4: ",{"text":"Wert","bold":true}] scoreboard objectives add PZImpG.4Ausl trigger ["Impulsgeber.4: ",{"text":"Klick","bold":true}] # Eine Variable für den Zeitabstand wird angelegt. scoreboard players set VarImpG.4Abstand PZImpG.4Wert 1 # Spieler im Umkreis von 15 Blöcken erhalten einen Stock mit Verzauberungsschimmer. give @a[distance=..15] minecraft:stick{EigImpG.4Alle:true,EigImpG.4Stock:true,Enchantments:[{id:-1}],display:{Name:'{"text":"Impulsgeber","color":"dark_purple","bold":true}',Lore:['"Wähle den Stock aus"','"um einen Impuls"','"auszulösen."'] } } |
Variante 4: Zyklus-Funktion
Die Zyklus-Funktion sorgt für den zeitlichen Abstand von der Auswahl des Stockes bis zur Impuls-Nachricht. Gleichzeitig kann man im Chat auf Schaltflächen klicken um den zeitlichen Abstand zu ändern.
impulsgeber:v4zyklus.mcfunction
|
# Wenn man den Stock auswählt, erhält man ein Etikett. tag @a[nbt={SelectedItem:{tag:{EigImpG.4Stock:true} } }] add EtiImpG.4Ausgewaehlt # Wenn man den Stock ausgewählt hat, und einen Tick zuvor den Wert auf null gesetzt bekommen hat, wird geprüft ob der Wert noch kleiner oder gleich dem Abstandswert ist. Nur dann wird sein Wert um eins erhöht. execute as @a[tag=EtiImpG.4Ausgewaehlt,scores={PZImpG.4Wert=0..}] if score @s PZImpG.4Wert <= VarImpG.4Abstand PZImpG.4Wert run scoreboard players add @s PZImpG.4Wert 1 scoreboard players set @a[tag=EtiImpG.4Ausgewaehlt,tag=!EtiImpG.4Auswahl] PZImpG.4Wert 0 # Ebenfalls, wird auch hier der Wert geändert, wenn man den Stock gerade vor einen Tick abgewählt hat. Der Wert wird dabei solange um eins verringert, solange dieser noch größer gleich dem Abstandswert ist. execute as @a[tag=!EtiImpG.4Ausgewaehlt,scores={PZImpG.4Wert=..0}] if score @s PZImpG.4Wert >= VarImpG.4Abstand PZImpG.4Wert run scoreboard players remove @s PZImpG.4Wert 1 scoreboard players set @a[tag=!EtiImpG.4Ausgewaehlt,tag=EtiImpG.4Auswahl] PZImpG.4Wert 0 # Wenn man den Stock ausgewählt oder nicht mehr ausgewählt hat, wird geprüft ob der Wert noch innerhalb des Abstands liegt und nur dann bekommt der Spieler das Abstands-Etikett. execute as @a[tag=EtiImpG.4Ausgewaehlt,scores={PZImpG.4Wert=0..}] if score @s PZImpG.4Wert <= VarImpG.4Abstand PZImpG.4Wert run tag @s add EtiImpG.4Abstand execute as @a[tag=!EtiImpG.4Ausgewaehlt,tag=!EtiImpG.4Abstand,scores={PZImpG.4Wert=..0}] if score @s PZImpG.4Wert >= VarImpG.4Abstand PZImpG.4Wert run tag @s add EtiImpG.4Abstand # Besitzt der Spieler das Abstands-Etikett, wird die Titel-Nachricht über der Schnellleiste angezeigt. Die Nachricht beinhaltet die Zeit in Ticks, bis der Impuls erfolgt und den Abstandswert, wie weit die Ticks zählen müssen. execute as @a[tag=EtiImpG.4Abstand] run title @s actionbar ["",{"score":{"name":"@s","objective":"PZImpG.4Wert"},"color":"yellow","bold":true},{"text":" Ticks, ","color":"gray","bold":true},{"score":{"name":"VarImpG.4Abstand","objective":"PZImpG.4Wert"},"color":"gold","bold":true},{"text":" Abstand","color":"gray","bold":true}] # Hat der Wert des Spielers den Abstandswert erreicht, erhält der Spieler einen Impuls in Form einer Chat-Nachricht. In der wird auch der Abstandswert angezeigt. execute as @a[tag=EtiImpG.4Abstand] if score @s PZImpG.4Wert = VarImpG.4Abstand PZImpG.4Wert run tellraw @s ["Impulgeber.4:\n",{"text":"Impuls(","color":"gray","bold":true},{"score":{"name":"VarImpG.4Abstand","objective":"PZImpG.4Wert"},"color":"dark_purple","bold":true},{"text":")","color":"gray","bold":true}] # Anschließend wird das Etikett wieder entfernt, falls es vorhanden war. tag @a[tag=EtiImpG.4Abstand] remove EtiImpG.4Abstand # Den Spielern wird im selben Tick in dem sie den Stock ausgewählt haben auch ein Auswahl-Etikett gegeben, um zu merken ob der Stock im gleichen tick ausgewählt wurde oder abgewählt wurde, dabei wird das Auswahl-Etikett wieder entfernt. tag @a[tag=EtiImpG.4Ausgewaehlt,tag=!EtiImpG.4Auswahl] add EtiImpG.4Auswahl tag @a[tag=!EtiImpG.4Ausgewaehlt,tag=EtiImpG.4Auswahl] remove EtiImpG.4Auswahl # Das Etikett wird wieder entfernt, sodass es beim nächsten Tick wieder vergeben werden kann, falls der Stock ausgewählt wurde. tag @a[tag=EtiImpG.4Ausgewaehlt] remove EtiImpG.4Ausgewaehlt # Wenn der Spieler auf eine Schaltfläche geklickt hat, wird der Abstandswert entweder hoch oder heruntergezählt. execute if entity @p[distance=..15,scores={PZImpG.4Ausl=1}] run scoreboard players add VarImpG.4Abstand PZImpG.4Wert 1 execute if entity @p[distance=..15,scores={PZImpG.4Ausl=-1}] run scoreboard players remove VarImpG.4Abstand PZImpG.4Wert 1 # Damit beim Einschalten nur dann die Chat-Nachricht erscheint wird geprüft ob die Abstands-Variable schon angelegt wurde. Nur dann bekommen alle Spieler im Umkreis von 15 Blöcken und auch nur wenn sie etwas angeklickt haben oder noch keinen Wert besitzen die Chat-Nachricht. execute if score VarImpG.4Abstand PZImpG.4Wert = VarImpG.4Abstand PZImpG.4Wert as @a[distance=..15] unless entity @s[scores={PZImpG.4Ausl=0}] run tellraw @s ["Impulsgeber.4:\n",{"text":"abstand = ","bold":true},{"text":"abstand + 1","color":"gray","bold":true,"underlined":true,"hoverEvent":{"action":"show_text","contents":{"text":"Tippe für Abstand + 1"} },"clickEvent":{"action":"run_command","value":"/trigger PZImpG.4Ausl set 1"} },"\n",{"text":"abstand = ","bold":true},{"text":"abstand - 1","color":"gray","bold":true,"underlined":true,"hoverEvent":{"action":"show_text","contents":{"text":"Tippe für Abstand - 1"} },"clickEvent":{"action":"run_command","value":"/trigger PZImpG.4Ausl set -1"} },"\n",{"text":"abstand == ","bold":true},{"score":{"name":"VarImpG.4Abstand","objective":"PZImpG.4Wert"},"color":"dark_purple","bold":true}] # Wenn Spieler etwas angeklickt haben oder noch keinen Wert besitzen, wird ihnen die Berechtigung fürs Anklicken de rschaltflächen gegeben und sie bekommen den Wert null zugewiesen. execute as @a[distance=..15] unless entity @s[scores={PZImpG.4Ausl=0}] run scoreboard players enable @s PZImpG.4Ausl execute as @a[distance=..15] unless entity @s[scores={PZImpG.4Ausl=0}] run scoreboard players set @s PZImpG.4Ausl 0 |
Variante 4: Stopp-Funktion
Die Stopp-Funktion löscht die Punkte-Ziele wieder. sowie die Stöcke und Etiketten.
impulsgeber:v4stopp.mcfunction
|
# Die beiden Punkte-Ziele und damit auch alle Variablen, werden gelöscht. scoreboard objectives remove PZImpG.4Ausl scoreboard objectives remove PZImpG.4Wert # In sämtlichen Inventaren der Spieler wird nach dem Stock gesucht und dieser wird gelöscht. clear @a minecraft:stick{EigImpG.4Alle:true} # Das Etikett für die Auswahl des Stockes wird entfernt, falls er beim Ausschalten ausgewählt wurde. tag @a[tag=EtiImpG.4Auswahl] remove EtiImpG.4Auswahl # Falls man den Stock gedroppt hat, wird er ebenfalls gelöscht. kill @e[type=minecraft:item,nbt={Item:{tag:{EigImpG.4Alle:true} } }] |
|
|