Technik Wiki
K (Rostiger Bot verschob die Seite Maschinen/Auftrag-System (Befehle) nach Auftrag-System (Befehle): Bot: Namensraum entfernt)
(In Downloadwelt enthalten: Mechanik-Welt 1.15a)
 
(4 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Unterseite|gruppe=Maschinen|
+
{{Unterseite|gruppe=Systeme|
{{Seitenkopf|dw=m}}
+
{{Seitenkopf|dw=m|bep=1}}
 
}}
 
}}
 
Das '''Auftrag-System''' sorgt dafür, dass dem Spieler bestimmte [[de.wikipedia:Quest|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.
 
Das '''Auftrag-System''' sorgt dafür, dass dem Spieler bestimmte [[de.wikipedia:Quest|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.
Zeile 8: Zeile 8:
 
== Variante 1 ==
 
== Variante 1 ==
 
{{Voraussetzung|
 
{{Voraussetzung|
*[[Schaltkreise/Taktgeber (Befehle)]]
+
*[[Taktgeber (Befehle)]]
 
*{{mcw|Funktion}}
 
*{{mcw|Funktion}}
  +
*{{mcw|Fortschrittsdaten}}
 
|
 
|
 
*{{Gridbild|Hebel|link}}
 
*{{Gridbild|Hebel|link}}
 
*{{Gridbild|Redstone-Fackel|link}}
 
*{{Gridbild|Redstone-Fackel|link}}
*{{Gridbild|Befehlsblock|link}}
+
*{{Gridbild|Befehlsblock|link|stapel=2}}
 
*{{Gridbild|Wiederhol-Befehlsblock|link}}
 
*{{Gridbild|Wiederhol-Befehlsblock|link}}
 
}}
 
}}
{{Bilderfolge|#1#2#3|Maschinen Auftrag-System (Befehle) Bild 1.|400px|list=1}}
+
{{Bilderfolge|#1#2#3|Auftrag-System (Befehle) Bild 1.|400px|list=1}}
   
Dieses System gibt drei Aufträge vor, die nacheinander abgearbeitet werden müssen. Zuerst soll der Spieler eine Pilzsuppe finden und dem Dorfbewohner Jones geben. Als nächstes soll er Bill ansprechen und dies mitteilen. Als letzes soll der Spieler Zäune und Zauntore herstellen und diese mit Bill handeln.
+
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.
   
   
Zeile 35: Zeile 36:
   
 
{{Ausklappmenü|offen=1|{{bb}}|
 
{{Ausklappmenü|offen=1|{{bb}}|
{{bb|1|1|i|4=function technik_wiki:auftrag-system/v1start}}
+
{{bb|1|1|i|4=function auftrag-system:v1start}}
{{bb|1|2|w|4=function technik_wiki:auftrag-system/v1zyklus}}
+
{{bb|1|2|w|4=function auftrag-system:v1zyklus}}
   
   
{{bb|1|3|i|4=function technik_wiki:auftrag-system/v1stopp}}
+
{{bb|1|3|i|4=function auftrag-system:v1stopp}}
 
}}
 
}}
   
   
 
{{fü|1|name=Start}}
 
{{fü|1|name=Start}}
Wenn die Start-Funktion geladen wird, werden die Punktestand-Ziele, die Punktestandswerte, der Überlebensmodus und die Dorfbewohner gesetzt.
+
Wenn die Start-Funktion geladen wird, werden die Punktestand-Ziele, die Punktestandswerte, der Abenteuermodus und die Dorfbewohner gesetzt.
* {{f|link=technik_wiki:auftrag-system/v1start|line=2}} für das Erfassen von Rechtsklicken auf den Dorfbewohner
 
* {{f|link=technik_wiki:auftrag-system/v1start|line=3}} für das Erfassen von abgeschlossenen Handel der Dorfbewohner
 
* {{f|link=technik_wiki:auftrag-system/v1start|line=4}} für das Speichern der Nachrichtsnummer
 
* {{f|link=technik_wiki:auftrag-system/v1start|line=5}} für das Speichern der Auftragsnummer
 
   
* {{f|link=technik_wiki:auftrag-system/v1start|line=8}} der Spieler bekommt den ersten Auftrag in Form eines Punktestandes
+
{{f|name=auftrag-system:v1start|alias=v1start|1=
  +
# Punkte-Ziele werden erstellt.
 
* {{f|link=technik_wiki:auftrag-system/v1start|line=11}} der Spieler wird in den Überlebensmodus gesetzt
 
 
* {{f|link=technik_wiki:auftrag-system/v1start|line=14}} Dorfbewohner Jones wird erschaffen
 
* {{f|link=technik_wiki:auftrag-system/v1start|line=15}} Dorfbewohner Bill wird erschaffen
 
 
{{f|name=technik_wiki:auftrag-system/v1start|alias=v1start|1=
 
# Punktestand-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.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 dem Dorfbewohner gehandelt","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.1Nachr dummy ["Auftrag-System.1: ",{"text":"Nachricht mit Dorfbewohnern","bold":true}]
 
scoreboard objectives add PZAufS.1Auftrag dummy ["Auftrag-System.1: ",{"text":"Auftragsnummer","bold":true}]
 
scoreboard objectives add PZAufS.1Auftrag dummy ["Auftrag-System.1: ",{"text":"Auftragsnummer","bold":true}]
   
# Die Punktestandswerte werden für den Spieler gesetzt
+
# Die Auftragsnummer und der Fortschritt werden für den Spieler gesetzt.
scoreboard players set @a[distance=..25] PZAufS.1Auftrag 1
+
scoreboard players set @p[distance=..25] PZAufS.1Auftrag 1
  +
advancement grant @p[distance=..25] only auftrag-system:v1auftrag
   
# Der Spieler wird in den Überlebensmodus gesetzt
+
# Der Spieler wird in den Abenteuermodus gesetzt.
gamemode survival @a[distance=..25,gamemode=!survival]
+
gamemode adventure @p[distance=..25,gamemode=!adventure]
   
# Die Dorfbewohner werden erschaffen
+
# Die Dorfbewohner Jonas und Bill werden erschaffen.
summon minecraft:villager ~-5 ~ ~ {Silent:true,Invulnerable:true,CanPickUpLoot:false,PersistenceRequired:true,CustomNameVisible:true,CustomName:"{\"text\":\"Jones\",\"bold\":true}",Offers:{Recipes:[]},Tags:["EtiAufS.1Alle","EtiAufS.1AuftragVorhanden"],Profession:1,Career:1,CareerLevel:42,Attributes:[{Name:"generic.knockbackResistance",Base:"1f"},{Name:"generic.movementSpeed",Base:"0f"}]}
+
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 ~ ~ {Silent:true,Invulnerable:true,CanPickUpLoot:false,PersistenceRequired:true,CustomNameVisible:true,CustomName:"{\"text\":\"Bill\",\"bold\":true}",Offers:{Recipes:[]},Tags:["EtiAufS.1Alle"],Profession:2,Career:1,CareerLevel:42,Attributes:[{Name:"generic.knockbackResistance",Base:"1f"},{Name:"generic.movementSpeed",Base:"0f"}]}
 
  +
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 ~ ~
  +
}}
  +
{{JSON-Datei|name=auftrag-system:v1auftrag|type=advancement|1=
  +
{
  +
"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"
  +
}
  +
}
  +
}
 
}}
 
}}
 
   
 
{{fü|1|name=Zyklus}}
 
{{fü|1|name=Zyklus}}
 
Die Zyklus-Funktion lädt alle Aufträge, falls sie benötigt werden und sorgt für Partikel, bei den entsprechenden Auftraggebern.
 
Die Zyklus-Funktion lädt alle Aufträge, falls sie benötigt werden und sorgt für Partikel, bei den entsprechenden Auftraggebern.
* {{f|link=technik_wiki:auftrag-system/v1zyklus|line=2}} lässt beim Auftraggeber (der ein Etikett dafür erhalten hat) grüne Partikel entstehen
 
* {{f|link=technik_wiki:auftrag-system/v1zyklus|line=5}} erzeugt Sprechgeräusche in der Nähe von Dorfbewohnern, wenn ein Spieler sie anklickt
 
   
  +
{{f|name=auftrag-system:v1zyklus|alias=v1zyklus|1=
* {{f|link=technik_wiki:auftrag-system/v1zyklus|line=8}} Der dritte Auftrag wird ausgelöst, wenn der Spieler diesen gerade zu erledigen hat (Punktewert bei 3). Dazu wird von dem Dorfbewohner aus geprüft ob der Spieler in einem Radius von maximal drei Blöcken um diesen sich befindet und mit ihm gerade redet und die entsprechende Auftragsnummer besitzt.
 
  +
# Anhand der Namen der Dorfbewohner wird der Rüstungsständer, der den Auftrag anzeigt, so geändert, dass er dem aktuellen Zustand entspricht.
* {{f|link=technik_wiki:auftrag-system/v1zyklus|line=9}} Vom dritten Auftrag wird auch noch geprüft ob der Spieler mit dem Dorfbewohner den Handel durchgeführt hat
 
  +
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.
* {{f|link=technik_wiki:auftrag-system/v1zyklus|line=12}} Der zweite Auftrag wird aufgerufen wenn der Spieler diesen zu erledigen hat
 
  +
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]
* {{f|link=technik_wiki:auftrag-system/v1zyklus|line=13}} Der zweite Auftrag beinhaltet auch dass Bill gefunden wird, dazu wird die entsprechende Funktion ebenfalls geladen
 
   
  +
# Jedesmal wenn man einen Dorfbewohner anklickt, gibt er Sprechlaute von sich.
* {{f|link=technik_wiki:auftrag-system/v1zyklus|line=16}} Der erste Auftrag wird aufgerufen wenn der Spieler diesen zu erledigen hat, dazu erhält der Spieler von der Start-Funktion den Auftragswert von 1
 
  +
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
 
* {{f|link=technik_wiki:auftrag-system/v1zyklus|line=19}} Wenn der Spieler mit irgendeinem Dorfbewohner gesprochen hat (Rechtsklick auf den Dorfbewohner), wird der Punktestand wieder zurück gesetzt
 
 
{{f|name=technik_wiki:auftrag-system/v1zyklus|alias=v1zyklus|1=
 
# 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,tag=EtiAufS.1AuftragVorhanden] run particle minecraft:happy_villager ~ ~1 ~ 0.2 0.2 0.2 0.1 1 force @a[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 @a[distance=..3,scores={PZAufS.1Reden=1..}] ~ ~ ~ 1 0.5 1
 
   
 
# Auftrag 3
 
# Auftrag 3
execute as @e[type=minecraft:villager,name=Bill,tag=EtiAufS.1Alle] at @s if entity @a[distance=..3,scores={PZAufS.1Reden=1..,PZAufS.1Auftrag=3}] run function technik_wiki:auftrag-system/v1auftrag_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
execute as @e[type=minecraft:villager,name=Bill,tag=EtiAufS.1Alle] at @s if entity @a[distance=..3,scores={PZAufS.1Handel=1..,PZAufS.1Auftrag=3}] run function technik_wiki:auftrag-system/v1auftrag_3_handel
 
   
 
# Auftrag 2
 
# Auftrag 2
execute as @e[type=minecraft:villager,name=Jones,tag=EtiAufS.1Alle] at @s if entity @a[distance=..3,scores={PZAufS.1Reden=1..,PZAufS.1Auftrag=2}] run function technik_wiki:auftrag-system/v1auftrag_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,name=Bill,tag=EtiAufS.1Alle] at @s if entity @a[distance=..3,scores={PZAufS.1Reden=1..,PZAufS.1Auftrag=2}] run function technik_wiki:auftrag-system/v1auftrag_2_bill
+
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
 
# Auftrag 1
execute as @e[type=minecraft:villager,name=Jones,tag=EtiAufS.1Alle] at @s if entity @a[distance=..3,scores={PZAufS.1Reden=1..,PZAufS.1Auftrag=1}] run function technik_wiki:auftrag-system/v1auftrag_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 geredet hat, wird sein entsprechender Punktestand zurück gesetzt
+
# 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 reset @a[scores={PZAufS.1Reden=1..}] PZAufS.1Reden
 
  +
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
 
}}
 
}}
   
Zeile 116: Zeile 139:
 
{{fü|1|name=Auftrag-1}}
 
{{fü|1|name=Auftrag-1}}
 
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
 
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
* {{f|link=technik_wiki:auftrag-system/v1auftrag_1|line=2}} Damit die Nachrichten nach einander ausgegeben werden, wird die Nachricht als Punktestand im Spieler gespeichert
 
* {{f|link=technik_wiki:auftrag-system/v1auftrag_1|line=3}} Wenn die maximale Anzahl der Nachrichten erreicht wurde, wird der Punktestand wieder zurück gesetzt und die Nachrichten beginnen wieder von vorne
 
   
  +
{{f|name=auftrag-system:v1auftrag_1|1=
* {{f|link=technik_wiki:auftrag-system/v1auftrag_1|line=6}} Von dem Dorfbewohner aus, wird geprüft ob in einem Radius von maximal drei Blöcken ein Spieler sich aufhält, der die Suppe besorgen sollte, mit dem Dorfbewohner redet und eine beliebige Nachricht von ihm erhalten hat. Und er muss eine Pilzsuppe in dem Inventar haben, dann wird ihm genau eine Pilzsuppe aus dem Inventar gelöscht und nur dann wird dieser Erfolg als Punktestand in dem Dorfbewohner gespeichert.
 
  +
# 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.
* {{f|link=technik_wiki:auftrag-system/v1auftrag_1|line=9}} Nur wenn das Entfernen der Pilzsuppe vom Spieler der den Auftrag dazu hatte erfolgreich war, gibt er jetzt die Erfolgsnaichricht aus,
 
  +
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
* {{f|link=technik_wiki:auftrag-system/v1auftrag_1|line=10}} gibt ein Erfolgsgeräusch ab,
 
  +
advancement grant @p[distance=..3,tag=EtiAufS.1Erledigt] only auftrag-system:v1auftrag_1_handel
* {{f|link=technik_wiki:auftrag-system/v1auftrag_1|line=11}} gibt dem Spieler fünf Erfahrungspunkte
 
  +
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"}]
* {{f|link=technik_wiki:auftrag-system/v1auftrag_1|line=12}} gibt dem Spieler einen Smaragd,
 
  +
execute if entity @p[distance=..3,tag=EtiAufS.1Erledigt] run data merge entity @s {NoAI:false,Offers:{Recipes:[] } }
* {{f|link=technik_wiki:auftrag-system/v1auftrag_1|line=13}} gibt dem Spieler den zweiten Auftrag,
 
  +
scoreboard players set @p[distance=..3,tag=EtiAufS.1Erledigt] PZAufS.1Auftrag 2
* {{f|link=technik_wiki:auftrag-system/v1auftrag_1|line=14}} setzt die Nachrichten auf null und
 
  +
scoreboard players set @p[distance=..3,tag=EtiAufS.1Erledigt] PZAufS.1Nachr 0
* {{f|link=technik_wiki:auftrag-system/v1auftrag_1|line=15}} entfernt das Etikett für den Auftrag, dass die Suppe geholt werden soll
 
  +
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ü.
* {{f|link=technik_wiki:auftrag-system/v1auftrag_1|line=18}} Wenn der Spieler den Dorfbewohner einfach nur rechtsklickt, gibt dieser eine von zwei Nachrichten aus
 
  +
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
* {{f|link=technik_wiki:auftrag-system/v1auftrag_1|line=19}} Diese Nachricht wird beim zweiten anklicken ausgegeben
 
  +
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.
* {{f|link=technik_wiki:auftrag-system/v1auftrag_1|line=22}} Wenn der Spieler das erste mal mit dem Dorfbewohner gesprochen hat, wird eine Truhe erstellt, in der sich die Pilzsuppe befindet und
 
  +
tag @p[distance=..3,advancements={auftrag-system:v1auftrag_1_pilzsuppe=false},scores={PZAufS.1Reden=1..}] add EtiAufS.1Reden
* {{f|link=technik_wiki:auftrag-system/v1auftrag_1|line=23}} er erhält das Etikett um ihn damit zu markieren, dass er jetzt die Pilzsuppe besorgen soll
 
  +
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.
{{f|name=technik_wiki:auftrag-system/v1auftrag_1|1=
 
  +
tag @p[distance=..3,advancements={auftrag-system:v1auftrag_1=false},scores={PZAufS.1Reden=1..}] add EtiAufS.1Auftrag
# Wenn der Spieler mit dem Dorfbewohner Jones redet, wird sein Punktestand für die Nachricht eingestellt
 
scoreboard players add @a[distance=..3,scores={PZAufS.1Reden=1..}] PZAufS.1Nachr 1
+
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
scoreboard players set @a[distance=..3,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=3..}] PZAufS.1Nachr 1
 
  +
tag @p[distance=..3,tag=EtiAufS.1Auftrag] remove EtiAufS.1Auftrag
 
  +
}}
# Vom Dorfbewohner Jones wird geprüft ob der Spieler eine Pilzsuppe in der Hand hat und ob er von Jones schon den Auftrag dafür bekommen hat (Etikett)
 
  +
{{JSON-Datei|name=auftrag-system:v1auftrag_1|type=advancement|1=
execute store success score @s PZAufS.1Nachr run clear @a[distance=..3,tag=EtiAufS.1JonesSuppeHolen,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=1..},nbt={Inventory:[{id:"minecraft:mushroom_stew",tag:{display:{Lore:["Ein Auftragsgegenstand"] } } } ] } ] minecraft:mushroom_stew{display:{Lore:["Ein Auftragsgegenstand"] } } 1
 
  +
{
 
  +
"display":
# Nur wenn dem Spieler die Pilzsuppe entfernt werden könnte besitzt Jones für seinen Punktestand eine eins, dann wird dem Spieler die Belohnung gegeben
 
  +
{
execute if entity @s[scores={PZAufS.1Nachr=1}] run tellraw @a[distance=..3,tag=EtiAufS.1JonesSuppeHolen,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=1..}] ["",{"text":"[1/1]","color":"gray"},{"text":" «","color":"gold","bold":true},{"selector":"@s"},{"text":"» ","color":"gold","bold":true},{"text":"Endlich meine Suppe, danke.","color":"gray"}]
 
  +
"icon":
execute if entity @s[scores={PZAufS.1Nachr=1}] run playsound minecraft:entity.player.levelup master @a[distance=..3,tag=EtiAufS.1JonesSuppeHolen,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=1..}] ~ ~ ~ 1 0.5 1
 
  +
{
execute if entity @s[scores={PZAufS.1Nachr=1}] run experience add @a[distance=..3,tag=EtiAufS.1JonesSuppeHolen,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=1..}] 5 points
 
  +
"item":"minecraft:bowl"
execute if entity @s[scores={PZAufS.1Nachr=1}] run give @a[distance=..3,tag=EtiAufS.1JonesSuppeHolen,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=1..}] minecraft:emerald 1
 
  +
},
execute if entity @s[scores={PZAufS.1Nachr=1}] run scoreboard players set @a[distance=..3,tag=EtiAufS.1JonesSuppeHolen,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=1..}] PZAufS.1Auftrag 2
 
  +
"title":"1. Auftrag!",
execute if entity @s[scores={PZAufS.1Nachr=1}] run scoreboard players set @a[distance=..3,tag=EtiAufS.1JonesSuppeHolen,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=1..}] PZAufS.1Nachr 0
 
  +
"frame":"task",
execute if entity @s[scores={PZAufS.1Nachr=1}] run tag @a[distance=..3,tag=EtiAufS.1JonesSuppeHolen,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=0}] remove EtiAufS.1JonesSuppeHolen
 
  +
"description":"Klicke mit Rechts auf Jonas um mehr über den Auftrag zu erfahren."
 
  +
},
# Nachrichten von Jones, wenn man in rechtsklickt. Er gibt dem Spieler den Auftrag die Pilzsuppe zu holen
 
  +
