Date: 2018/09/12 17:44:55 UTC-07: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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
questlogworld:
type: world
events:
on player clicks in KeyItemsMenu:
- determine cancelled
on player drags in KeyItemsMenu:
- determine cancelled
on player clicks in QuestJournalMenu:
- determine cancelled
on player drags in QuestJournalMenu:
- determine cancelled
on player clicks KeyItemsIt in QuestJournalMenu:
- flag player QJPage1:!
- flag player QJPage2:!
- flag player QJPage3:!
- if <yaml[<player.uuid>].read[KeyItems].size> > 50 {
- flag player QJPage1
- inventory open d:in@questjournalmenu
- queue clear
}
- inventory open d:in@questjournalmenu
on player clicks NextPageIt in KeyItemsInv:
- if <player.has_flag[KIPage1]> {
- flag player KIPage1:!
- flag player KIPage2
- inventory close
- inventory open d:in@KeyItemsInv
- queue clear
}
- if <player.has_flag[KIPage2]> && <yaml[<player.uuid>].read[KeyItems].size> > 101 {
- flag player KIPage2:!
- flag player KIPage3
- inventory close
- inventory open d:in@KeyItemsInv
- queue clear
}
on player clicks PrevPageIt in KeyItemsInv:
- if <player.has_flag[KIPage2]> {
- flag player KIPage2:!
- flag player KIPage1
- inventory close
- inventory open d:in@KeyItemsInv
- queue clear
}
- if <player.has_flag[KIPage3]> {
- flag player KIPage3:!
- flag player KIPage2
- inventory close
- inventory open d:in@KeyItemsInv
- queue clear
}
on player closes KeyItemsInv:
- flag player KIPage1:!
- flag player KIPage2:!
- flag player KIPage3:!
on player clicks NextPageIt in QuestJournalMenu:
- if <player.has_flag[QJPage1]> {
- flag player QJPage1:!
- flag player QJPage2
- inventory close
- inventory open d:in@QuestJournalMenu
- queue clear
}
- if <player.has_flag[QJPage2]> && <yaml[<player.data>].read[KeyItems].size> > 101 {
- flag player QJPage2:!
- flag player QJPage3
- inventory close
- inventory open d:in@QuestJournalMenu
- queue clear
}
on player clicks PrevPageIt in QuestJournalMenu:
- if <player.has_flag[QJPage2]> {
- flag player QJPage2:!
- flag player QJPage1
- inventory close
- inventory open d:in@QuestJournalMenu
- queue clear
}
- if <player.has_flag[QJPage3]> {
- flag player QJPage3:!
- flag player QJPage2
- inventory close
- inventory open d:in@QuestJournalMenu
- queue clear
}
on player closes QuestJournalMenu:
- flag player QJPage1:!
- flag player QJPage2:!
- flag player QJPage3:!
on player clicks questlogi in inventory:
- flag player KIPage1:!
- flag player KIPage2:!
- flag player KIPage3:!
- if <yaml[<player.uuid>].read[ActiveQuests].size> > 50 {
- flag player QJPage1
- inventory open d:in@questjournalmenu
- queue clear
}
- inventory open d:in@questjournalmenu
on player dies:
- define excludeItem <context.drops.find_partial[questlogi]>
- define newDrops <context.drops.remove[%excludeItem%]>
- determine <def[newDrops]>
on player drops questlogi:
- determine cancelled
on player respawns:
- if <player.inventory.contains[questlogi].not> {
- inventory add destination:<player.inventory> origin:i@questlogi slot:36
}
questlog:
type: command
name: questlog
usage: /questlog
script:
- inventory open d:in@questjournalmenu
KeyItemsInv:
type: inventory
title: Key Items
size: 54
slots:
- "[] [] [] [] [] [] [] [] []"
- "[] [] [] [] [] [] [] [] []"
- "[] [] [] [] [] [] [] [] []"
- "[] [] [] [] [] [] [] [] []"
- "[] [] [] [] [] [] [] [] []"
- "[] [] [] [] [] [] [] [i@questlogi] []"
Procedural Items:
- if <player.has_flag[KIPage2]> {
- determine <yaml[<player.uuid>].read[KeyItems].get[51].to[101]>
- queue clear
}
- if <player.has_flag[KIPage3]> {
- determine <yaml[<player.uuid>].read[KeyItems].get[102].to[152]>
- queue clear
}
- determine <yaml[<player.uuid>].read[KeyItems]>
QuestJournalMenu:
type: inventory
title: Quest Journal
size: 54
slots:
- "[] [] [] [] [] [] [] [] []"
- "[] [] [] [] [] [] [] [] []"
- "[] [] [] [] [] [] [] [] []"
- "[] [] [] [] [] [] [] [] []"
- "[] [] [] [] [] [] [] [] []"
- "[] [] [] [] [] [i@PrevPageIt] [i@KeyItemsIt] [i@completedquestsi] [i@NextPageIt]"
Procedural Items:
- if <player.has_flag[QJPage2]> {
- determine <yaml[<player.uuid>].read[ActiveQuests].get[51].to[101]>
- queue clear
}
- if <player.has_flag[QJPage3]> {
- determine <yaml[<player.uuid>].read[ActiveQuests].get[102].to[152]>
- queue clear
}
- determine <yaml[<player.uuid>].read[ActiveQuests]>
KeyItemsIt:
type: item
material:
display name: Key Items
lore:
- "Click here to view"
- "Quest related items."
NextPageIt:
type: item
material: paper
display name: Next Page
lore:
- "Click here to view"
- "the next page."
PrevPageIt:
type: item
material: paper
display name: Previous Page
lore:
- "Click here to view"
- "the previous page."
completedquestsi:
type: item
material: book
display name: Character Stats
lore:
- "Completed Quests: <yaml[<player.uuid>].read[CompleteQuests]>"
- "Global Reputation: <yaml[<player.uuid>].read[GlobalReputation]>"
- "Unsung Reputation: <yaml[<player.uuid>].read[UnsungReputation]>"
- "Click here to see your"
- "Character Information and Stats!"
questlogi:
type: item
material: book
display name: Quest Journal
lore:
- "Click here to access information."
- "about your active quests."