![]() |
Diese Seite stammt ursprünglich aus de.minecraft.wiki und wurde von der Quelle abweichend verändert.
|
Gruppe: ![]() Systeme |
![]() |
![]() |
Hier:![]() |
Verfügbar in:![]() |
![]() |
Das Auftrag-System sorgt dafür, dass dem Spieler bestimmte Aufgaben aufgetragen werden, die dieser erfüllen muss um in seiner Handlung weiter zu kommen. Dabei muss der Spieler im Verlauf verschiedene Aufgaben lösen, Abenteuer bestehen, Feinde besiegen, Objekte finden, Schwierigkeiten überwinden und kann dadurch Ruhm und Erfahrung erlangen. Am besten eignen sich Dorfbewohner als Auftraggeber, da die Interaktion mit diesen sehr einfach abgefragt werden kann.
Zusätzlich: Für das Erstellen eines Dorfbewohners ohne Handelsware empfiehlt es sich, den Dorfbewohner-Generator zu verwenden und um Nachrichten besser ändern zu können, empfiehlt es sich den JSON-Creator zu verwenden.
Variante 1[]
![]() | ||
---|---|---|
|
![]() | |
---|---|
|
Dieses System gibt drei Aufträge vor, die nacheinander abgearbeitet werden müssen. Zuerst soll der Spieler eine Pilzsuppe finden und dem Dorfbewohner Jonas geben. Als nächstes soll er Bill finden und dies anschließend Jonas mitteilen. Als letzes soll der Spieler Zäune und Zauntore herstellen und diese mit Bill handeln, sodass dieser sein Gebiet umzäunen kann.
- Einschalten
Man legt einfach den Hebel auf dem Wiederhol-Befehlsblock um und die Funktion wird eingeschaltet.
- Befehl 1.1 Die Funktion [[#auftrag-system:v1start|auftrag-system:v1start]] wird hierbei aktiviert
- Wiederholen
Mit dem Wiederhol-Befehlsblock wird die Zyklus-Funktion ständig geladen
- Befehl 1.2 die Funktion [[#auftrag-system:v1zyklus|auftrag-system:v1zyklus]] wird ständig aufgerufen.
- Ausschalten
Wenn der Hebel wieder in Ausgangsstellung gelegt wird, aktiviert eine Redstone-Fackel den Befehlsblock, der die Stopp-Funktion aufruft.
- Befehl 1.3 Die Funktion [[#auftrag-system:v1stopp|auftrag-system:v1stopp]] wird geladen
Befehlsblöcke mit Befehlen: |
|
Variante 1: Start-Funktion
Wenn die Start-Funktion geladen wird, werden die Punktestand-Ziele, die Punktestandswerte, der Abenteuermodus und die Dorfbewohner gesetzt.
![]() auftrag-system:v1start.mcfunction
|
# Punkte-Ziele werden erstellt. scoreboard objectives add PZAufS.1Reden minecraft.custom:minecraft.talked_to_villager ["Auftrag-System.1: ",{"text":"Mit Dorfbewohner sprechen","bold":true}] scoreboard objectives add PZAufS.1Handel minecraft.custom:minecraft.traded_with_villager ["Auftrag-System.1: ",{"text":"Mit Dorfbewohner gehandelt","bold":true}] scoreboard objectives add PZAufS.1Nachr dummy ["Auftrag-System.1: ",{"text":"Nachricht mit Dorfbewohnern","bold":true}] scoreboard objectives add PZAufS.1Auftrag dummy ["Auftrag-System.1: ",{"text":"Auftragsnummer","bold":true}] # Die Auftragsnummer und der Fortschritt werden für den Spieler gesetzt. scoreboard players set @p[distance=..25] PZAufS.1Auftrag 1 advancement grant @p[distance=..25] only auftrag-system:v1auftrag # Der Spieler wird in den Abenteuermodus gesetzt. gamemode adventure @p[distance=..25,gamemode=!adventure] # Die Dorfbewohner Jonas und Bill werden erschaffen. summon minecraft:villager ~-5 ~-0.5 ~ {Silent:true,Invulnerable:true,CanPickUpLoot:false,PersistenceRequired:true,CustomName:'{"text":"wahr","color":"green","bold":true}"',Offers:{Recipes:[]},Tags:["EtiAufS.1Alle","EtiAufS.1Jonas"],Attributes:[{Name:"generic.knockbackResistance",Base:"1f"},{Name:"generic.movementSpeed",Base:"0f"}],Passengers:[{id:"minecraft:armor_stand",Small:true,Invisible:true,CustomNameVisible:true,CustomName:'{"text":"Jonas","bold":true}',Tags:["EtiAufS.1Alle","EtiAufS.1Name"],Passengers:[{id:"minecraft:armor_stand",Small:true,Invisible:true,CustomNameVisible:true,CustomName:'{"text":"Auftrag!","underlined":true,"color":"green","bold":true}',Tags:["EtiAufS.1Alle","EtiAufS.1Auftrag"]}]}]} summon minecraft:villager ~-10 ~-0.5 ~ {Silent:true,Invulnerable:true,CanPickUpLoot:false,PersistenceRequired:true,CustomName:'{"text":"falsch","color":"red","bold":true}"',Offers:{Recipes:[]},Tags:["EtiAufS.1Alle","EtiAufS.1Bill"],Attributes:[{Name:"generic.knockbackResistance",Base:"1f"},{Name:"generic.movementSpeed",Base:"0f"}],Passengers:[{id:"minecraft:armor_stand",Small:true,Invisible:true,CustomNameVisible:true,CustomName:'{"text":"Bill","bold":true}',Tags:["EtiAufS.1Alle","EtiAufS.1Name"],Passengers:[{id:"minecraft:armor_stand",Small:true,Invisible:true,CustomNameVisible:true,CustomName:'{"text":"Nichts!","underlined":true,"color":"red","bold":true}',Tags:["EtiAufS.1Alle","EtiAufS.1Auftrag"]}]}]} # Der Chunk wird aktiviert. forceload add ~ ~ |
![]() auftrag-system:v1auftrag.json
|
{ "display": { "icon": { "item":"minecraft:emerald" }, "title": { "text":"Aufträge!", "color":"green", "bold":true }, "frame":"task", "background":"minecraft:textures/block/sandstone.png", "description": [ { "text":"Die Auftragsbücher werden gefüllt!", "color":"gold" } ] }, "criteria": { "Kriterium": { "trigger":"minecraft:impossible" } } } |
Variante 1: Zyklus-Funktion
Die Zyklus-Funktion lädt alle Aufträge, falls sie benötigt werden und sorgt für Partikel, bei den entsprechenden Auftraggebern.
![]() auftrag-system:v1zyklus.mcfunction
|
# Anhand der Namen der Dorfbewohner wird der Rüstungsständer, der den Auftrag anzeigt, so geändert, dass er dem aktuellen Zustand entspricht. execute at @e[type=minecraft:villager,tag=EtiAufS.1Alle,name="wahr"] run data merge entity @e[distance=..5,type=minecraft:armor_stand,tag=EtiAufS.1Auftrag,name=!"Auftrag!",sort=nearest,limit=1] {CustomName:'{"text":"Auftrag!","underlined":true,"color":"green","bold":true}'} execute at @e[type=minecraft:villager,tag=EtiAufS.1Alle,name="falsch"] run data merge entity @e[distance=..5,type=minecraft:armor_stand,tag=EtiAufS.1Auftrag,name=!"Nichts!",sort=nearest,limit=1] {CustomName:'{"text":"Nichts!","underlined":true,"color":"red","bold":true}'} execute at @e[type=minecraft:villager,tag=EtiAufS.1Alle,name="undefiniert"] run data merge entity @e[distance=..5,type=minecraft:armor_stand,tag=EtiAufS.1Auftrag,name=!"Wartet!",sort=nearest,limit=1] {CustomName:'{"text":"Wartet!","underlined":true,"color":"yellow","bold":true}'} # Lässt grüne Partikel bei den Dorfbewohnern, die einen Auftrag für den Spieler haben, entstehen. execute at @e[type=minecraft:villager,tag=EtiAufS.1Alle,name="wahr"] run particle minecraft:happy_villager ~ ~1 ~ 0.2 0.2 0.2 0.1 1 force @p[distance=..10] # Jedesmal wenn man einen Dorfbewohner anklickt, gibt er Sprechlaute von sich. execute at @e[type=minecraft:villager,tag=EtiAufS.1Alle] run playsound minecraft:entity.villager.ambient master @p[distance=..3,scores={PZAufS.1Reden=1..}] ~ ~ ~ 1 0.5 1 # Auftrag 3 execute as @e[type=minecraft:villager,tag=EtiAufS.1Bill,name=!"falsch"] at @s if entity @p[distance=..3,scores={PZAufS.1Auftrag=3}] run function auftrag-system:v1auftrag_3 # Auftrag 2 execute as @e[type=minecraft:villager,tag=EtiAufS.1Jonas,name=!"falsch"] at @s if entity @p[distance=..3,scores={PZAufS.1Auftrag=2}] run function auftrag-system:v1auftrag_2 execute as @e[type=minecraft:villager,tag=EtiAufS.1Bill,name=!"falsch"] at @s if entity @p[distance=..3,scores={PZAufS.1Auftrag=2}] run function auftrag-system:v1auftrag_2_bill # Auftrag 1 execute as @e[type=minecraft:villager,tag=EtiAufS.1Jonas,name=!"falsch"] at @s if entity @p[distance=..3,scores={PZAufS.1Auftrag=1}] run function auftrag-system:v1auftrag_1 # Wenn der Spieler mit einem Dorfbewohner gehandelt hat, erklingt ein fröhliches Dorfbewohner-Geräusch. execute as @a[scores={PZAufS.1Handel=1..}] at @e[type=minecraft:villager,tag=EtiAufS.1Alle] run playsound minecraft:entity.villager.yes master @s ~ ~ ~ 1 0.5 1 scoreboard players set @a[scores={PZAufS.1Handel=1..}] PZAufS.1Handel 0 # Wenn der Spieler mit einem Dorfbewohner geredet hat, wird sein entsprechender Punktestand zurück gesetzt. scoreboard players set @a[scores={PZAufS.1Reden=1..}] PZAufS.1Reden 0 |
Variante 1: Auftrag-1-Funktion
In dieser Aufgabe geht es darum, dem Dorfbewohner eine Pilzsuppe zu bringen. Der ganze Dialog läuft über das Rechtsklicken der Maus, wodurch man den Dorfbewohner dazu bringt, einem etwas über die Aufgabe zu erzählen. Am Ende der Aufgabe bekommt man von dem Dorfbewohner für das Erfüllen der Aufgabe eine kleine Belohnung in Form von Smaragden
![]() auftrag-system:v1auftrag_1.mcfunction
|
# Wenn der Spieler mit dem Dorfbewohner Jonas redet, wird sein Punktestand für die Nachricht entsprechend eingestellt. scoreboard players add @p[distance=..3,scores={PZAufS.1Reden=1..}] PZAufS.1Nachr 1 scoreboard players set @p[distance=..3,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=3..}] PZAufS.1Nachr 1 # Wenn der Spieler gehandelt hat und den Smaragd ins Inventar gelegt hat, wird der Fortschritt ausgelöst und dann wird das Handeslmenü wieder entfernt. tag @p[distance=..3,advancements={auftrag-system:v1auftrag_1_pilzsuppe=true,auftrag-system:v1auftrag_1_handel=false},nbt={Inventory:[{tag:{EigAufS.1Auftrag1:true} } ] }] add EtiAufS.1Erledigt advancement grant @p[distance=..3,tag=EtiAufS.1Erledigt] only auftrag-system:v1auftrag_1_handel tellraw @p[distance=..3,tag=EtiAufS.1Erledigt] ["",{"text":"[1/1]","color":"gray"},{"text":" «","color":"gold","bold":true},{"entity":"@e[distance=..2,type=minecraft:armor_stand,tag=EtiAufS.1Name,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"» ","color":"gold","bold":true},{"text":"Der Handel ist erledigt. Ohne dich hätte ich wohl verhungern müssen.","color":"gray"}] execute if entity @p[distance=..3,tag=EtiAufS.1Erledigt] run data merge entity @s {NoAI:false,Offers:{Recipes:[] } } scoreboard players set @p[distance=..3,tag=EtiAufS.1Erledigt] PZAufS.1Auftrag 2 scoreboard players set @p[distance=..3,tag=EtiAufS.1Erledigt] PZAufS.1Nachr 0 tag @p[distance=..3,tag=EtiAufS.1Erledigt] remove EtiAufS.1Erledigt # Wenn der spieler die Pilzsuppe im Inventar trägt, erhält der Spieler den Fortschritt und Jonas handelt mit dem Handelsmenü. tag @p[distance=..3,advancements={auftrag-system:v1auftrag_1=true,auftrag-system:v1auftrag_1_pilzsuppe=false},scores={PZAufS.1Reden=1..},nbt={Inventory:[{id:"minecraft:mushroom_stew",tag:{EigAufS.1Alle:true} } ] }] add EtiAufS.1Inventar advancement grant @p[distance=..3,tag=EtiAufS.1Inventar] only auftrag-system:v1auftrag_1_pilzsuppe execute if entity @p[distance=..3,tag=EtiAufS.1Inventar] run data merge entity @s {NoAI:true,Offers:{Recipes:[{buy:{id:"minecraft:mushroom_stew",Count:1b},sell:{id:"minecraft:emerald",Count:1b,tag:{EigAufS.1Alle:true,EigAufS.1Auftrag1:true} },maxUses:1,uses:0} ] } } tellraw @p[distance=..3,tag=EtiAufS.1Inventar] ["",{"text":"[1/1]","color":"gray"},{"text":" «","color":"gold","bold":true},{"entity":"@e[distance=..2,type=minecraft:armor_stand,tag=EtiAufS.1Name,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"» ","color":"gold","bold":true},{"text":"Endlich meine Suppe, tausche sie mit mir in meinem Handeslmenü.","color":"yellow"}] tag @p[distance=..3,tag=EtiAufS.1Inventar] remove EtiAufS.1Inventar # Nachrichten von Jonas, wenn man in rechtsklickt. Er gibt dem Spieler den Auftrag die Pilzsuppe zu holen. tag @p[distance=..3,advancements={auftrag-system:v1auftrag_1_pilzsuppe=false},scores={PZAufS.1Reden=1..}] add EtiAufS.1Reden tellraw @p[distance=..3,tag=EtiAufS.1Reden,scores={PZAufS.1Nachr=1}] ["",{"text":"[1/2]","color":"gray"},{"text":" «","color":"gold","bold":true},{"entity":"@e[distance=..2,type=minecraft:armor_stand,tag=EtiAufS.1Name,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"» ","color":"gold","bold":true},{"text":"Ich leide schon seit drei Tagen an Hunger. Wärst du so nett und holst mir eine ","color":"yellow"},{"text":"[Pilzsuppe]","color":"green","hoverEvent":{"action":"show_text","value":{"text":"Hole Jonas 1x Pilzsuppe"} } } ] tellraw @p[distance=..3,tag=EtiAufS.1Reden,scores={PZAufS.1Nachr=2}] ["",{"text":"[2/2]","color":"gray"},{"text":" «","color":"gold","bold":true},{"entity":"@e[distance=..2,type=minecraft:armor_stand,tag=EtiAufS.1Name,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"» ","color":"gold","bold":true},{"text":"Du bist ja immer noch hier. Los hol mir was zu essen!","color":"yellow"}] tag @p[distance=..3,tag=EtiAufS.1Reden] remove EtiAufS.1Reden # Der Spieler erhält den entsprechenden Fortschritt, wenn er mit Jonas das erste mal gesprochen hat und somit den Auftrag erfüllen soll. tag @p[distance=..3,advancements={auftrag-system:v1auftrag_1=false},scores={PZAufS.1Reden=1..}] add EtiAufS.1Auftrag advancement grant @p[distance=..3,tag=EtiAufS.1Auftrag] only auftrag-system:v1auftrag_1 execute if entity @p[distance=..3,tag=EtiAufS.1Auftrag] run setblock ~ ~ ~-5 minecraft:chest[facing=south]{Items:[{Slot:13b,id:"minecraft:mushroom_stew",Count:1b,tag:{EigAufS.1Alle:true,display:{Lore:['"Ein Auftragsgegenstand"'] } } } ] } replace tag @p[distance=..3,tag=EtiAufS.1Auftrag] remove EtiAufS.1Auftrag |
![]() auftrag-system:v1auftrag_1.json
|
{ "display": { "icon": { "item":"minecraft:bowl" }, "title":"1. Auftrag!", "frame":"task", "description":"Klicke mit Rechts auf Jonas um mehr über den Auftrag zu erfahren." }, "parent":"auftrag-system:v1auftrag", "criteria": { "Kriterium": { "trigger":"minecraft:impossible" } } } |
![]() auftrag-system:v1auftrag_1_pilzsuppe.json
|
{ "display": { "icon": { "item":"minecraft:mushroom_stew" }, "title":"Pilzige Angelegenheit!", "frame":"task", "description":"Finde und bringe die Pilzsuppe zu Jonas." }, "parent":"auftrag-system:v1auftrag_1", "criteria": { "Kriterium": { "trigger":"minecraft:impossible" } } } |
![]() auftrag-system:v1auftrag_1_handel.json
|
{ "display": { "icon": { "item":"minecraft:mushroom_stew" }, "title":"Handel!", "frame":"goal", "description":"Tausche die Pilzsuppe gegen deine Belohnung." }, "parent":"auftrag-system:v1auftrag_1_pilzsuppe", "criteria": { "Kriterium": { "trigger":"minecraft:impossible" } } } |
Variante 1: Auftrag-2-Funktion
In der zweiten Aufgabe, welche auf der ersten Aufgabe aufbaut, muss man den Freund des ersten Dorfbewohners suchen. Hierzu benötigt man einen weiteren Dorfbewohner, der bereits mit der Start-Funktion erstellt wurde
![]() auftrag-system:v1auftrag_2.mcfunction
|
# Wenn der Spieler mit dem Dorfbewohner Jonas redet, wird sein Punktestand für die Nachricht eingestellt. scoreboard players add @p[distance=..3,scores={PZAufS.1Reden=1..}] PZAufS.1Nachr 1 scoreboard players set @p[distance=..3,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=4..}] PZAufS.1Nachr 1 # Wenn der Spieler mit Bill gesprochen und somit gefunden hat, dann gibt Jonas dem Spieler die Belohnung. tag @p[distance=..3,advancements={auftrag-system:v1auftrag_2_bill=true,auftrag-system:v1auftrag_2_jonas=false},scores={PZAufS.1Reden=1..}] add EtiAufS.1Erledigt advancement grant @p[distance=..3,tag=EtiAufS.1Erledigt] only auftrag-system:v1auftrag_2_jonas tellraw @p[distance=..3,tag=EtiAufS.1Erledigt] ["",{"text":"[1/1]","color":"gray"},{"text":" «","color":"gold","bold":true},{"entity":"@e[distance=..2,type=minecraft:armor_stand,tag=EtiAufS.1Name,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"» ","color":"gold","bold":true},{"text":"Danke, dass du nach ihm geschaut hast.","color":"gray"}] execute if entity @p[distance=..3,tag=EtiAufS.1Erledigt] run data merge entity @e[type=minecraft:villager,tag=EtiAufS.1Bill,name=!"wahr",sort=nearest,limit=1] {CustomName:'{"text":"wahr","color":"green","bold":true}'} execute if entity @p[distance=..3,tag=EtiAufS.1Erledigt] run data merge entity @s[name="wahr"] {CustomName:'{"text":"falsch","color":"red","bold":true}'} playsound minecraft:entity.villager.yes master @p[distance=..3,tag=EtiAufS.1Erledigt] ~ ~ ~ 1 0.5 1 give @p[distance=..3,tag=EtiAufS.1Erledigt] minecraft:emerald{EigAufS.1Alle:true} 1 scoreboard players set @p[distance=..3,tag=EtiAufS.1Erledigt] PZAufS.1Auftrag 3 scoreboard players set @p[distance=..3,tag=EtiAufS.1Erledigt] PZAufS.1Nachr 0 tag @p[distance=..3,tag=EtiAufS.1Erledigt] remove EtiAufS.1Erledigt # Nachrichten an den Spieler. Jonas gibt den Auftrag Bill zu suchen. tellraw @p[distance=..3,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=1}] ["",{"text":"[1/3]","color":"gray"},{"text":" «","color":"gold","bold":true},{"entity":"@e[distance=..2,type=minecraft:armor_stand,tag=EtiAufS.1Name,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"» ","color":"gold","bold":true},{"text":"Weißt du wo sich mein Freund","color":"yellow"},{"text":" [Bill] ","color":"green","hoverEvent":{"action":"show_text","value":{"text":"Suche Bill"} } },{"text":"befindet?","color":"yellow"} ] tellraw @p[distance=..3,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=2}] ["",{"text":"[2/3]","color":"gray"},{"text":" «","color":"gold","bold":true},{"entity":"@e[distance=..2,type=minecraft:armor_stand,tag=EtiAufS.1Name,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"» ","color":"gold","bold":true},{"text":"Ich glaube er spielt schon wieder im Wald, bin mir aber nicht sicher.","color":"yellow"}] tellraw @p[distance=..3,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=3}] ["",{"text":"[3/3]","color":"gray"},{"text":" «","color":"gold","bold":true},{"entity":"@e[distance=..2,type=minecraft:armor_stand,tag=EtiAufS.1Name,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"» ","color":"gold","bold":true},{"text":"Viel mehr Angaben kann ich dir nicht machen, das ist alles was ich weiß.","color":"yellow"}] # Wenn der Spieler Jonas anklickt, erhält er den Auftrag Bill zu suchen (Fortschritt). tag @p[distance=..3,advancements={auftrag-system:v1auftrag_2=false},scores={PZAufS.1Reden=1..}] add EtiAufS.1Auftrag execute if entity @p[distance=..3,tag=EtiAufS.1Auftrag] run data merge entity @e[type=minecraft:villager,tag=EtiAufS.1Bill,name="falsch",sort=nearest,limit=1] {CustomName:'{"text":"wahr","color":"green","bold":true}'} execute if entity @p[distance=..3,tag=EtiAufS.1Auftrag] run data merge entity @s[name="wahr"] {CustomName:'{"text":"undefiniert","color":"yellow","bold":true}'} advancement grant @p[distance=..3,tag=EtiAufS.1Auftrag] only auftrag-system:v1auftrag_2 tag @p[distance=..3,tag=EtiAufS.1Auftrag] remove EtiAufS.1Auftrag |
![]() auftrag-system:v1auftrag_2.json
|
{ "display": { "icon": { "item":"minecraft:leather_boots" }, "title":"2. Auftrag!", "frame":"task", "description":"Klicke mit Rechts auf Jonas um mehr über den Auftrag zu erfahren." }, "parent":"auftrag-system:v1auftrag", "criteria": { "Kriterium": { "trigger":"minecraft:impossible" } } } |
![]() auftrag-system:v1auftrag_2_jonas.json
|
{ "display": { "icon": { "item":"minecraft:leather_boots" }, "title":"Gefunden!", "frame":"goal", "description":"Laufe zu Jonas und berichte ihm die freudige Nachricht." }, "parent":"auftrag-system:v1auftrag_2_bill", "criteria": { "Kriterium": { "trigger":"minecraft:impossible" } } } |
Variante 1: Auftrag-2-Bill-Funktion
Die Funktion lässt Bill dem Spieler eine Nachricht ausgeben, wenn dieser ihn gefunden und angesprochen hat.
![]() auftrag-system:v1auftrag_2_bill.mcfunction
|
# Wenn der Spieler Bill gefunden hat und anspricht, so gibt er die Anweisung, Jonas anzusprechen. tellraw @p[distance=..3,advancements={auftrag-system:v1auftrag_2=true},scores={PZAufS.1Reden=1..}] ["",{"text":"[1/1]","color":"gray"},{"text":" «","color":"gold","bold":true},{"entity":"@e[distance=..2,type=minecraft:armor_stand,tag=EtiAufS.1Name,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"» ","color":"gold","bold":true},{"text":"Was? Jonas hat dich geschickt um zu wissen wo ich bin? Sag ihm es geht mir gut.","color":"yellow"}] # Wenn der Spieler Bill anspricht, erhält er den Fortschritt und Jonas wird zum Ansprechpartner. tag @p[distance=..3,advancements={auftrag-system:v1auftrag_2=true,auftrag-system:v1auftrag_2_bill=false},scores={PZAufS.1Reden=1..}] add EtiAufS.1Auftrag advancement grant @p[distance=..3,tag=EtiAufS.1Auftrag] only auftrag-system:v1auftrag_2_bill execute if entity @p[distance=..3,tag=EtiAufS.1Auftrag] run data merge entity @e[type=minecraft:villager,tag=EtiAufS.1Jonas,name=!"wahr",sort=nearest,limit=1] {CustomName:'{"text":"wahr","color":"green","bold":true}'} execute if entity @p[distance=..3,tag=EtiAufS.1Auftrag] run data merge entity @s[name="wahr"] {CustomName:'{"text":"undefiniert","color":"red","bold":true}'} tag @p[distance=..3,tag=EtiAufS.1Auftrag] remove EtiAufS.1Auftrag |
![]() auftrag-system:v1auftrag_2_bill.json
|
{ "display": { "icon": { "item":"minecraft:leather_boots" }, "title":"Das verlorene Kind!", "frame":"task", "description":"Suche Bill." }, "parent":"auftrag-system:v1auftrag_2", "criteria": { "Kriterium": { "trigger":"minecraft:impossible" } } } |
Variante 1: Auftrag-3-Funktion
Bei der dritten Aufgabe soll der Spieler mit den gegebenen Holzmaterialien Zäune und Zauntor herstellen und dem Dorfbewohner übergeben.
![]() auftrag-system:v1auftrag_3.mcfunction
|
# Wenn der Spieler mit dem Dorfbewohner Bill redet, wird sein Punktestand für die Nachricht eingestellt. scoreboard players add @p[distance=..3,scores={PZAufS.1Reden=1..}] PZAufS.1Nachr 1 scoreboard players set @p[distance=..3,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=4..}] PZAufS.1Nachr 1 # Wenn der Spieler dem Dorfbewohner Bill die Auftragsmaterialien gegeben hat, werden die entsprechenden Punktestand-Ziele angepasst. Die Auftrag-3-Erledigt-Funktion wird zehn Sekunden verzögert ausgeführt. tag @p[distance=..3,advancements={auftrag-system:v1auftrag_3_zaun=true,auftrag-system:v1auftrag_3_handel=false},nbt={Inventory:[{tag:{EigAufS.1Auftrag3:true} } ] }] add EtiAufS.1Erledigt advancement grant @p[distance=..3,tag=EtiAufS.1Erledigt] only auftrag-system:v1auftrag_3_handel tellraw @p[distance=..3,tag=EtiAufS.1Erledigt] ["",{"text":"[1/1]","color":"gray"},{"text":" «","color":"gold","bold":true},{"entity":"@e[distance=..2,type=minecraft:armor_stand,tag=EtiAufS.1Name,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"» ","color":"gold","bold":true},{"text":"Prima, jetzt kann ich meinen Bereich einzäunen.","color":"gray"}] execute if entity @p[distance=..3,tag=EtiAufS.1Erledigt] run data merge entity @s[name="wahr"] {NoAI:false,CustomName:'{"text":"falsch","color":"red","bold":true}',Offers:{Recipes:[] } } execute if entity @p[distance=..3,tag=EtiAufS.1Erledigt] run schedule function auftrag-system:v1auftrag_3_erledigt 10s replace scoreboard players set @p[distance=..3,tag=EtiAufS.1Erledigt] PZAufS.1Auftrag 4 scoreboard players set @p[distance=..3,tag=EtiAufS.1Erledigt] PZAufS.1Nachr 0 tag @p[distance=..3,tag=EtiAufS.1Erledigt] remove EtiAufS.1Erledigt # Wenn der Spieler für Bill die sechs Zäune und das Zauntor hergestellt hat, besitzt er diese in seinem Inventar und auch den Fortschritt, dass er dafür den Auftrag bekommen hat. tag @p[distance=..3,advancements={auftrag-system:v1auftrag_3=true,auftrag-system:v1auftrag_3_zaun=false},scores={PZAufS.1Reden=1..},nbt={Inventory:[{id:"minecraft:oak_fence"},{id:"minecraft:oak_fence_gate"}]}] add EtiAufS.1Inventar advancement grant @p[distance=..3,tag=EtiAufS.1Inventar] only auftrag-system:v1auftrag_3_zaun execute if entity @p[distance=..3,tag=EtiAufS.1Inventar] run data merge entity @s {NoAI:true,Offers:{Recipes:[{buy:{id:"minecraft:oak_fence",Count:24b},buyB:{id:"minecraft:oak_fence_gate",Count:1b},sell:{id:"minecraft:emerald",Count:1b,tag:{EigAufS.1Alle:true,EigAufS.1Auftrag3:true} },maxUses:1,uses:0} ] } } tellraw @p[distance=..3,tag=EtiAufS.1Inventar] ["",{"text":"[1/1]","color":"gray"},{"text":" «","color":"gold","bold":true},{"entity":"@e[distance=..2,type=minecraft:armor_stand,tag=EtiAufS.1Name,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"» ","color":"gold","bold":true},{"text":"Wie ich sehe hast du die Zäune und das Zauntor bei dir, dann gebe ich dir im Handelsmenü deine Belohnung.","color":"yellow"}] tag @p[distance=..3,tag=EtiAufS.1Inventar] remove EtiAufS.1Inventar # Bill gibt bei einem Rechtsklickt auf ihn drei Nachrichten nacheinander aus, um dem Spieler zu erklären, was er von ihm verlangt. tag @p[distance=..3,advancements={auftrag-system:v1auftrag_3_zaun=false},scores={PZAufS.1Reden=1..}] add EtiAufS.1Reden tellraw @p[distance=..3,tag=EtiAufS.1Reden,scores={PZAufS.1Nachr=1}] ["",{"text":"[1/3]","color":"gray"},{"text":" «","color":"gold","bold":true},{"entity":"@e[distance=..2,type=minecraft:armor_stand,tag=EtiAufS.1Name,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"» ","color":"gold","bold":true},{"text":"Hey du, du siehst aus, als ob du ","color":"yellow"},{"text":"[Zäune und Zauntore]","color":"green","hoverEvent":{"action":"show_text","value":{"text":"Stelle 24x Zäune und 1x Zauntor her"} } },{"text":" herstellen könntest.","color":"yellow"} ] tellraw @p[distance=..3,tag=EtiAufS.1Reden,scores={PZAufS.1Nachr=2}] ["",{"text":"[2/3]","color":"gray"},{"text":" «","color":"gold","bold":true},{"entity":"@e[distance=..2,type=minecraft:armor_stand,tag=EtiAufS.1Name,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"» ","color":"gold","bold":true},{"text":"Ich glaube ich hatte hier irgendwo doch meine Werkbank stehen. Dort in der Nähe befinden sich dann auch die Materialien für das Herstellen.","color":"yellow"}] tellraw @p[distance=..3,tag=EtiAufS.1Reden,scores={PZAufS.1Nachr=3}] ["",{"text":"[3/3]","color":"gray"},{"text":" «","color":"gold","bold":true},{"entity":"@e[distance=..2,type=minecraft:armor_stand,tag=EtiAufS.1Name,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"» ","color":"gold","bold":true},{"text":"Was stehst du hier so ahnungslos herum? Du bekommst das doch bestimmt hin.","color":"yellow"}] tag @p[distance=..3,tag=EtiAufS.1Reden] remove EtiAufS.1Reden # Falls der Spieler Bill das erste angeklickt hat, wird die Werkbank und die Truhe mit dem Material platziert. Der Spieler erhält dann den Fortschritt für den Auftrag. tag @p[distance=..3,advancements={auftrag-system:v1auftrag_3=false},scores={PZAufS.1Reden=1..}] add EtiAufS.1Auftrag advancement grant @p[distance=..3,tag=EtiAufS.1Auftrag] only auftrag-system:v1auftrag_3 execute if entity @p[distance=..3,tag=EtiAufS.1Auftrag] run setblock ~ ~ ~-5 minecraft:crafting_table replace execute if entity @p[distance=..3,tag=EtiAufS.1Auftrag] run setblock ~ ~ ~-6 minecraft:chest[facing=north]{Items:[{Slot:12b,id:"minecraft:oak_planks",Count:34b,tag:{EigAufS.1Alle:true,display:{Lore:['"Ein Auftragsgegenstand"'] } } },{Slot:13b,id:"minecraft:stick",Count:20b,tag:{EigAufS.1Alle:true,display:{Lore:['"Ein Auftragsgegenstand"'] } } } ] } replace tag @p[distance=..3,tag=EtiAufS.1Auftrag] remove EtiAufS.1Auftrag |
![]() auftrag-system:v1auftrag_3.json
|
{ "display": { "icon": { "item":"minecraft:oak_fence" }, "title":"3. Auftrag!", "frame":"task", "description":"Klicke mit Rechts auf Bill um mehr über den Auftrag zu erfahren." }, "parent":"auftrag-system:v1auftrag", "criteria": { "Kriterium": { "trigger":"minecraft:impossible" } } } |
![]() auftrag-system:v1auftrag_3_zaun.json
|
{ "display": { "icon": { "item":"minecraft:oak_fence" }, "title":"Zäune herstellen!", "frame":"task", "description":"Stelle für Bill 24 Zäune und ein Zauntor her." }, "parent":"auftrag-system:v1auftrag_3", "criteria": { "Kriterium": { "trigger":"minecraft:impossible" } } } |
![]() auftrag-system:v1auftrag_3_handel.json
|
{ "display": { "icon": { "item":"minecraft:oak_fence_gate" }, "title":"Umzäunte Verhältnisse!", "frame":"challenge", "description":"Gib Bill die Zäune und das Zauntor." }, "parent":"auftrag-system:v1auftrag_3_zaun", "criteria": { "Kriterium": { "trigger":"minecraft:impossible" } } } |
Variante 1: Auftrag-3-Erledigt-Funktion
Die Funktion wird geladen, wenn der Spieler den Auftrag für das Herstellen von Zäunen am erledigen ist. Der Dorfbewohner Bill wird dann die Belohnung übergeben.
![]() auftrag-system:v1auftrag_3_erledigt.mcfunction
|
# Holzgeräusche und Explosionspartikel erscheinen, damit im Anschluss der Zaun entstehen kann. execute at @e[type=minecraft:villager,tag=EtiAufS.1Bill] run playsound minecraft:block.barrel.close master @a[distance=..25] execute at @e[type=minecraft:villager,tag=EtiAufS.1Bill] run particle minecraft:explosion_emitter ~ ~ ~ 0 0 0 0 1 force @r[distance=..25] execute at @e[type=minecraft:villager,tag=EtiAufS.1Bill] run fill ~-3 ~ ~-3 ~3 ~ ~3 minecraft:oak_fence replace execute at @e[type=minecraft:villager,tag=EtiAufS.1Bill] run fill ~-2 ~ ~-2 ~2 ~ ~2 minecraft:air replace execute at @e[type=minecraft:villager,tag=EtiAufS.1Bill] run setblock ~3 ~ ~ minecraft:oak_fence_gate[facing=east,open=true] replace |
Variante 1: Stopp-Funktion
Die Stopp-Funktion löscht alle Punktestand-Ziele, setzt den Spieler wieder in den Kreativmodus und löscht alle Blöcke die gesetzt wurden, wie auch die Dorfbewohner und Gegenstände die der Spieler im Laufe der Aufträge erhalten hat.
![]() auftrag-system:v1stopp.mcfunction
|
# Die Punkte-Ziele werden entfernt. scoreboard objectives remove PZAufS.1Reden scoreboard objectives remove PZAufS.1Handel scoreboard objectives remove PZAufS.1Nachr scoreboard objectives remove PZAufS.1Auftrag # Der Spieler wird wieder in den Kreativmodus gesetzt. gamemode creative @a[distance=..25,gamemode=!creative] # Alle Blöcke die im Laufe der Aufträge platziert wurden, werden wieder entfernt. execute at @e[type=minecraft:villager,tag=EtiAufS.1Alle] run fill ~ ~ ~-5 ~ ~ ~-6 minecraft:air replace execute at @e[type=minecraft:villager,tag=EtiAufS.1Bill] run fill ~-3 ~ ~-3 ~3 ~ ~3 minecraft:air replace # Alle Dorfbewohner werden entfernt. kill @e[tag=EtiAufS.1Alle] # Spielern werden Smaragde, Pilzsuppen und Erfahrungspunkte entfernt. clear @a[distance=..25] minecraft:emerald clear @a[distance=..25] minecraft:mushroom_stew experience add @a[distance=..25] -15 points # Alle Fortschritte, von der Wurzel ausgehend, werden entfernt. advancement revoke @a[advancements={auftrag-system:v1auftrag=true}] from auftrag-system:v1auftrag # Der dauerhaft aktive Chunk wird wieder deaktiviert. forceload remove ~ ~ |
![]() |
Mausklick-Sensor => Befehle; Zeichen-Eingabe => Befehle; Hungerpunkte-System => Befehle; Lebenspunkte-System => Befehle; Werkzeug-System => Befehle; Steinbruch-System => Befehle; Teleporter => Befehle; Kontrollpunkt-System => Befehle; Wegfindungssystem => Befehle; Befehle-System => Befehle; Passwort-System => Befehle; Wahl-System => Befehle; Kamera-System => Befehle; Sammel-System => Befehle; Zonen-System => Befehle; Auftrag-System => Befehle (erweitert); Gildenschlacht-Minispiel => Befehle; |
---|
![]() |
|
---|