"parent":"auftrag-system:v1auftrag",
tellraw @a[distance=..3,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=1}] ["",{"text":"[1/2]","color":"gray"},{"text":" «","color":"gold","bold":true},{"selector":"@s"},{"text":"» ","color":"gold","bold":true},{"text":"Ich leide schon seit 3 Tagen an Hunger. Wärst du so nett und holst mir","color":"yellow"},{"text":" [1 Pilzsuppe] ","color":"green","hoverEvent":{"action":"show_text","value":{"text":"Hole Jones 1x Pilzsuppe"} } } ]
 
  +
"criteria":
tellraw @a[distance=..3,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=2}] ["",{"text":"[2/2]","color":"gray"},{"text":" «","color":"gold","bold":true},{"selector":"@s"},{"text":"» ","color":"gold","bold":true},{"text":"Du bist ja immer noch hier. Los hol mir was zu essen!","color":"yellow"}]
 
  +
{
 
  +
"Kriterium":
# Der Spieler erhält das entsprechende Etikett, wenn er mit Jones das erste mal gesprochen hat und somit den Auftrag erfüllen soll
 
  +
{
execute if entity @a[distance=..3,tag=!EtiAufS.1JonesSuppeHolen,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=1..}] run setblock ~ ~ ~-5 minecraft:chest[facing=south]{Items:[{Slot:13b,id:"minecraft:mushroom_stew",Count:1b,tag:{display:{Lore:["Ein Auftragsgegenstand"] } } } ] } replace
 
  +
"trigger":"minecraft:impossible"
tag @a[distance=..3,tag=!EtiAufS.1JonesSuppeHolen,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=1..}] add EtiAufS.1JonesSuppeHolen
 
  +
}
  +
}
  +
}
  +
}}
  +
{{JSON-Datei|name=auftrag-system:v1auftrag_1_pilzsuppe|type=advancement|1=
  +
{
  +
"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"
  +
}
  +
}
  +
}
  +
}}
  +
{{JSON-Datei|name=auftrag-system:v1auftrag_1_handel|type=advancement|1=
  +
{
  +
"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"
  +
}
  +
}
  +
}
 
}}
 
}}
 
   
 
