KKeine Bearbeitungszusammenfassung |
(Variante 1: Befehle auf Funktionen umgestellt und überarbeitet) |
||
Zeile 1: | Zeile 1: | ||
{{Unterseite| |
{{Unterseite| |
||
+ | {{Baustelle|60}} |
||
{{Seitenkopf|dw=m}} |
{{Seitenkopf|dw=m}} |
||
| |
| |
||
}} |
}} |
||
Das '''Auftrag-System''' ist dafür da, dass man beispielsweise mit Dorfbewohner richtig sprechen und interagieren kann. Dabei werden dann Aufgaben vom Dorfbewohner aufgetragen, sprich [[de.wikipedia:Quest|Suchmissionen]]. Diese kann man als Spieler erfüllen. Dabei muss der Spieler im Verlauf verschiedene Aufgaben lösen, Abenteuer bestehen, Feinde besiegen, Objekte finden, Schwierigkeiten überwinden und kann dadurch Ruhm und Erfahrung ernten. |
Das '''Auftrag-System''' ist dafür da, dass man beispielsweise mit Dorfbewohner richtig sprechen und interagieren kann. Dabei werden dann Aufgaben vom Dorfbewohner aufgetragen, sprich [[de.wikipedia:Quest|Suchmissionen]]. Diese kann man als Spieler erfüllen. Dabei muss der Spieler im Verlauf verschiedene Aufgaben lösen, Abenteuer bestehen, Feinde besiegen, Objekte finden, Schwierigkeiten überwinden und kann dadurch Ruhm und Erfahrung ernten. |
||
+ | |||
⚫ | |||
⚫ | |||
⚫ | |||
== Variante 1 == |
== Variante 1 == |
||
+ | {{Neue Technik|m}} |
||
{{Voraussetzung| |
{{Voraussetzung| |
||
*[[Schaltkreise/Taktgeber (Befehle)]] |
*[[Schaltkreise/Taktgeber (Befehle)]] |
||
+ | *{{de|Funktion}} |
||
| |
| |
||
*{{Gridbild|Hebel|link}} |
*{{Gridbild|Hebel|link}} |
||
− | *{{Gridbild| |
+ | *{{Gridbild|Redstone-Fackel|link}} |
*{{Gridbild|Befehlsblock|link}} |
*{{Gridbild|Befehlsblock|link}} |
||
− | *{{Gridbild|Ketten-Befehlsblock|link}} |
||
*{{Gridbild|Wiederhol-Befehlsblock|link}} |
*{{Gridbild|Wiederhol-Befehlsblock|link}} |
||
}} |
}} |
||
Zeile 20: | Zeile 26: | ||
{{Ausklappmenü|offen=1|{{bb}}| |
{{Ausklappmenü|offen=1|{{bb}}| |
||
+ | {{bb|1|1|i|4=function technik_wiki:auftrag-system/v1start}} |
||
− | {{bb|1|1|i|4=/scoreboard objectives add Reden stat.talkedToVillager}} |
||
+ | {{bb|1|2|w|4=function technik_wiki:auftrag-system/v1zyklus}} |
||
− | {{bb|1|2|k|4=/scoreboard objectives add Jones_Nachricht dummy}} |
||
− | {{bb|1|3|k|4=/scoreboard objectives add Bill_Nachricht dummy}} |
||
− | {{bb|1|23|k|4=/fill ~1 ~-3 ~-2 ~1 ~-3 ~-5 minecraft:redstone_block}} |
||
+ | {{bb|1|3|i|4=function technik_wiki:auftrag-system/v1stopp}} |
||
− | {{bb|1|4|i|4=/summon villager ~-5 ~-.5 ~ {UUIDMost:1,UUIDLeast:1,Profession:1,CustomName:"Jones",CustomNameVisible:1,Career:1,CareerLevel:42,CanPickUpLoot:0,PersistenceRequired:1,Silent:1,Invulnerable:1,Attributes:[{Name:"generic.knockbackResistance",Base:"1f"},{Name:"generic.movementSpeed",Base:"0f"}],Offers:{Recipes:[]},Tags:[Aufgabe]} }} |
||
+ | }} |
||
− | {{bb|1|5|k|4=/summon villager ~-10 ~-1.5 ~ {UUIDMost:2,UUIDLeast:2,Profession:2,CustomName:"Bill",CustomNameVisible:1,Career:1,CareerLevel:42,CanPickUpLoot:0,PersistenceRequired:1,Silent:1,Invulnerable:1,Attributes:[{Name:"generic.knockbackResistance",Base:"1f"},{Name:"generic.movementSpeed",Base:"0f"}],Offers:{Recipes:[]},Tags:[Aufgabe]} }} |
||
+ | {{Funktionsüberschrift|1|name=Start}} |
||
− | {{bb|1|6|w|4=/scoreboard players set @a[tag=!Aufgabe] Jones_Nachricht 0}} |
||
+ | {{Funktion|name=technik_wiki:auftrag-system/v1start|1= |
||
− | {{bb|1|7|k|4=/scoreboard players tag @a[tag=!Aufgabe] add Aufgabe}} |
||
+ | # 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.1Handel minecraft.custom:minecraft.traded_with_villager ["Auftrag-System.1: ",{"text":"Mit dem 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 Punktestandswerte werden für den Spieler gesetzt |
||
+ | scoreboard players set @a[distance=..25] PZAufS.1Nachr 0 |
||
+ | scoreboard players set @a[distance=..25] PZAufS.1Auftrag 1 |
||
+ | # Der Spieler wird in den Überlebensmodus gesetzt |
||
− | {{bb|1|9|w|4=/execute @e[type=villager,name=Jones,tag=Aufgabe] ~ ~ ~ /scoreboard players set @a[score_Jones_Nachricht_min=2,score_Jones_Nachricht=2,score_Reden_min=1,r=5] Jones_Nachricht 0}} |
||
+ | gamemode survival @a[distance=..25,gamemode=!survival] |
||
− | {{bb|1|10|k|4=/execute @e[type=villager,tag=Aufgabe] ~ ~ ~ /scoreboard players set @a[score_Jones_Nachricht_min=13,score_Jones_Nachricht=13,score_Reden_min=1,r=5] Jones_Nachricht 10}} |
||
− | {{bb|1|11|k|4=/execute @e[type=villager,name=Jones,tag=Aufgabe] ~ ~ ~ /scoreboard players set @a[score_Jones_Nachricht_min=23,score_Jones_Nachricht=23,score_Reden_min=1,r=5] Jones_Nachricht 20}} |
||
− | {{bb|1|12|k|4=/execute @e[type=villager,name=Jones,tag=Aufgabe] ~ ~ ~ /scoreboard players add @a[score_Reden_min=1,r=5] Jones_Nachricht 1}} |
||
− | {{bb|1|13|k|4=/execute @e[type=villager,name=Bill,tag=Aufgabe] ~ ~ ~ /scoreboard players add @a[score_Reden_min=1,r=5] Bill_Nachricht 1}} |
||
− | {{bb|1|14|k|4=/execute @e[type=villager,name=Bill,tag=Aufgabe] ~ ~ ~ /scoreboard players set @a[score_Bill_Nachricht_min=2,score_Bill_Nachricht=2,score_Reden_min=1,r=5] Bill_Nachricht 1}} |
||
− | {{bb|1|15|k|4=/scoreboard players reset @a[score_Reden_min=1] Reden}} |
||
+ | # Die Dorfbewohner werden erschaffen |
||
+ | summon minecraft:villager ~-5 ~ ~ {Silent:true,Invulnerable:true,CanPickUpLoot:false,PersistenceRequired:true,CustomNameVisible:true,CustomName:"{\"text\":\"Jones\"}",Offers:{Recipes:[]},Tags:["EtiAufS.1Aufgabe","EtiAufS.1AuftragVorhanden"],UUIDMost:1,UUIDLeast:1,Profession:1,Career:1,CareerLevel:42,Attributes:[{Name:"generic.knockbackResistance",Base:"1f"},{Name:"generic.movementSpeed",Base:"0f"}]} |
||
+ | summon minecraft:villager ~-10 ~ ~ {Silent:true,Invulnerable:true,CanPickUpLoot:false,PersistenceRequired:true,CustomNameVisible:true,CustomName:"{\"text\":\"Bill\"}",Offers:{Recipes:[]},Tags:["EtiAufS.1Aufgabe"],UUIDMost:2,UUIDLeast:2,Profession:2,Career:1,CareerLevel:42,Attributes:[{Name:"generic.knockbackResistance",Base:"1f"},{Name:"generic.movementSpeed",Base:"0f"}]} |
||
+ | }} |
||
+ | |||
− | {{bb|1|24|i|4=/fill ~ ~-1 ~-2 ~ ~-1 ~-5 air}} |
||
+ | {{Funktionsüberschrift|1|name=Zyklus}} |
||
⚫ | |||
+ | {{Funktion|name=technik_wiki:auftrag-system/v1zyklus|1= |
||
⚫ | |||
+ | # Lässt grüne Partikel bei den Dorfbewohnern, die einen Auftrag für den Spieler haben, entstehen |
||
⚫ | |||
⚫ | |||
− | {{bb|1|19|k|4=/kill @e[type=villager,tag=Aufgabe] }} |
||
+ | |||
− | {{bb|1|20|k|4=/scoreboard players tag @a remove Aufgabe}} |
||
+ | # Auftrag 3 |
||
− | {{bb|1|21|k|4=/scoreboard players tag @a remove Jones}} |
||
+ | execute as @e[type=minecraft:villager,name=Bill,tag=EtiAufS.1Aufgabe] at @s if entity @a[distance=..3,scores={PZAufS.1Reden=1..,PZAufS.1Auftrag=3}] run function technik_wiki:auftrag-system/v1auftrag_3 |
||
− | {{bb|1|22|k|4=/scoreboard players tag @a remove Dialog}} |
||
+ | execute as @e[type=minecraft:villager,name=Bill,tag=EtiAufS.1Aufgabe] 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 |
||
+ | execute as @e[type=minecraft:villager,name=Jones,tag=EtiAufS.1Aufgabe] 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,name=Bill,tag=EtiAufS.1Aufgabe] at @s if entity @a[distance=..3,scores={PZAufS.1Reden=1..,PZAufS.1Auftrag=2}] run function technik_wiki:auftrag-system/v1auftrag_2_bill |
||
+ | |||
+ | # Auftrag 1 |
||
+ | execute as @e[type=minecraft:villager,name=Jones,tag=EtiAufS.1Aufgabe] at @s if entity @a[distance=..3,scores={PZAufS.1Reden=1..,PZAufS.1Auftrag=1}] run function technik_wiki:auftrag-system/v1auftrag_1 |
||
+ | |||
+ | # Wenn der Spieler mit einem Dorfbewohner geredet hat, wird sein entsprechender Punktestand zurück gesetzt |
||
+ | scoreboard players reset @a[scores={PZAufS.1Reden=1..}] PZAufS.1Reden |
||
}} |
}} |
||
+ | |||
− | === Aufgaben² === |
||
+ | {{Funktionsüberschrift|1|name=Auftrag-1}} |
||
Nun können eigene Aufgaben erstellt werden. Um es euch etwas leichter zu machen, haben wir hier zwei kleine Aufgaben vorbereitet. |
Nun können eigene Aufgaben erstellt werden. Um es euch etwas leichter zu machen, haben wir hier zwei kleine Aufgaben vorbereitet. |
||
*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{{bb|1|25}}{{bb|1|26}}{{bb|1|27}}{{bb|1|28}}{{bb|1|29}}{{bb|1|30}}{{bb|1|31}}{{bb|1|32}}{{bb|1|33}}{{bb|1|34}}{{bb|1|35}}. |
*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{{bb|1|25}}{{bb|1|26}}{{bb|1|27}}{{bb|1|28}}{{bb|1|29}}{{bb|1|30}}{{bb|1|31}}{{bb|1|32}}{{bb|1|33}}{{bb|1|34}}{{bb|1|35}}. |
||
+ | |||
+ | {{Funktion|name=technik_wiki:auftrag-system/v1auftrag_1|1= |
||
+ | # 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 |
||
+ | scoreboard players set @a[distance=..3,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=3..}] PZAufS.1Nachr 1 |
||
+ | |||
+ | # Vom Dorfbewohner Jones wird geprüft ob der Spieler eine Pilzsuppe in der Hand und ob er von Jones schon den Auftrag dafür bekommen hat (Etikett) |
||
+ | 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 |
||
+ | |||
+ | # 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"}] |
||
+ | 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 |
||
+ | 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 |
||
+ | 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 |
||
+ | 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 |
||
+ | |||
+ | # Nachrichten von Jones, wenn man in rechtsklickt. Er gibt dem Spieler den Auftrag die Pilzsuppe zu holen |
||
⚫ | 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"} } } ] |
||
⚫ | |||
+ | |||
+ | # 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 |
||
+ | tag @a[distance=..3,tag=!EtiAufS.1JonesSuppeHolen,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=1..}] add EtiAufS.1JonesSuppeHolen |
||
+ | }} |
||
+ | |||
+ | |||
+ | {{Funktionsüberschrift|1|name=Auftrag-2}} |
||
*2:In unserer Zweiten Aufgabe, welche an die erste angehängt werden muss, dürft ihr den Freund des ersten Dorfbewohners suchen. Hierzu benötigt ihr einen weiteren Dorfbewohner, der bereits im Erstellungsprozess erstellt wurde{{bb|1|36}}{{bb|1|37}}{{bb|1|38}}{{bb|1|39}}{{bb|1|40}}{{bb|1|41}}{{bb|1|42}}{{bb|1|43}}{{bb|1|44}}{{bb|1|45}}{{bb|1|46}}. |
*2:In unserer Zweiten Aufgabe, welche an die erste angehängt werden muss, dürft ihr den Freund des ersten Dorfbewohners suchen. Hierzu benötigt ihr einen weiteren Dorfbewohner, der bereits im Erstellungsprozess erstellt wurde{{bb|1|36}}{{bb|1|37}}{{bb|1|38}}{{bb|1|39}}{{bb|1|40}}{{bb|1|41}}{{bb|1|42}}{{bb|1|43}}{{bb|1|44}}{{bb|1|45}}{{bb|1|46}}. |
||
+ | {{Funktion|name=technik_wiki:auftrag-system/v1auftrag_2|1= |
||
− | {{Ausklappmenü|offen=1|{{bb}}| |
||
+ | # Wenn der Spieler mit dem Dorfbewohner Jones redet, wird sein Punktestand für die Nachricht eingestellt |
||
− | {{bb|1|25|w|4=/execute @e[type=villager,name=Jones,tag=Aufgabe] ~ ~ ~ /clear @a[score_Jones_Nachricht_min=1,score_Jones_Nachricht=9,score_Reden_min=1,tag=Jones,r=5] mushroom_stew 0 1}} |
||
+ | scoreboard players add @a[distance=..3,scores={PZAufS.1Reden=1..}] PZAufS.1Nachr 1 |
||
⚫ | |||
+ | scoreboard players set @a[distance=..3,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=4..}] PZAufS.1Nachr 1 |
||
− | {{bb|1|27|kb|4=/execute @e[type=villager,name=Jones,tag=Aufgabe] ~ ~ ~ /xp 1 @a[score_Jones_Nachricht_min=1,score_Jones_Nachricht=2,score_Reden_min=1,tag=Jones,r=5] }} |
||
+ | |||
− | {{bb|1|28|kb|4=/execute @e[type=villager,name=Jones,tag=Aufgabe] ~ ~ ~ /give @a[score_Jones_Nachricht_min=1,score_Jones_Nachricht=2,score_Reden_min=1,tag=Jones,r=5] emerald 1}} |
||
+ | # Wenn der Spieler mit Bill gesprochen und damit gefunden hat, dann gibt Jones dem Spieler die Belohnung |
||
− | {{bb|1|29|kb|4=/execute @e[type=villager,name=Jones,tag=Aufgabe] ~ ~ ~ /scoreboard players set @a[score_Jones_Nachricht_min=1,score_Jones_Nachricht=9,score_Reden_min=1,tag=Jones,r=5] Jones_Nachricht 10}} |
||
+ | 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"}] |
||
− | {{bb|1|30|kb|4=/execute @e[type=villager,name=Jones,tag=Aufgabe] ~ ~ ~ /scoreboard players tag @a[score_Jones_Nachricht_min=10,score_Jones_Nachricht=10,score_Reden_min=1,tag=Jones,r=5] remove Jones}} |
||
+ | 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 |
||
− | {{bb|1|31|kb|4=/execute @e[type=villager,name=Jones,tag=Aufgabe] ~ ~ ~ /scoreboard players tag @a[score_Jones_Nachricht_min=10,score_Jones_Nachricht=10,score_Reden_min=1,tag=Dialog,r=5] remove Dialog}} |
||
+ | 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 |
||
⚫ | |||
+ | 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 |
||
− | {{bb|1|34|k|4=/execute @e[type=villager,name=Jones,tag=Aufgabe] ~ ~ ~ /scoreboard players tag @a[score_Jones_Nachricht_min=1,score_Jones_Nachricht=9,score_Reden_min=1,tag=!Dialog,r=5] add Dialog}} |
||
+ | give @a[distance=..3,tag=EtiAufS.1BillGefunden,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=1..}] minecraft:emerald 1 |
||
− | {{bb|1|35|k|4=/execute @e[type=villager,name=Jones,tag=Aufgabe] ~ ~ ~ /execute @a[tag=Dialog,r=5] ~ ~ ~ /scoreboard players tag @a[score_Jones_Nachricht_min=1,score_Jones_Nachricht=9,tag=!Jones,r=0] add Jones {Inventory:[{id:"minecraft:mushroom_stew"} ] } }} |
||
+ | scoreboard players set @a[distance=..3,tag=EtiAufS.1BillGefunden,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=1..}] PZAufS.1Auftrag 3 |
||
+ | 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 |
||
+ | # Nachrichten an den Spieler. Jones gibt den Auftrag Bill zu suchen |
||
⚫ | 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}] |
||
⚫ | 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}] |
||
+ | # Wenn der Spieler Jones ansklickt, erhält er den Auftrag Bill zu suchen (Etikett) |
||
− | {{bb|1|36|w|4=/execute @e[type=villager,name=Jones,tag=Aufgabe] ~ ~ ~ /tellraw @a[score_Jones_Nachricht_min=11,score_Jones_Nachricht=12,score_Reden_min=1,tag=Jones,r=5] ["",{"text":"➋ ","color":"green"},{"text":"[1/1]","color":"gray"},{"text":" «","color":"gold","bold":true},{"selector":"@e[type=villager,r=0]"},{"text":"»","color":"gold","bold":true},{"text":" Danke, dass du nach ihm geschaut hast. ","color":"yellow"}] }}{{bb|1|37|kb|4=/execute @e[type=villager,name=Jones,tag=Aufgabe] ~ ~ ~ /xp 1 @a[score_Jones_Nachricht_min=10,score_Jones_Nachricht=19,score_Reden_min=1,tag=Jones,r=5] }} |
||
+ | 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 |
||
− | {{bb|1|38|kb|4=/execute @e[type=villager,name=Jones,tag=Aufgabe] ~ ~ ~ /scoreboard players set @a[score_Jones_Nachricht_min=11,score_Jones_Nachricht=19,score_Reden_min=1,tag=Jones,r=5] Jones_Nachricht 20 }} |
||
+ | 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 |
||
− | {{bb|1|39|kb|4=/execute @e[type=villager,name=Jones,tag=Aufgabe] ~ ~ ~ /scoreboard players tag @a[score_Jones_Nachricht_min=20,score_Jones_Nachricht=20,score_Reden_min=1,tag=Jones,r=5] remove Jones}} |
||
+ | tag @a[distance=..3,tag=!EtiAufS.1BillSuchen,tag=!EtiAufS.1BillGefunden,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=1..}] add EtiAufS.1BillSuchen |
||
− | {{bb|1|40|kb|4=/execute @e[type=villager,name=Jones,tag=Aufgabe] ~ ~ ~ /scoreboard players tag @a[score_Jones_Nachricht_min=20,score_Jones_Nachricht=20,score_Reden_min=1,tag=Dialog,r=5] remove Dialog}} |
||
⚫ | |||
⚫ | |||
⚫ | |||
− | {{bb|1|44|k|4=/execute @e[type=villager,name=Jones,tag=Aufgabe] ~ ~ ~ /scoreboard players tag @a[score_Jones_Nachricht_min=11,score_Jones_Nachricht=19,score_Reden_min=1,tag=!Dialog,r=5] add Dialog}} |
||
⚫ | |||
− | {{bb|1|46|k|4=/execute @e[type=villager,name=Bill,tag=Aufgabe] ~ ~ ~ /execute @a[tag=Dialog,r=5] ~ ~ ~ /scoreboard players tag @a[score_Jones_Nachricht_min=11,score_Jones_Nachricht=19,score_Reden_min=1,tag=!Jones,r=0] add Jones}} |
||
}} |
}} |
||
+ | |||
⚫ | |||
+ | {{Funktionsüberschrift|1|name=Auftrag-2-Bill}} |
||
⚫ | |||
+ | {{Funktion|name=technik_wiki:auftrag-system/v1auftrag_2_bill|1= |
||
⚫ | |||
+ | # Wenn der Spieler Bill gefunden hat und anspricht, so gibt er die Anweisung, Jones anzusprechen |
||
⚫ | 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}] |
||
+ | |||
+ | # Den jenigen den der Spieler nun ansprechen soll erhält das Etikett und der Spieler erhält das Etikett, dass er Bill gefunden hat |
||
+ | 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 |
||
+ | 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 |
||
+ | }} |
||
+ | |||
+ | |||
+ | {{Funktionsüberschrift|1|name=Auftrag-3}} |
||
+ | {{Funktion|name=technik_wiki:auftrag-system/v1auftrag_3|1= |
||
+ | # Wenn der Spieler mit dem Dorfbewohner Bill redet, wird sein Punktestand für die Nachricht eingestellt |
||
+ | scoreboard players add @a[distance=..3,scores={PZAufS.1Reden=1..}] PZAufS.1Nachr 1 |
||
+ | scoreboard players set @a[distance=..3,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=4..}] PZAufS.1Nachr 1 |
||
+ | |||
+ | # 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 |
||
+ | 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 |
||
+ | execute 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} } ] } } |
||
+ | 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 handle es mit mir für deine Belohnung","color":"yellow","bold":false}] |
||
+ | |||
+ | # Bill gibt bei einem Rechtsklickt auf ihn drei Nachrichten nacheinander aus, um dem Spieler zu erklären, was er von ihm verlangt |
||
+ | 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}] |
||
+ | 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}] |
||
+ | |||
+ | # Falls der Spieler Bild 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 |
||
+ | 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 |
||
+ | }} |
||
+ | |||
+ | |||
+ | {{Funktionsüberschrift|1|name=Auftrag-3-Handel}} |
||
+ | {{Funktion|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 |
||
+ | |||
+ | # 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 |
||
+ | }} |
||
+ | |||
+ | |||
+ | {{Funktionsüberschrift|1|name=Stopp}} |
||
+ | {{Funktion|name=technik_wiki:auftrag-system/v1stopp|1= |
||
+ | # Die Punktestand-Ziele werden entfernt |
||
⚫ | |||
⚫ | |||
⚫ | |||
+ | scoreboard objectives remove PZAufS.1NachrB |
||
+ | |||
+ | # 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.1Aufgabe] run fill ~ ~ ~-5 ~ ~ ~-6 minecraft:air |
||
+ | |||
+ | # Alle Dorfbewohner werden entfernt |
||
+ | kill @e[tag=EtiAufS.1Aufgabe] |
||
+ | |||
+ | # 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 eventuell noch vorhandenen Etiketten werden entfernt |
||
+ | tag @a[tag=EtiAufS.1JonesSuppeHolen] remove EtiAufS.1JonesSuppeHolen |
||
+ | tag @a[tag=EtiAufS.1BillSuchen] remove EtiAufS.1BillSuchen |
||
+ | tag @a[tag=EtiAufS.1BillGefunden] remove EtiAufS.1BillGefunden |
||
+ | tag @a[tag=EtiAufS.1BillZaunHerstellen] remove EtiAufS.1BillZaunHerstellen |
||
+ | tag @a[tag=EtiAufS.1BillZaunHergestellt] remove EtiAufS.1BillZaunHergestellt |
||
+ | }} |
||
{{Unterseite| |
{{Unterseite| |
Version vom 2. Oktober 2018, 09:49 Uhr
Diese Seite wird gerade von Nethonos neu erstellt oder grundlegend überarbeitet. Fragen und Vorschläge bitte in die Diskussion. Fortschritt: |
Gruppe: Unbekannter Gruppenname [[]] |
mit Mechaniken |
mit Redstone |
Hier: mit Befehlen |
Verfügbar in: Mechanik-Welt |
Das Auftrag-System ist dafür da, dass man beispielsweise mit Dorfbewohner richtig sprechen und interagieren kann. Dabei werden dann Aufgaben vom Dorfbewohner aufgetragen, sprich Suchmissionen. Diese kann man als Spieler erfüllen. Dabei muss der Spieler im Verlauf verschiedene Aufgaben lösen, Abenteuer bestehen, Feinde besiegen, Objekte finden, Schwierigkeiten überwinden und kann dadurch Ruhm und Erfahrung ernten.
Zusätzlich:
- ¹Für das Erstellen eines Dorfbewohners ohne Shop empfehlen wir den Dorfbewohner Generator.
- ²Um die Nachrichten besser ändern zu können, empfehlen wir den JSON Creator.
Variante 1
Diese neue oder überarbeitete Technik ist noch nicht in der aktuellen Mechanik-Welt vorhanden. In einem der nächsten Updates wird sie dort hinzugefügt werden.
|
Unbekannter Gruppenname Folgende Voraussetzungen werden benötigt: | ||
---|---|---|
|
Folgende Materialien werden benötigt: | |
---|---|
|
Datei:Maschinen Auftrag-System (Befehle) Bild 1.1.png Datei:Maschinen Auftrag-System (Befehle) Bild 1.2.png Datei:Maschinen Auftrag-System (Befehle) Bild 1.3.png
Mit diesem System kann man leicht Aufträge für den Spieler von Dorfbewohnern programmieren. Damit das System laufen kann, müssen zuerst ein paar Punktestand-Ziele erzeugt werdenBefehl 1.1Befehl 1.2Befehl 1.3 und die entsprechenden Dorfbewohner¹ beschworen werdenBefehl 1.4Befehl 1.5. Nun muss noch dafür gesorgt werden, dass man die Dorfbewohner anklicken kannBefehl 1.6Befehl 1.7Befehl 1.8. Dafür werden dann noch Befehle benötigt, die das Anklicken des Dorfbewohners speichern, aufzählen und anschließend zurücksetzenBefehl 1.9Befehl 1.10Befehl 1.11Befehl 1.12Befehl 1.13Befehl 1.14Befehl 1.15. Wenn man die Maschine wieder ausschaltet, werden die Dorfbewohner sowie alle Punktestand-Ziele gelöschtBefehl 1.16Befehl 1.17Befehl 1.18Befehl 1.19Befehl 1.20Befehl 1.21Befehl 1.22. Gleichzeitig werden die Redstone-Blöcke die durch den Ketten-Befehlsblock gesetzt wurdenBefehl 1.23, wieder entferntBefehl 1.24.
Befehlsblöcke mit Befehlen: |
|
Variante 1: Start-Funktion
technik_wiki:auftrag-system/v1start.mcfunction
|
# 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.1Handel minecraft.custom:minecraft.traded_with_villager ["Auftrag-System.1: ",{"text":"Mit dem 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 Punktestandswerte werden für den Spieler gesetzt scoreboard players set @a[distance=..25] PZAufS.1Nachr 0 scoreboard players set @a[distance=..25] PZAufS.1Auftrag 1 # Der Spieler wird in den Überlebensmodus gesetzt gamemode survival @a[distance=..25,gamemode=!survival] # Die Dorfbewohner werden erschaffen summon minecraft:villager ~-5 ~ ~ {Silent:true,Invulnerable:true,CanPickUpLoot:false,PersistenceRequired:true,CustomNameVisible:true,CustomName:"{\"text\":\"Jones\"}",Offers:{Recipes:[]},Tags:["EtiAufS.1Aufgabe","EtiAufS.1AuftragVorhanden"],UUIDMost:1,UUIDLeast:1,Profession:1,Career:1,CareerLevel:42,Attributes:[{Name:"generic.knockbackResistance",Base:"1f"},{Name:"generic.movementSpeed",Base:"0f"}]} summon minecraft:villager ~-10 ~ ~ {Silent:true,Invulnerable:true,CanPickUpLoot:false,PersistenceRequired:true,CustomNameVisible:true,CustomName:"{\"text\":\"Bill\"}",Offers:{Recipes:[]},Tags:["EtiAufS.1Aufgabe"],UUIDMost:2,UUIDLeast:2,Profession:2,Career:1,CareerLevel:42,Attributes:[{Name:"generic.knockbackResistance",Base:"1f"},{Name:"generic.movementSpeed",Base:"0f"}]} |
Variante 1: Zyklus-Funktion
technik_wiki:auftrag-system/v1zyklus.mcfunction
|
# 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.1AuftragVorhanden] run particle minecraft:happy_villager ~ ~1 ~ 0.2 0.2 0.2 0.1 1 force @a[distance=..10] # Auftrag 3 execute as @e[type=minecraft:villager,name=Bill,tag=EtiAufS.1Aufgabe] 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,name=Bill,tag=EtiAufS.1Aufgabe] 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 execute as @e[type=minecraft:villager,name=Jones,tag=EtiAufS.1Aufgabe] 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,name=Bill,tag=EtiAufS.1Aufgabe] at @s if entity @a[distance=..3,scores={PZAufS.1Reden=1..,PZAufS.1Auftrag=2}] run function technik_wiki:auftrag-system/v1auftrag_2_bill # Auftrag 1 execute as @e[type=minecraft:villager,name=Jones,tag=EtiAufS.1Aufgabe] at @s if entity @a[distance=..3,scores={PZAufS.1Reden=1..,PZAufS.1Auftrag=1}] run function technik_wiki:auftrag-system/v1auftrag_1 # Wenn der Spieler mit einem Dorfbewohner geredet hat, wird sein entsprechender Punktestand zurück gesetzt scoreboard players reset @a[scores={PZAufS.1Reden=1..}] PZAufS.1Reden |
Variante 1: Auftrag-1-Funktion
Nun können eigene Aufgaben erstellt werden. Um es euch etwas leichter zu machen, haben wir hier zwei kleine Aufgaben vorbereitet.
- 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 SmaragdenBefehl 1.25Befehl 1.26Befehl 1.27Befehl 1.28Befehl 1.29Befehl 1.30Befehl 1.31Befehl 1.32Befehl 1.33Befehl 1.34Befehl 1.35.
technik_wiki:auftrag-system/v1auftrag_1.mcfunction
|
# 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 scoreboard players set @a[distance=..3,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=3..}] PZAufS.1Nachr 1 # Vom Dorfbewohner Jones wird geprüft ob der Spieler eine Pilzsuppe in der Hand und ob er von Jones schon den Auftrag dafür bekommen hat (Etikett) 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 # 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"}] 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 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 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 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 # Nachrichten von Jones, wenn man in rechtsklickt. Er gibt dem Spieler den Auftrag die Pilzsuppe zu holen 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"} } } ] 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"}] # 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 tag @a[distance=..3,tag=!EtiAufS.1JonesSuppeHolen,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=1..}] add EtiAufS.1JonesSuppeHolen |
Variante 1: Auftrag-2-Funktion
- 2:In unserer Zweiten Aufgabe, welche an die erste angehängt werden muss, dürft ihr den Freund des ersten Dorfbewohners suchen. Hierzu benötigt ihr einen weiteren Dorfbewohner, der bereits im Erstellungsprozess erstellt wurdeBefehl 1.36Befehl 1.37Befehl 1.38Befehl 1.39Befehl 1.40Befehl 1.41Befehl 1.42Befehl 1.43Befehl 1.44Befehl 1.45Befehl 1.46.
technik_wiki:auftrag-system/v1auftrag_2.mcfunction
|
# 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 scoreboard players set @a[distance=..3,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=4..}] PZAufS.1Nachr 1 # 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"}] 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 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 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 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 # Nachrichten an den Spieler. Jones gibt den Auftrag Bill zu suchen 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}] 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}] # Wenn der Spieler Jones ansklickt, erhält er den Auftrag Bill zu suchen (Etikett) 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 tag @a[distance=..3,tag=!EtiAufS.1BillSuchen,tag=!EtiAufS.1BillGefunden,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=1..}] add EtiAufS.1BillSuchen |
Variante 1: Auftrag-2-Bill-Funktion
technik_wiki:auftrag-system/v1auftrag_2_bill.mcfunction
|
# Wenn der Spieler Bill gefunden hat und anspricht, so gibt er die Anweisung, Jones anzusprechen 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}] # Den jenigen den der Spieler nun ansprechen soll erhält das Etikett und der Spieler erhält das Etikett, dass er Bill gefunden hat 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 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 |
Variante 1: Auftrag-3-Funktion
technik_wiki:auftrag-system/v1auftrag_3.mcfunction
|
# Wenn der Spieler mit dem Dorfbewohner Bill redet, wird sein Punktestand für die Nachricht eingestellt scoreboard players add @a[distance=..3,scores={PZAufS.1Reden=1..}] PZAufS.1Nachr 1 scoreboard players set @a[distance=..3,scores={PZAufS.1Reden=1..,PZAufS.1Nachr=4..}] PZAufS.1Nachr 1 # 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 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 execute 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} } ] } } 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 handle es mit mir für deine Belohnung","color":"yellow","bold":false}] # Bill gibt bei einem Rechtsklickt auf ihn drei Nachrichten nacheinander aus, um dem Spieler zu erklären, was er von ihm verlangt 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}] 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}] # Falls der Spieler Bild 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 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 |
Variante 1: Auftrag-3-Handel-Funktion
technik_wiki:auftrag-system/v1auftrag_3_handel.mcfunction
|
# 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 # 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 |
Variante 1: Stopp-Funktion
technik_wiki:auftrag-system/v1stopp.mcfunction
|
# Die Punktestand-Ziele werden entfernt scoreboard objectives remove PZAufS.1Reden scoreboard objectives remove PZAufS.1Handel scoreboard objectives remove PZAufS.1Nachr scoreboard objectives remove PZAufS.1NachrB # 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.1Aufgabe] run fill ~ ~ ~-5 ~ ~ ~-6 minecraft:air # Alle Dorfbewohner werden entfernt kill @e[tag=EtiAufS.1Aufgabe] # 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 eventuell noch vorhandenen Etiketten werden entfernt tag @a[tag=EtiAufS.1JonesSuppeHolen] remove EtiAufS.1JonesSuppeHolen tag @a[tag=EtiAufS.1BillSuchen] remove EtiAufS.1BillSuchen tag @a[tag=EtiAufS.1BillGefunden] remove EtiAufS.1BillGefunden tag @a[tag=EtiAufS.1BillZaunHerstellen] remove EtiAufS.1BillZaunHerstellen tag @a[tag=EtiAufS.1BillZaunHergestellt] remove EtiAufS.1BillZaunHergestellt |
Unbekannter Gruppenname | unbekannter Parameter, siehe Doku |
---|
|