Date: 2017/10/20 16:14:48 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
173_emeraldOreHandler:
type: world
events:
on player drops 173_emeraldOre5:
- determine cancelled
on player drops 173_emeraldOre10:
- determine cancelled
on player right clicks with 173_emeraldOre5:
- determine cancelled
on player right clicks with 173_emeraldOre5:
- determine cancelled
on player left clicks with 173_emeraldOre5:
- if <player.has_flag[meta.emeraldCD]> || <player.flag[s.173.emeraldOre.d].contains[0]||false> queue clear
- flag player meta.emeraldCD duration:d@4s
- define players <player.location.find.players.within[3].exclude[<player>]>
- if <def[players].size> >= 0 {
- narrate f:note "Alle 5 Flecken funkeln, ... eine Inschrift taucht auf."
- flag player s.173.emeraldOre.d:->:0
#173_5|Cirdan
- flag player 173_5:->:6
- define newlore <i@173_emeraldOre5.lore.include[<def[players].parse[name.substring[0,2]]>]>
- adjust <player.item_in_hand> "lore:<def[newlore]>" save:output
- take iteminhand quantity:<player.item_in_hand.quantity>
- give <entry[output].result> slot:<player.item_in_hand.slot>
}
else {
- narrate f:note "<def[players].size>/<def[qty]> Flecken funkeln"
}
on player left clicks with 173_emeraldOre10:
- if <player.has_flag[meta.emeraldCD]> || <player.flag[s.173.emeraldOre.d].contains[10]||false> queue clear
- flag player meta.emeraldCD duration:d@4s
- define players <player.location.find.players.within[3].exclude[<player>]>
- if <def[players].size> >= 10 {
- narrate f:note "Alle 10 Flecken funkeln, ... eine Inschrift taucht auf."
- flag player s.173.emeraldOre.d:->:10
#173_5|Cirdan
- flag player 173_5:->:7
- define newlore <i@173_emeraldOre5.lore.include[<def[players].parse[name.substring[0,2]]>]>
- adjust <player.item_in_hand> "lore:<def[newlore]>" save:output
- take iteminhand quantity:<player.item_in_hand.quantity>
- give <entry[output].result> slot:<player.item_in_hand.slot>
}
else {
- narrate f:note "<def[players].size>/<def[qty]> Flecken funkeln"
}
173_emeraldOre5:
type: item
material: i@emerald_ore
display name: grüner Steinbrocken
lore:
- <&7>(benutzbar)
- <&7>Gemisch aus Stein
- <&7>5 funkelnde Flecken zu erkennen.
173_emeraldOre10:
type: item
material: i@emerald_ore
display name: grüner Steinbrocken
lore:
- <&7>(benutzbar)
- <&7>Gemisch aus Stein
- <&7>10 funkelnde Flecken zu erkennen.
173_Cirdan_as:
type: assignment
actions:
on assignment:
- trigger name:click state:true
- trigger name:chat state:true radius:5
interact scripts:
- 10 173_Cirdan_in
173_Cirdan_in:
default constants:
1: Guten Tag!
2: Woran arbeitest du?
3: Bis bald.
4: Wofür soll das nützlich sein ?
5: Gut, ich bin dabei.
6: Hier hast du den kleine Stein.
7: Hier hast du den große Stein.
type: interact
steps:
1:
click trigger:
script:
- ^if <player.has_flag[<npc>_engaged]> { - queue clear }
- if !<player.has_flag[<proc[e-id]>]> {
- flag player "<proc[e-id]>:|:1|3"
}
else {
- chat "Wie geht es vorran?"
}
- inject locally loader
chat trigger:
1:
trigger: /regex:.+/
script:
- ^if <player.has_flag[<npc>_engaged]> { - queue clear }
- ^if <context.message> !matches number { - narrate "<&6>Du musst eine Zahl nennen." - queue clear }
- ^if <context.message> < 1 || <context.message> > <player.flag[<proc[e-id]>].size||0> { - narrate "<&6>Die Zahl ist ungültig!" - queue clear }
- ^flag player <npc>_engaged
- inject locally <player.flag[<proc[e-id]>].get[<context.message>]>_effect
- ^if <def[queue]||x> != clear { - ^inject locally loader }
- flag player <npc>_engaged:!
loader:
- foreach <player.flag[<proc[e-id]>].as_list> {
- narrate "<def[loop_index]>. <&a><script.constant[<def[value]>]>"
}
3_effect:
- chat "Auf Wiedersehen."
- define queue clear
1_effect:
- chat "Sei gegrüßt mein Junge."
- wait 2
- chat "Wenn Arbeit suchst,"
- wait 3
- chat "habe ich vielleicht etwas passendes für dich."
- flag player "<proc[e-id]>:<-:1"
- flag player "<proc[e-id]>:|:2"
2_effect:
- chat "Ich habe hier einige Example von Kristallen und Gesteinen. Zuerzeit erforsche ich deren magische Wirkung."
- wait 3
- flag player "<proc[e-id]>:<-:2"
- flag player "<proc[e-id]>:|:4"
4_effect:
- chat "Dieses grüne Gestein speichert Informationen über seine Umgebung."
- wait 3
- chat "Möchtest du mir helfen ein Experiment durchzuführen ?"
- flag player "<proc[e-id]>:<-:4"
- flag player "<proc[e-id]>:|:5"
5_effect:
- if <player.inventory.empty_slots> < 2 {
- chat "Du hast keinen Platz."
} else {
- flag player "<proc[e-id]>:<-:5"
- give 173_emeraldOre5
- give 173_emeraldOre10
- run narrate f:note " "Steine erhalten"
- chat "Hier sind 2 Steine, benutze sie wenn einige andere Personen in der Nähe sind."
- wait 3
- chat "Achte auf ihr Verhalten und bring sie mir dann wieder."
- run qu_start_2 def:173.emeraldOre|1
}
6_effect:
- if <player.inventory.contains.scriptname[173_emeraldOre5]> {
- take 173_emeraldOre5
- inject locally path:quest_check
- flag player "<proc[e-id]>:<-:6"
} else {
- chat "Ich kann den Stein nicht sehen."
}
7_effect:
- if <player.inventory.contains.scriptname[173_emeraldOre10]> {
- take 173_emeraldOre10
- inject locally path:quest_check
- flag player "<proc[e-id]>:<-:7"
} else {
- chat "Ich kann den Stein nicht sehen."
}
quest_check:
- flag player s.173.EmeraldOre.d2:++
- if <player.flag[s.173.EmeraldOre.d2]||0> >= 2 {
- run qu_complete def:173.EmeraldOre
- chat "Mhmm, das sind die beiden Steine ?"
- wait 2
- chat "Hier ist sind Inschriften zu erkennen."
- wait 2
- chat "... ich werde die Steine weiter untersuchen. Vielen dank für deine Hilfe."
- wait 2
- chat "Hier, das ist für dich."
- wait 1
- inject 173_reward path:EmeraldOre
} else {
- chat "Diesen Stein kann ich bereits nehmen."
- wait 2
- chat "Den anderen werde ich ebenfalls benötigen."
- wait 2
- narrate f:note "Steinbrocken abgegeben 1/2"
}
- define queue clear