{{fü|1|name=Auftrag-2}}
 
{{fü|1|name=Auftrag-2}}
 
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
 
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
* {{f|link=technik_wiki:auftrag-system/v1auftrag_2|line=2}} Wie beim ersten Auftrag wird auch hier die Nachricht gespeichert, die der Dorfbewohner dem Spieler ausgibt.
 
* {{f|link=technik_wiki:auftrag-system/v1auftrag_2|line=3}} Wenn die maximale Anzahl der Nachrichten erreicht wurde, wird der wert zurück gesetzt und es beginnt wieder von vorne
 
   
  +
{{f|name=auftrag-system:v1auftrag_2|1=
* {{f|link=technik_wiki:auftrag-system/v1auftrag_2|line=6}} Wenn der Spieler mit Bill dem gesuchten Dorfbewohner gesprochen hat, dann erhält er die Erfolgsnachricht,
 
  +
# Wenn der Spieler mit dem Dorfbewohner Jonas redet, wird sein Punktestand für die Nachricht eingestellt.
* {{f|link=technik_wiki:auftrag-system/v1auftrag_2|line=7}} Bill erhält das Etikett für den dritten Auftrag,
 
  +
scoreboard players add @p[distance=..3,scores={PZAufS.1Reden=1..}] PZAufS.1Nachr 1
* {{f|link=technik_wiki:auftrag-system/v1auftrag_2|line=8}} Jones, der Auftraggeber bekommt das Etikett entfernt
 
  +
scoreboard players set @p[distance=..3,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=4..}] PZAufS.1Nachr 1
* {{f|link=technik_wiki:auftrag-system/v1auftrag_2|line=9}} es wird ein Erfolgsgeräusch abgespielt,
 
* {{f|link=technik_wiki:auftrag-system/v1auftrag_2|line=10}} der Spieler erhält fünf Erfahrungspunkte,
 
* {{f|link=technik_wiki:auftrag-system/v1auftrag_2|line=11}} der Spieler erhält einen Smaragd
 
* {{f|link=technik_wiki:auftrag-system/v1auftrag_2|line=12}} der Spieler erhält den dritten Auftrag als Punktestand
 
* {{f|link=technik_wiki:auftrag-system/v1auftrag_2|line=13}} die Nachrichten werden wieder auf null gesetzt und
 
* {{f|link=technik_wiki:auftrag-system/v1auftrag_2|line=14}} das Etikett für das Suchen von Bill wird entfernt
 
   
  +
# Wenn der Spieler mit Bill gesprochen und somit gefunden hat, dann gibt Jonas dem Spieler die Belohnung.
* {{f|link=technik_wiki:auftrag-system/v1auftrag_2|line=17}} Jones erklärt in drei Nachrichten den zweiten Auftrag an den Spieler. Die zweite Nachricht {{f|link=technik_wiki:auftrag-system/v1auftrag_2|line=18|up=1}} und dritte Nachricht {{f|link=technik_wiki:auftrag-system/v1auftrag_2|line=19|up=1}}
 
  +
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.
* {{f|link=technik_wiki:auftrag-system/v1auftrag_2|line=22}} Wenn der Spieler den Dorfbewohner für diesen Auftrag das erste mal anklickt, wird der gesuchte Dorfbewohner Bill ein Etikett erhalten.
 
  +
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"} ]
* {{f|link=technik_wiki:auftrag-system/v1auftrag_2|line=23}} Gleichzeitig erhält auch der Spieler selbst das Etikett für das Suchen von Bill.
 
  +
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).
{{f|name=technik_wiki:auftrag-system/v1auftrag_2|1=
 
  +
tag @p[distance=..3,advancements={auftrag-system:v1auftrag_2=false},scores={PZAufS.1Reden=1..}] add EtiAufS.1Auftrag
# Wenn der Spieler mit dem Dorfbewohner Jones redet, wird sein Punktestand für die Nachricht eingestellt
 
  +
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}'}
scoreboard players add @a[distance=..3,scores={PZAufS.1Reden=1..}] PZAufS.1Nachr 1
 
  +
execute if entity @p[distance=..3,tag=EtiAufS.1Auftrag] run data merge entity @s[name="wahr"] {CustomName:'{"text":"undefiniert","color":"yellow","bold":true}'}
scoreboard players set @a[distance=..3,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=4..}] PZAufS.1Nachr 1
 
  +
