Date: 2019/11/06 08:43:13 UTC-08:00
Type: Denizen Script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
MyAssignmentScript:
type: assignment
actions:
on assignment:
- chat "I has been assigned!"
- trigger name:proximity state:true
Interact Scripts:
- Quests_Priest
Quests_Priest:
type: Interact
Steps:
'1':
Proximity trigger:
Entry:
Script:
- narrate hello
- spawn ARMOR_STAND[custom_name="<&a>Quest available!";custom_name_visibility=true;gravity=false] <npc.location.above[1]> save:new
- spawn ARMOR_STAND[custom_name="<&e>Quest ongoing!";custom_name_visibility=true;gravity=false] <npc.location.above[1]> save:ongoing
- spawn ARMOR_STAND[custom_name="<&c>Quest finished!";custom_name_visibility=true;gravity=false] <npc.location.above[1]> save:finish
- adjust <player> hide_entity:<entry[new]>
- adjust <player> hide_entity:<entry[ongoing]>
- adjust <player> hide_entity:<entry[finish]>
- if <player.flag[<player.uuid>_priest_daily_set]>:
- adjust <player> show_entity:<entry[ongoing]>
- if <player.flag[<player.uuid>_priest_daily_set]> !:
- adjust <player> show_entity:<entry[new]>
- if <player.flag[<player.uuid>_priest_rewarded]> !:
- adjust <player> show_entity:<entry[finish]>
'2':
click trigger:
script:
- if <player.flag[<player.uuid>_priest_day_reset].sub[<util.date.time.day>]> != 0 || <player.has_flag[<player.uuid>_priest_day_reset]> !:
- flag player <player.uuid>_priest_daily_set:false
- flag player <player.uuid>_priest_rewarded:false
- if <player.flag[<player.uuid>_priest_daily_set]>:
- if <player.inventory.contains[<player.flag[<player.uuid>_daily_priest].get[2]>].quantity[<player.flag[<player.uuid>_daily_priest].get[1]>]> || <player.flag[<player.uuid>_priest_rewarded]> !:
- take <player.flag[<player.uuid>_daily_priest].get[2]> quantity:<player.flag[<player.uuid>_daily_priest].get[1]>
- define "pt:<&6><&l>[<&6>Priest<&6><&l>]"
- define "w1:<[pt]> <&f>Thanks for these materials, <&e><player.name><&f>!"
- define "w2:<[pt]> <&f>I will have new quests for you tomorrow!"
- narrate "<[w1]>"
- wait <[w1].length.div[2]>t
- narrate "<[w2]>"
- wait 1s
- flag player <player.uuid>_priest_daily_completed:true
# Prepare rewards
- choose "<player.flag[<player.uuid>_daily_priest].get[4]>":
- case "I":
- define enchantlvl:1
- case "II":
- define enchantlvl:2
- choose "<player.flag[<player.uuid>_daily_priest].get[3]>":
- case "Efficiency":
- define enchant:DIG_SPEED
- case "Sharpness":
- define enchant:DAMAGE_ALL
- case "Unbreaking":
- define enchant:DURABILITY
- case "Smite":
- define enchant:DAMAGE_UNDEAD
- case "Fortune":
- define enchant:LOOT_BONUS_BLOCKS
- case "Power":
- define enchant:ARROW_DAMAGE
- case "Feather Falling":
- define enchant:PROTECTION_FALL
- narrate "<[pt]> <&f>Here is your <&d>reward<&f>."
- wait 1s
- give i@enchanted_book[enchantments=<[enchant]>,<[enchantlvl]>]
- flag player <player.uuid>_priest_rewarded:true
- else if <player.inventory.contains[<player.flag[<player.uuid>_daily_priest].get[2]>].quantity[<player.flag[<player.uuid>_daily_priest].get[1]>]> || <player.flag[<player.uuid>_priest_rewarded]>:
- define "pt:<&6><&l>[<&6>Priest<&6><&l>]"
- define "w1:<[pt]> <&f>Thanks for these materials, <&e><player.name><&f>!"
- define "w2:<[pt]> <&f>I hope you come back tomorrow!"
- narrate "<[w1]>"
- wait <[w1].length.div[2]>t
- narrate "<[w2]>"
- else:
- narrate "<&6><&l>[<&6>Priest<&6><&l>] <&f>I needed <&a><player.flag[<player.uuid>_daily_priest].get[1]> <&translate[item.minecraft.<player.flag[<player.uuid>_daily_priest].get[2]>]>(s)<&f> and was going to give you a book of <&d><player.flag[<player.uuid>_daily_priest].get[3]> <player.flag[<player.uuid>_daily_priest].get[4]><&f>, come back to me when you have the <&a><&translate[item.minecraft.<player.flag[<player.uuid>_daily_priest].get[2]>]>(s)"
- if <player.flag[<player.uuid>_priest_daily_set]> !:
- engage
- flag player <player.uuid>_priest_day_reset:<util.date.time.day>
- flag player <player.uuid>_daily_priest:!
- define "material_amount:<util.random.int[5].to[20]>"
- define "material_name:<list[iron_ingot|emerald|bread].random>"
- define "enchant_name:<list[Efficiency|Sharpness|Unbreaking|Smite|Protection|Fortune|Power|Feather Falling].random>"
- define "enchant_level:<list[I|II].random>"
- flag player <player.uuid>_daily_priest:->:<[material_amount]>
- flag player <player.uuid>_daily_priest:->:<[material_name]>
- flag player <player.uuid>_daily_priest:->:<[enchant_name]>
- flag player <player.uuid>_daily_priest:->:<[enchant_level]>
- define "pt:<&6><&l>[<&6>Priest<&6><&l>]"
- define "w1:<[pt]> <list[<&f>Oh, <&e><player.name><&f>!|<&f>Hello <&e><player.name><&f>!|<&f>Nice to see you <&e><player.name><&f>!|<&f>It's <&e><player.name><&f>!|<&f>Greetings to my church <&e><player.name><&f>!].random>"
- define "w2:<[pt]> <list[<&f>I need to you do a little job for me|<&f>Would you collect some materials for me?|<&f>Do you happen to have some of these materials around?|<&f>Would you like to take this offer?|<&f>Are you up for a job, <&e><player.name><&f>?].random>"
- define "w3:<[pt]> <&f>I need <&a><player.flag[<player.uuid>_daily_priest].get[1]> <&translate[item.minecraft.<player.flag[<player.uuid>_daily_priest].get[2]>]>(s)<&f>, in exchange I can give you this book of <&d><player.flag[<player.uuid>_daily_priest].get[3]> <player.flag[<player.uuid>_daily_priest].get[4]><&f>."
- narrate "<[w1]>"
- wait <[w1].length.div[2]>t
- narrate "<[w2]>"
- wait <[w2].length.div[2]>t
- narrate "<[w3]>"
- flag player <player.uuid>_priest_daily_set:true
- disengage