advancement grant @p[distance=..3,tag=EtiAufS.1Auftrag] only auftrag-system:v1auftrag_2
 
  +
tag @p[distance=..3,tag=EtiAufS.1Auftrag] remove EtiAufS.1Auftrag
# Wenn der Spieler mit Bill gesprochen und damit gefunden hat, dann gibt Jones dem Spieler die Belohnung
 
  +
}}
tellraw @a[distance=..3,tag=EtiAufS.1BillGefunden,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=1..}] ["",{"text":"[1/1]","color":"gray"},{"text":" «","color":"gold","bold":true},{"selector":"@s"},{"text":"» ","color":"gold","bold":true},{"text":"Danke, dass du nach ihm geschaut hast.","color":"gray"}]
 
  +
{{JSON-Datei|name=auftrag-system:v1auftrag_2|type=advancement|1=
execute if entity @a[distance=..3,tag=EtiAufS.1BillGefunden,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=1..}] run tag @e[type=minecraft:villager,name=Bill,tag=!EtiAufS.1AuftragVorhanden] add EtiAufS.1AuftragVorhanden
 
  +
{
execute if entity @a[distance=..3,tag=EtiAufS.1BillGefunden,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=1..}] run tag @s[tag=EtiAufS.1AuftragVorhanden] remove EtiAufS.1AuftragVorhanden
 
  +
"display":
playsound minecraft:entity.player.levelup master @a[distance=..3,tag=EtiAufS.1BillGefunden,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=1..}] ~ ~ ~ 1 0.5 1
 
  +
{
experience add @a[distance=..3,tag=EtiAufS.1BillGefunden,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=1..}] 5 points
 
  +
"icon":
give @a[distance=..3,tag=EtiAufS.1BillGefunden,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=1..}] minecraft:emerald 1
 
  +
{
scoreboard players set @a[distance=..3,tag=EtiAufS.1BillGefunden,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=1..}] PZAufS.1Auftrag 3
 
  +
"item":"minecraft:leather_boots"
scoreboard players set @a[distance=..3,tag=EtiAufS.1BillGefunden,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=1..}] PZAufS.1Nachr 0
 
  +
},
tag @a[distance=..3,tag=EtiAufS.1BillGefunden,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=0}] remove EtiAufS.1BillGefunden
 
  +
"title":"2. Auftrag!",
 
  +
"frame":"task",
# Nachrichten an den Spieler. Jones gibt den Auftrag Bill zu suchen
 
  +
"description":"Klicke mit Rechts auf Jonas um mehr über den Auftrag zu erfahren."
tellraw @a[distance=..3,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=1}] ["",{"text":"[1/3]","color":"gray"},{"text":" «","color":"gold","bold":true},{"selector":"@s"},{"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 @a[distance=..3,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=2}] ["",{"text":"[2/3]","color":"gray"},{"text":" «","color":"gold","bold":true},{"selector":"@s"},{"text":"» ","color":"gold","bold":true},{"text":"Ich glaube er spielt schon wieder im Wald, bin mir aber nicht sicher.","color":"yellow","bold":false}]
 
  +
"parent":"auftrag-system:v1auftrag",
tellraw @a[distance=..3,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=3}] ["",{"text":"[3/3]","color":"gray"},{"text":" «","color":"gold","bold":true},{"selector":"@s"},{"text":"» ","color":"gold","bold":true},{"text":"Viel mehr Angaben kann ich dir nicht machen, das ist alles was ich weiß.","color":"yellow","bold":false}]
 
  +
"criteria":
 
  +
{
# Wenn der Spieler Jones anklickt, erhält er den Auftrag Bill zu suchen (Etikett)
 
  +
"Kriterium":
execute if entity @a[distance=..3,tag=!EtiAufS.1BillSuchen,tag=!EtiAufS.1BillGefunden,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=1..}] run tag @e[type=minecraft:villager,name=Bill,tag=!EtiAufS.1AuftragVorhanden] add EtiAufS.1AuftragVorhanden
 
  +
{
execute if entity @a[distance=..3,tag=!EtiAufS.1BillSuchen,tag=!EtiAufS.1BillGefunden,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=1..}] run tag @s[tag=EtiAufS.1AuftragVorhanden] remove EtiAufS.1AuftragVorhanden
 
  +
"trigger":"minecraft:impossible"
tag @a[distance=..3,tag=!EtiAufS.1BillSuchen,tag=!EtiAufS.1BillGefunden,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=1..}] add EtiAufS.1BillSuchen
 
  +
}
  +
}
  +
}
  +
}}
  +
{{JSON-Datei|name=auftrag-system:v1auftrag_2_jonas|type=advancement|1=
  +
{
  +
"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"
  +
}
  +
}
  +
}
 
}}
 
}}
 
   
 
{{fü|1|name=Auftrag-2-Bill}}
 
{{fü|1|name=Auftrag-2-Bill}}
 
Die Funktion lässt Bill dem Spieler eine Nachricht ausgeben, wenn dieser ihn gefunden und angesprochen hat.
 
Die Funktion lässt Bill dem Spieler eine Nachricht ausgeben, wenn dieser ihn gefunden und angesprochen hat.
* {{f|link=technik_wiki:auftrag-system/v1auftrag_2_bill|line=2}} Wenn der Spieler Bill anspricht, erhält er die Nachricht
 
   
  +
{{f|name=auftrag-system:v1auftrag_2_bill|1=
* {{f|link=technik_wiki:auftrag-system/v1auftrag_2_bill|line=5}} Der Dorfbewohner Jones bekommt wieder das Etikett für den Auftrag, und Bill bekommt es entfernt {{f|link=technik_wiki:auftrag-system/v1auftrag_2_bill|line=6|up=1}} und der Spieler erhält das Etikett, dass er Bill gefunden hat {{f|link=technik_wiki:auftrag-system/v1auftrag_2_bill|line=7|up=1}} und das Etikett, dass er ihn suchen soll wird entfernt {{f|link=technik_wiki:auftrag-system/v1auftrag_2_bill|line=8|up=1}}
 
  +
# 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.
{{f|name=technik_wiki:auftrag-system/v1auftrag_2_bill|1=
 
  +
tag @p[distance=..3,advancements={auftrag-system:v1auftrag_2=true,auftrag-system:v1auftrag_2_bill=false},scores={PZAufS.1Reden=1..}] add EtiAufS.1Auftrag
# Wenn der Spieler Bill gefunden hat und anspricht, so gibt er die Anweisung, Jones anzusprechen
 
  +
advancement grant @p[distance=..3,tag=EtiAufS.1Auftrag] only auftrag-system:v1auftrag_2_bill
tellraw @a[distance=..3,tag=EtiAufS.1BillSuchen,scores={PZAufS.1Reden=1..}] ["",{"text":"[1/1]","color":"gray"},{"text":" «","color":"gold","bold":true},{"selector":"@s"},{"text":"» ","color":"gold","bold":true},{"text":"Was? Jones hat dich geschickt um zu wissen wo ich bin? Sag ihm es geht mir gut.","color":"yellow","bold":false}]
 
  +
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}'}
# Den jenigen den der Spieler nun ansprechen soll erhält das Etikett und der Spieler erhält das Etikett, dass er Bill gefunden hat
 
  +
tag @p[distance=..3,tag=EtiAufS.1Auftrag] remove EtiAufS.1Auftrag
execute if entity @a[distance=..3,tag=EtiAufS.1BillSuchen,tag=!EtiAufS.1BillGefunden,scores={PZAufS.1Reden=1..}] run tag @e[type=minecraft:villager,name=Jones,tag=!EtiAufS.1AuftragVorhanden] add EtiAufS.1AuftragVorhanden
 
  +
}}
execute if entity @a[distance=..3,tag=EtiAufS.1BillSuchen,tag=!EtiAufS.1BillGefunden,scores={PZAufS.1Reden=1..}] run tag @s[tag=EtiAufS.1AuftragVorhanden] remove EtiAufS.1AuftragVorhanden
 
  +
{{JSON-Datei|name=auftrag-system:v1auftrag_2_bill|type=advancement|1=
tag @a[distance=..3,tag=EtiAufS.1BillSuchen,tag=!EtiAufS.1BillGefunden,scores={PZAufS.1Reden=1..}] add EtiAufS.1BillGefunden
 
  +
{
tag @a[distance=..3,tag=EtiAufS.1BillGefunden,scores={PZAufS.1Reden=1..}] remove EtiAufS.1BillSuchen
 
  +
"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"
  +
}
  +
}
  +
}
 
}}
 
}}
 
   
 
{{fü|1|name=Auftrag-3}}
 
{{fü|1|name=Auftrag-3}}
 
Bei der dritten Aufgabe soll der Spieler mit den gegebenen Holzmaterialien Zäune und Zauntor herstellen und dem Dorfbewohner übergeben.
 
Bei der dritten Aufgabe soll der Spieler mit den gegebenen Holzmaterialien Zäune und Zauntor herstellen und dem Dorfbewohner übergeben.
* {{f|link=technik_wiki:auftrag-system/v1auftrag_3|line=2}} Wie bei den anderen Aufträgen, wird auch hier die Nachricht hochgezählt
 
* {{f|link=technik_wiki:auftrag-system/v1auftrag_3|line=3}} und zurückgesetzt, wenn die maximale Anzahl erreicht wurde
 
   
  +
{{f|name=auftrag-system:v1auftrag_3|1=
* {{f|link=technik_wiki:auftrag-system/v1auftrag_3|line=6}} Wenn der Spieler für Bill die Zäune und Zauntore hergestellt hat und nun mit Bill dem Dorfbewohner redet, erhält er zuerst ein Etikett, dass er die Zäune hergestellt hat
 
  +
# Wenn der Spieler mit dem Dorfbewohner Bill redet, wird sein Punktestand für die Nachricht eingestellt.
* {{f|link=technik_wiki:auftrag-system/v1auftrag_3|line=7}} Anschließend bekommt Bill den Handel hinzu, dass er Zäune und Zauntor gegen einen Smaragd tauscht.
 
  +
scoreboard players add @p[distance=..3,scores={PZAufS.1Reden=1..}] PZAufS.1Nachr 1
* {{f|link=technik_wiki:auftrag-system/v1auftrag_3|line=8}} Danach erhält der Spieler eine Erfolgsnachricht und
 
  +
scoreboard players set @p[distance=..3,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=4..}] PZAufS.1Nachr 1
* {{f|link=technik_wiki:auftrag-system/v1auftrag_3|line=9}} der Dorfbewohner erhält das Etikett, dass der Auftrag erledigt ist
 
   
  +
# 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.
* {{f|link=technik_wiki:auftrag-system/v1auftrag_3|line=12}} Bill gibt insgesamt drei Nachrichten von sich um den Auftrag zu erklären. Die zweite Nachricht {{f|link=technik_wiki:auftrag-system/v1auftrag_3|line=13|up=1}} und die dritte Nachricht {{f|link=technik_wiki:auftrag-system/v1auftrag_3|line=14|up=1}}.
 
  +
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.
* {{f|link=technik_wiki:auftrag-system/v1auftrag_3|line=17}} Falls der Spieler Bill das erste mal angeklickt hat, wird eine Werkbank und eine Truhe mit den Materialien erstellt{{f|link=technik_wiki:auftrag-system/v1auftrag_3|line=18|up=1}} und der Spieler erhält ein Etikett für diesen Auftrag{{f|link=technik_wiki:auftrag-system/v1auftrag_3|line=19|up=1}}.
 
  +
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.
{{f|name=technik_wiki:auftrag-system/v1auftrag_3|1=
 
  +
tag @p[distance=..3,advancements={auftrag-system:v1auftrag_3_zaun=false},scores={PZAufS.1Reden=1..}] add EtiAufS.1Reden
# Wenn der Spieler mit dem Dorfbewohner Bill redet, wird sein Punktestand für die Nachricht eingestellt
 
  +
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"} ]
scoreboard players add @a[distance=..3,scores={PZAufS.1Reden=1..}] PZAufS.1Nachr 1
 
  +
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"}]
scoreboard players set @a[distance=..3,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=4..}] PZAufS.1Nachr 1
 
  +
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
   
# Wenn der Spieler für Bill die sechs Zäune und das Zauntor hergestellt hat, besitzt er diese in seinem Inventar und auch das Etikett, dass er dafür den Auftrag bekommen hat
+
# 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.
execute if entity @s[tag=!EtiAufS.1AuftragAbgeschlossen] run tag @a[distance=..3,tag=EtiAufS.1BillZaunHerstellen,scores={PZAufS.1Reden=1..},nbt={Inventory:[{id:"minecraft:oak_fence"},{id:"minecraft:oak_fence_gate"}]}] add EtiAufS.1BillZaunHergestellt
+
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 @s[tag=!EtiAufS.1AuftragAbgeschlossen] if entity @a[distance=..3,tag=EtiAufS.1BillZaunHerstellen,tag=EtiAufS.1BillZaunHergestellt,scores={PZAufS.1Reden=1..}] run data merge entity @s {Offers:{Recipes:[{buy:{id:"minecraft:oak_fence",Count:6b},buyB:{id:"minecraft:oak_fence_gate",Count:1b},sell:{id:"minecraft:emerald",Count:1b},maxUses:1,uses:0} ] } }
 
  +
execute if entity @p[distance=..3,tag=EtiAufS.1Auftrag] run setblock ~ ~ ~-5 minecraft:crafting_table replace
execute if entity @s[tag=!EtiAufS.1AuftragAbgeschlossen] run tellraw @a[distance=..3,tag=EtiAufS.1BillZaunHergestellt,scores={PZAufS.1Reden=1..}] ["",{"text":"[1/1]","color":"gray"},{"text":" «","color":"gold","bold":true},{"selector":"@s"},{"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","bold":false}]
 
  +
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
execute if entity @a[distance=..3,tag=EtiAufS.1BillZaunHerstellen,tag=EtiAufS.1BillZaunHergestellt,scores={PZAufS.1Reden=1..}] run tag @s[tag=!EtiAufS.1AuftragAbgeschlossen] add EtiAufS.1AuftragAbgeschlossen
 
  +
tag @p[distance=..3,tag=EtiAufS.1Auftrag] remove EtiAufS.1Auftrag
 
  +
}}
# Bill gibt bei einem Rechtsklickt auf ihn drei Nachrichten nacheinander aus, um dem Spieler zu erklären, was er von ihm verlangt
 
  +
{{JSON-Datei|name=auftrag-system:v1auftrag_3|type=advancement|1=
tellraw @a[distance=..3,tag=!EtiAufS.1BillZaunHergestellt,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=1}] ["",{"text":"[1/3]","color":"gray"},{"text":" «","color":"gold","bold":true},{"selector":"@s"},{"text":"» ","color":"gold","bold":true},{"text":"Hey du, du siehst aus, als ob du","color":"yellow"},{"text":" [sechs Zäune und ein Zauntor] ","color":"green","hoverEvent":{"action":"show_text","value":{"text":"Stelle 6x Zäune und 1x Zauntor her"} } },{"text":"herstellen könntest.","color":"yellow"} ]
 
  +
{
tellraw @a[distance=..3,tag=!EtiAufS.1BillZaunHergestellt,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=2}] ["",{"text":"[2/3]","color":"gray"},{"text":" «","color":"gold","bold":true},{"selector":"@s"},{"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","bold":false}]
 
  +
"display":
tellraw @a[distance=..3,tag=!EtiAufS.1BillZaunHergestellt,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=3}] ["",{"text":"[3/3]","color":"gray"},{"text":" «","color":"gold","bold":true},{"selector":"@s"},{"text":"» ","color":"gold","bold":true},{"text":"Was stehst du hier so ahnungslos herum? Du bekommst das doch bestimmt hin.","color":"yellow","bold":false}]
 
  +
{
 
  +
"icon":
# Falls der Spieler Bill das erste angeklickt hat, wird die Werkbank und die Truhe mit dem Material platziert. Der Spieler erhält dann das Etikett für den Auftrag
 
  +
{
execute if entity @a[distance=..3,tag=!EtiAufS.1BillZaunHerstellen,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=1..}] run setblock ~ ~ ~-5 minecraft:crafting_table replace
 
  +
"item":"minecraft:oak_fence"
execute if entity @a[distance=..3,tag=!EtiAufS.1BillZaunHerstellen,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=1..}] run setblock ~ ~ ~-6 minecraft:chest[facing=north]{Items:[{Slot:12b,id:"minecraft:oak_planks",Count:10b},{Slot:13b,id:"minecraft:stick",Count:8b}]} replace
 
  +
},
tag @a[distance=..3,tag=!EtiAufS.1BillZaunHerstellen,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=1..}] add EtiAufS.1BillZaunHerstellen
 
  +
"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"
  +
}
  +
}
  +
}
  +
}}
  +
{{JSON-Datei|name=auftrag-system:v1auftrag_3_zaun|type=advancement|1=
  +
{
  +
"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"
  +
}
  +
}
  +
}
  +
}}
  +
{{JSON-Datei|name=auftrag-system:v1auftrag_3_handel|type=advancement|1=
  +
{
  +
"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"
  +
}
  +
}
  +
}
 
}}
 
}}
   
  +
{{fü|1|name=Auftrag-3-Erledigt}}
 
{{fü|1|name=Auftrag-3-Handel}}
 
 
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.
 
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.
* {{f|link=technik_wiki:auftrag-system/v1auftrag_3_handel|line=2}} Wenn der Spieler mit Bill Handel getrieben hat und den Auftrag dazu hatte, wird Bill keine weiteren Angebote mehr anbieten
 
* {{f|link=technik_wiki:auftrag-system/v1auftrag_3_handel|line=3}} Anschließend wird eine Nachricht über den Erfolg des Auftrages ausgegeben,
 
* {{f|link=technik_wiki:auftrag-system/v1auftrag_3_handel|line=4}} das entsprechende Etikett für den Auftrag wird entfernt,
 
* {{f|link=technik_wiki:auftrag-system/v1auftrag_3_handel|line=5}} ein Erfolgsgeräusch wird abgespielt und
 
* {{f|link=technik_wiki:auftrag-system/v1auftrag_3_handel|line=6}} ein Zustimmungsgeräusch des Dorfbewohners wird abgespielt
 
   
  +
{{f|name=auftrag-system:v1auftrag_3_erledigt|1=
* {{f|link=technik_wiki:auftrag-system/v1auftrag_3_handel|line=9}} der Spieler bekommt den vierten Auftrag, auch wenn es diesen nicht gibt, aber damit ist dieser Auftrag abgeschlossen
 
  +
# Holzgeräusche und Explosionspartikel erscheinen, damit im Anschluss der Zaun entstehen kann.
* {{f|link=technik_wiki:auftrag-system/v1auftrag_3_handel|line=10}} Der Spieler bekommt seine Nachricht auf null gesetzt sowie
 
  +
execute at @e[type=minecraft:villager,tag=EtiAufS.1Bill] run playsound minecraft:block.barrel.close master @a[distance=..25]
* {{f|link=technik_wiki:auftrag-system/v1auftrag_3_handel|line=11}} die Handelsanzahl mit diesem Dorfbewohner
 
  +
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
* {{f|link=technik_wiki:auftrag-system/v1auftrag_3_handel|line=14}} Das Etikett für diesen Auftrag wird entfernt,
 
  +
execute at @e[type=minecraft:villager,tag=EtiAufS.1Bill] run fill ~-2 ~ ~-2 ~2 ~ ~2 minecraft:air replace
* {{f|link=technik_wiki:auftrag-system/v1auftrag_3_handel|line=15}} wie auch das für das Beenden des Auftrages
 
  +
execute at @e[type=minecraft:villager,tag=EtiAufS.1Bill] run setblock ~3 ~ ~ minecraft:oak_fence_gate[facing=east,open=true] replace
 
{{f|name=technik_wiki:auftrag-system/v1auftrag_3_handel|1=
 
# Wenn der Spieler mit Bill den Handel abgeschlossen hat, wird Bill seinen Handel wieder einstellen und dem Spieler seine Belohnung geben
 
execute if entity @a[distance=..3,tag=EtiAufS.1BillZaunHergestellt,scores={PZAufS.1Handel=1..}] run data merge entity @s {Offers:{Recipes:[] } }
 
tellraw @a[distance=..3,tag=EtiAufS.1BillZaunHergestellt,scores={PZAufS.1Handel=1..}] ["",{"text":"[1/1]","color":"gray"},{"text":" «","color":"gold","bold":true},{"selector":"@s"},{"text":"» ","color":"gold","bold":true},{"text":"Prima, jetzt kann ich meinen Bereich einzäunen.","color":"gray"}]
 
execute if entity @a[distance=..3,tag=EtiAufS.1BillZaunHergestellt,scores={PZAufS.1Handel=1..}] run tag @s[tag=EtiAufS.1AuftragVorhanden] remove EtiAufS.1AuftragVorhanden
 
playsound minecraft:entity.player.levelup master @a[distance=..3,tag=EtiAufS.1BillZaunHergestellt,scores={PZAufS.1Handel=1..}] ~ ~ ~ 1 0.5 1
 
playsound minecraft:entity.villager.yes master @a[distance=..3,tag=EtiAufS.1BillZaunHergestellt,scores={PZAufS.1Handel=1..}] ~ ~ ~ 1 0.5 1
 
 
# Wenn der Spieler dem Dorfbewohner Bill die Auftragsmaterialien gegeben hat, werden die entsprechenden Punktestand-Ziele angepasst
 
scoreboard players set @a[distance=..3,tag=EtiAufS.1BillZaunHergestellt,scores={PZAufS.1Handel=1..}] PZAufS.1Auftrag 4
 
scoreboard players set @a[distance=..3,tag=EtiAufS.1BillZaunHergestellt,scores={PZAufS.1Handel=1..}] PZAufS.1Nachr 0
 
scoreboard players set @a[distance=..3,tag=EtiAufS.1BillZaunHergestellt,scores={PZAufS.1Handel=1..}] PZAufS.1Handel 0
 
 
# Die Etiketten für das Herstellen der Auftragsmaterialien werden entfernt
 
tag @a[distance=..3,tag=EtiAufS.1BillZaunHergestellt,scores={PZAufS.1Nachr=0}] remove EtiAufS.1BillZaunHerstellen
 
tag @a[distance=..3,tag=EtiAufS.1BillZaunHergestellt,scores={PZAufS.1Nachr=0}] remove EtiAufS.1BillZaunHergestellt
 
 
}}
 
}}
   
Zeile 301: Zeile 475:
 
{{fü|1|name=Stopp}}
 
{{fü|1|name=Stopp}}
 
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.
 
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.
* {{f|link=technik_wiki:auftrag-system/v1stopp|line=2}} Die Punktestand-Ziele werden gelöscht fürs Reden, fürs Handeln {{f|link=technik_wiki:auftrag-system/v1stopp|line=3|up=1}}, für die Nachrichten {{f|link=technik_wiki:auftrag-system/v1stopp|line=4|up=1}} und für die Aufträge {{f|link=technik_wiki:auftrag-system/v1stopp|line=5|up=1}}.
 
 
* {{f|link=technik_wiki:auftrag-system/v1stopp|line=8}} Die Spieler werden wieder in den Kreativmodus gesetzt
 
 
* {{f|link=technik_wiki:auftrag-system/v1stopp|line=11}} Von der Position der Dorfbewohner aus, werden alle Blöcke die bei den Aufträgen platziert wurden, wieder gelöscht.
 
 
* {{f|link=technik_wiki:auftrag-system/v1stopp|line=14}} Alle Dorfbewohner werden entfernt
 
 
* {{f|link=technik_wiki:auftrag-system/v1stopp|line=17}} Alle Gegenstände werden entfernt {{f|link=technik_wiki:auftrag-system/v1stopp|line=18|up=1}} und 15 Erfahrungspunkte werden entfernt {{f|link=technik_wiki:auftrag-system/v1stopp|line=19|up=1}}
 
 
* {{f|link=technik_wiki:auftrag-system/v1stopp|line=22}} Als letztes werden sämtliche Etiketten entfernt, die man im Laufe der Aufträge besessen hatte.
 
   
{{f|name=technik_wiki:auftrag-system/v1stopp|alias=v1stopp|1=
+
{{f|name=auftrag-system:v1stopp|alias=v1stopp|1=
# Die Punktestand-Ziele werden entfernt
+
# Die Punkte-Ziele werden entfernt.
 
scoreboard objectives remove PZAufS.1Reden
 
scoreboard objectives remove PZAufS.1Reden
 
scoreboard objectives remove PZAufS.1Handel
 
scoreboard objectives remove PZAufS.1Handel
Zeile 320: Zeile 483:
 
scoreboard objectives remove PZAufS.1Auftrag
 
scoreboard objectives remove PZAufS.1Auftrag
   
# Der Spieler wird wieder in den Kreativmodus gesetzt
+
# Der Spieler wird wieder in den Kreativmodus gesetzt.
 
gamemode creative @a[distance=..25,gamemode=!creative]
 
gamemode creative @a[distance=..25,gamemode=!creative]
   
# Alle Blöcke die im Laufe der Aufträge platziert wurden, werden wieder entfernt
+
# 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
+
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
+
# Alle Dorfbewohner werden entfernt.
 
kill @e[tag=EtiAufS.1Alle]
 
kill @e[tag=EtiAufS.1Alle]
   
# Spielern werden Smaragde, Pilzsuppen und Erfahrungspunkte entfernt
+
# Spielern werden Smaragde, Pilzsuppen und Erfahrungspunkte entfernt.
 
clear @a[distance=..25] minecraft:emerald
 
clear @a[distance=..25] minecraft:emerald
 
clear @a[distance=..25] minecraft:mushroom_stew
 
clear @a[distance=..25] minecraft:mushroom_stew
 
experience add @a[distance=..25] -15 points
 
experience add @a[distance=..25] -15 points
   
# Alle eventuell noch vorhandenen Etiketten werden entfernt
+
# Alle Fortschritte, von der Wurzel ausgehend, werden entfernt.
  +
advancement revoke @a[advancements={auftrag-system:v1auftrag=true}] from auftrag-system:v1auftrag
tag @a[tag=EtiAufS.1JonesSuppeHolen] remove EtiAufS.1JonesSuppeHolen
 
  +
tag @a[tag=EtiAufS.1BillSuchen] remove EtiAufS.1BillSuchen
 
  +
# Der dauerhaft aktive Chunk wird wieder deaktiviert.
tag @a[tag=EtiAufS.1BillGefunden] remove EtiAufS.1BillGefunden
 
  +
forceload remove ~ ~
tag @a[tag=EtiAufS.1BillZaunHerstellen] remove EtiAufS.1BillZaunHerstellen
 
tag @a[tag=EtiAufS.1BillZaunHergestellt] remove EtiAufS.1BillZaunHergestellt
 
 
}}
 
}}
   

Aktuelle Version vom 23. August 2020, 14:43 Uhr

Gruppe: Grid Ketten-Befehlsblock
Systeme

Grid Roter Sand blass mit Mechaniken

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

Grid Wiederhol-Befehlsblock mehr Befehle

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

Auftrag-System (Befehle) Bild 1.1 Auftrag-System (Befehle) Bild 1.2 Auftrag-System (Befehle) Bild 1.3

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.

Wiederholen

Mit dem Wiederhol-Befehlsblock wird die Zyklus-Funktion ständig geladen

Ausschalten

Wenn der Hebel wieder in Ausgangsstellung gelegt wird, aktiviert eine Redstone-Fackel den Befehlsblock, der die Stopp-Funktion aufruft.



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.

Editor Icon 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 ~ ~
JSON Icon 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.

Editor Icon 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

Editor Icon 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
JSON Icon 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"
		}
	}
}
JSON Icon 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"
		}
	}
}
JSON Icon 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

Editor Icon 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
JSON Icon 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"
		}
	}
}
JSON Icon 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.

Editor Icon 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
JSON Icon 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.

Editor Icon 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
JSON Icon 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"
		}
	}
}
JSON Icon 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"
		}
	}
}
JSON Icon 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.

Editor Icon 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.

Editor Icon 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 ~ ~