Paste #438: MSFarmer

Date: 2013/11/29 14:25:29 UTC-08:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


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
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558


"MSFarmer Gather Quest":
  type: assignment
  interact scripts:
    - 0 MSFarmer interact
    - 10 MSFarmer expire interact
    - 20 MSFarmer complete
  actions:
    on assignment:
        - trigger name:chat toggle:true
        - trigger name:click toggle:true

  default constants:
    #Wheat
    Location1: -1227,67,-87,survive
    Location2: -1232,67,-80,survive
    Location3: -1225,67,-74,survive
    #Watermelons
    Location4: -1223,66,-67,survive
    Location5: -1224,66,-59,survive
    Location6: -1225,66,-49,survive
    #Pumpkins
    Location7: -1210,66,-65,survive
    Location8: -1215,66,-55,survive
    Location9: -1207,66,-50,survive

    Wheat: 10
    Watermelon: 10
    Pumpkin: 10

"MSFarmer expire interact":
    Requirements:
        Mode: All
        List:
        - valueof "<flag.p:Farmerquest repeatTimer || false>"
        #- -valueof "<player.is_op>"
    type: interact
    steps:
        "1":
            click Trigger:
                script:
                - ^narrate "<&d>You must wait <flag.p:Farmerquest repeatTimer.expiration> before you may attempt this quest again!"

"MSFarmer interact":
  type: interact
  actions:
    on assignment:
    - trigger name:chat toggle:true
    - trigger name:click toggle:true
    - trigger name:proximity toggle:true radius:25
    steps:
          "*meet":
            click trigger:
              script:
              - engage now
              - narrate "**BETA QUEST**<&b><npc.name> the Farmer <&8>| <&a>Well hello there <&b><player.name><&a>.  Would you be willing to help me gather some wheat, watermelons and pumpkins from our farm?"
              - wait 1
              - narrate "<&6>Please answer <&e>Yes<&6> or <&e>No"
              - disengage
            chat trigger:
              'yes':
                trigger: "/yes/, of course I'll help!"
                script:
                - ^listen "ID:<player.name>_MSFarmer_listener1" cancel
                - ^listen "ID:<player.name>_MSFarmer_listener2" cancel
                - ^listen "ID:<player.name>_MSFarmer_listener3" cancel
                - ^listen "ID:<player.name>_MSFarmer_listener4" cancel
                - ^listen "ID:<player.name>_MSFarmer_listener5" cancel
                - ^listen "ID:<player.name>_MSFarmer_listener6" cancel
                - ^listen "ID:<player.name>_MSFarmer_listener7" cancel
                - ^listen "ID:<player.name>_MSFarmer_listener8" cancel
                - ^listen "ID:<player.name>_MSFarmer_listener9" cancel
                - narrate "<&b><npc.name> the Farmer <&8>| <&a>Oh thank heavens!  Please return to me once you've gathered what I need!  You will be justly rewarded for your good deed."
                - wait 1
                - animate <npc> animation:arm_swing
                #- cast increase_damage duration:300
                #- narrate "<&b><npc.name> the Farmer <&6>casts a spell on you making you stronger"
                - ^narrate "<&d>---------------------------------------------"
                - ^narrate "<&6>Quest added <&8>| <&6><&o>Gather the following:"
                - ^narrate "<&e>10 <&e><i@BundleofMistyShoresWheat.display>"
                - ^narrate "<&e>10 <&e><i@MistyShoresWatermelon.display>"
                - ^narrate "<&e>10 <&e><i@MistyShoresPumpkin.display>"
                - ^narrate "<&d>---------------------------------------------"
                #Wheat
                - ^listen travel "ID:<player.name>_MSFarmer_listener1" "SCRIPT:MSFarmer listener1" type:tolocation location:<cons:Location1> radius:2
                - ^listen travel "ID:<player.name>_MSFarmer_listener2" "SCRIPT:MSFarmer listener2" type:tolocation location:<cons:Location2> radius:2
                - ^listen travel "ID:<player.name>_MSFarmer_listener3" "SCRIPT:MSFarmer listener3" type:tolocation location:<cons:Location3> radius:2
                #Watermelons
                - ^listen travel "ID:<player.name>_MSFarmer_listener4" "SCRIPT:MSFarmer listener4" type:tolocation location:<cons:Location4> radius:2
                - ^listen travel "ID:<player.name>_MSFarmer_listener5" "SCRIPT:MSFarmer listener5" type:tolocation location:<cons:Location5> radius:2
                - ^listen travel "ID:<player.name>_MSFarmer_listener6" "SCRIPT:MSFarmer listener6" type:tolocation location:<cons:Location6> radius:2
                #Pumpkins
                - ^listen travel "ID:<player.name>_MSFarmer_listener7" "SCRIPT:MSFarmer listener7" type:tolocation location:<cons:Location7> radius:2
                - ^listen travel "ID:<player.name>_MSFarmer_listener8" "SCRIPT:MSFarmer listener8" type:tolocation location:<cons:Location8> radius:2
                - ^listen travel "ID:<player.name>_MSFarmer_listener9" "SCRIPT:MSFarmer listener9" type:tolocation location:<cons:Location9> radius:2
                #- ^listen block "ID:<player.name>_MSFarmer" "SCRIPT:MSFarmer continue" region:misty_farm1 type:collect block:296 qty:1
                #- ^listen block "ID:<player.name>_MSFarmer" "SCRIPT:MSFarmer continue" region:misty_farm1 type:collect block:BundleofMistyShoresWheat qty:1
                - ^flag global "WheatEffects:->:<player.name>"
                - ^flag global "WatermelonEffects:->:<player.name>"
                - ^flag global "PumpkinEffects:->:<player.name>"
                #- ^announce "WheatEffects:<light_purple><global.flag[WheatEffects].aslist.ascslist>"
                #- ^announce "WatermelonEffects:<light_purple><global.flag[WatermelonEffects].aslist.ascslist>"
                #- ^announce "PumpkinEffectsEffects:<light_purple><global.flag[PumpkinEffects].aslist.ascslist>"
                #- ^flag global WatermelonEffectsStatus:On
                - ^run "script:MSFarmer effects" SubscriptWheatEffects1 id:WheatEffects1
                - ^run "script:MSFarmer effects" SubscriptWatermelonEffects1 id:WatermelonEffects1
                - ^run "script:MSFarmer effects" SubscriptPumpkinEffects1 id:PumpkinEffects1
                - ^zap "step:gather" "script:MSFarmer interact"
              'no':
                trigger: '/no/, not right now'
                script:
                - narrate "<&b><npc.name> <&8>| <&a>No problem.  Let me know if you change your mind!"
          "gather":
            proximity trigger:
              #entry:
                #script:
                #- cooldown duration:15s
                #- if <global.flag[WheatEffects].aslist> contains <player.name> run "script:MSFarmer effects" SubscriptWheatEffects id:WheatEffects
                #- if <global.flag[WatermelonEffects].aslist> contains <player.name> run "script:MSFarmer effects" SubscriptWatermelonEffects id:WatermelonEffects
                #- if <global.flag[PumpkinEffects].aslist> contains <player.name> run "script:MSFarmer effects" SubscriptPumpkinEffects id:PumpkinEffects
              move:
                script:
                - cooldown duration:15s
                - if <global.flag[WheatEffects].aslist> contains <player.name> run "script:MSFarmer effects" SubscriptWheatEffects1 id:WheatEffects1
                - if <global.flag[WatermelonEffects].aslist> contains <player.name> run "script:MSFarmer effects" SubscriptWatermelonEffects1 id:WatermelonEffects1
                - if <global.flag[PumpkinEffects].aslist> contains <player.name> run "script:MSFarmer effects" SubscriptPumpkinEffects1 id:PumpkinEffects1
              exit:
                script:
                - ^narrate "exit"
                - if <queue.exists[WheatEffects1]> queue id:WheatEffects1 clear
                - if <queue.exists[WatermelonEffects1]> queue id:WatermelonEffects1 clear
                - if <queue.exists[PumpkinEffects1]> queue id:PumpkinEffects1 clear
            click trigger:
              script:
              - if "<player.inventory.contains[i@BundleofMistyShoresWheat].qty[<cons:Wheat>]>" && "<player.inventory.contains[i@MistyShoresWatermelon].qty[<cons:Watermelon>]>" && "<player.inventory.contains[i@MistyShoresPumpkin].qty[<cons:Pumpkin>]>" {
              - ^FINISH
              - ^zap "script:MSFarmer complete" }
                else ^narrate "<&b><npc.name> the Farmer <&8>| <&a>Please return once you've gathered the......"

"MSFarmer complete":
    Requirements:
        Mode: All
        List:
        - script FINISHED "script:MSFarmer interact"
        - ITEM BundleofMistyShoresWheat qty:<cons:Wheat>
        - ITEM MistyShoresWatermelon qty:<cons:Watermelon>
        - ITEM MistyShoresPumpkin qty:<cons:Pumpkin>
    type: interact
    steps:
        'reward':
            click trigger:
              script:
                #- ^flag player "quest msfarmer:0"
                - execute as_npc "npc sel <npc.id>"
                - engage now
                - narrate "<&b><npc.name><&8>| <&6>You got everything!  Thank you so much!!!"
                - ^take item:BundleofMistyShoresWheat qty:9999
                - ^take item:MistyShoresWatermelon qty:9999
                - ^take item:MistyShoresPumpkin qty:9999
                - execute as_npc "npc effect --play heart"
                - ^flag npc "questreward2:<util.random.int[1].to[100]>"
                #- ^flag npc "money:<util.random.int[200].to[300]>"
                #- ^give money "qty:<^flag.npc:money>"
                #- ^give exp qty:200
                #- narrate "<&6>You were rewarded <&a>$<^flag.npc:money>"
                #- announce "<&d><player.name> <&6>rolled a <&d><^flag.npc:questreward2><&6>!"
                - wait 1
                - ^narrate "<&d>---------------------------------------------"
                - ^narrate "<&6>Quest <&8>| <&6><&o>Farmer <&8>| <&d>COMPLETE"
                - ^narrate "<&6>Reward <&8>| <&e>$<^flag.npc:money> <&8>| <&e>200 exp"
                - ^narrate "<&d>---------------------------------------------"
                #- announce "<&6>**<&b><player.name><&6> has killed all the skeletons in the crypts <&6>underneath <&e>Misty Shore's Chapel<&6>!**"
                #- if <flag.n:questreward2.asint> >= 60 ^run "script:MSFarmer GiveExtraReward"
                #- disengage
                #- ^flag npc money:!
                #- ^flag player "MSFarmerquest repeatTimer:true" duration:60
                - wait 10
                - ^execute as_npc "npc effect --play none"
                - wait 30
                - ^listen "ID:<player.name>_MSFarmer_listener1" cancel
                - ^listen "ID:<player.name>_MSFarmer_listener2" cancel
                - ^listen "ID:<player.name>_MSFarmer_listener3" cancel
                - ^listen "ID:<player.name>_MSFarmer_listener4" cancel
                - ^listen "ID:<player.name>_MSFarmer_listener5" cancel
                - ^listen "ID:<player.name>_MSFarmer_listener6" cancel
                - ^listen "ID:<player.name>_MSFarmer_listener7" cancel
                - ^listen "ID:<player.name>_MSFarmer_listener8" cancel
                - ^listen "ID:<player.name>_MSFarmer_listener9" cancel
                - ^zap "step:*meet" "script:MSFarmer interact"

"MSFarmer effects":
    type: task
    script:
    #Wheat
    SubscriptWheatEffects1:
    - wait 15
    - if "<player.inventory.contains[i@BundleofMistyShoresWheat].qty[<cons:Wheat>]>" == true {
      - ^narrate "<&6>You have gathered all of the <&e><i@BundleofMistyShoresWheat.display><&6>!"
      - ^flag global "WheatEffects:<-:<player.name>"
      - ^queue clear }
    - run "script:MSFarmer effects" SubscriptWheatEffects2 id:WheatEffects2
    - run "script:MSFarmer effects" SubscriptWheatEffects1 id:WheatEffects1
    SubscriptWheatEffects2:
    - ^playeffect <cons:Location1> PORTAL radius:20 qty:150 offset:0.50
    - ^playeffect <cons:Location2> PORTAL radius:20 qty:150 offset:0.50
    - ^playeffect <cons:Location3> PORTAL radius:20 qty:150 offset:0.50

    #Watermelon
    SubscriptWatermelonEffects1:
    - wait 15
    - if "<player.inventory.contains[i@MistyShoresWatermelon].qty[<cons:Watermelon>]>" == true && "<global.flag[WatermelonEffects].aslist>" contains <player.name> {
      - ^narrate "<&6>You have gathered all of the <&e><i@MistyShoresWatermelon.display><&6>!"
      - ^flag global "WatermelonEffects:<-:<player.name>"
      - ^queue clear }
    - run "script:MSFarmer effects" SubscriptWatermelonEffects2 id:WatermelonEffects2
    - run "script:MSFarmer effects" SubscriptWatermelonEffects1 id:WatermelonEffects1
    SubscriptWatermelonEffects2:
    - ^playeffect <cons:Location4> PORTAL radius:20 qty:150 offset:0.50
    - ^playeffect <cons:Location5> PORTAL radius:20 qty:150 offset:0.50
    - ^playeffect <cons:Location6> PORTAL radius:20 qty:150 offset:0.50

    #Pumpkin
    SubscriptPumpkinEffects1:
    - wait 15
    - if "<player.inventory.contains[i@MistyShoresPumpkin].qty[<cons:Pumpkin>]>" == true && "<global.flag[PumpkinEffects].aslist>" contains <player.name> {
      - ^narrate "<&6>You have gathered all of the <&e><i@MistyShoresPumpkin.display><&6>!"
      - ^flag global "PumpkinEffects:<-:<player.name>"
      - ^queue clear }
    - run "script:MSFarmer effects" SubscriptPumpkinEffects2 id:PumpkinEffects2
    - run "script:MSFarmer effects" SubscriptPumpkinEffects1 id:PumpkinEffects1
    SubscriptPumpkinEffects2:
    - ^playeffect <cons:Location7> PORTAL radius:20 qty:150 offset:0.50
    - ^playeffect <cons:Location8> PORTAL radius:20 qty:150 offset:0.50
    - ^playeffect <cons:Location9> PORTAL radius:20 qty:150 offset:0.50

#Wheat
'MSFarmer listener1':
    type: task
    script:
    - if "<player.inventory.contains[i@BundleofMistyShoresWheat].qty[<cons:Wheat>]>" == false {
      - ^random 2
      - run 's@MSFarmer listener1' 'subscript1'
      - run 's@MSFarmer listener1' 'subscript2'
      }
        else {
          - ^wait 40
          - ^listen "ID:<player.name>_MSFarmer_listener1" cancel
          - ^listen "ID:<player.name>_MSFarmer_listener2" cancel
          - ^listen "ID:<player.name>_MSFarmer_listener3" cancel
        }
    subscript1:
    - ^drop item:BundleofMistyShoresWheat qty:5 <cons:Location1>
    - ^playsound <cons:Location1> sound:LAVA_POP volume:2 pitch:.1
    - ^run 's@MSFarmer listener1' 'subscript3' id:msfarmlistener1 delay:40
    subscript2:
#    - execute as_op "spawnmob silverfish <util.random.int[1].to[3]> <player.name>"
    - ^run 's@MSFarmer listener1' 'subscript3' id:msfarmlistener1 delay:40
    subscript3:
    - ^listen travel "ID:<player.name>_MSFarmer_listener1" "SCRIPT:MSFarmer listener1" type:tolocation location:<cons:Location1> radius:2
'MSFarmer listener2':
    type: task
    script:
    - if "<player.inventory.contains[i@BundleofMistyShoresWheat].qty[<cons:Wheat>]>" == false {
      - ^random 2
      - run 's@MSFarmer listener2' 'subscript1'
      - run 's@MSFarmer listener2' 'subscript2'
      }
        else {
          - ^wait 40
          - ^listen "ID:<player.name>_MSFarmer_listener1" cancel
          - ^listen "ID:<player.name>_MSFarmer_listener2" cancel
          - ^listen "ID:<player.name>_MSFarmer_listener3" cancel
        }
    subscript1:
    - ^drop item:BundleofMistyShoresWheat qty:5 <cons:Location2>
    - ^playsound <cons:Location2> sound:LAVA_POP volume:2 pitch:.1
    - ^run 's@MSFarmer listener2' 'subscript3' id:msfarmlistener2 delay:40
    subscript2:
#    - execute as_op "spawnmob silverfish <util.random.int[1].to[3]> <player.name>"
    - ^run 's@MSFarmer listener2' 'subscript3' id:msfarmlistener2 delay:40
    subscript3:
    - ^listen travel "ID:<player.name>_MSFarmer_listener2" "SCRIPT:MSFarmer listener2" type:tolocation location:<cons:Location2> radius:2
'MSFarmer listener3':
    type: task
    script:
    - if "<player.inventory.contains[i@BundleofMistyShoresWheat].qty[<cons:Wheat>]>" == false {
      - ^random 2
      - run 's@MSFarmer listener3' 'subscript1'
      - run 's@MSFarmer listener3' 'subscript2'
      }
        else {
          - ^wait 40
          - ^listen "ID:<player.name>_MSFarmer_listener1" cancel
          - ^listen "ID:<player.name>_MSFarmer_listener2" cancel
          - ^listen "ID:<player.name>_MSFarmer_listener3" cancel
        }
    subscript1:
    - ^drop item:BundleofMistyShoresWheat qty:5 <cons:Location3>
    - ^playsound <cons:Location3> sound:LAVA_POP volume:2 pitch:.1
    - ^run 's@MSFarmer listener3' 'subscript3' id:msfarmlistener3 delay:40
    subscript2:
#    - execute as_op "spawnmob silverfish <util.random.int[1].to[3]> <player.name>"
    - ^run 's@MSFarmer listener3' 'subscript3' id:msfarmlistener3 delay:40
    subscript3:
    - ^listen travel "ID:<player.name>_MSFarmer_listener3" "SCRIPT:MSFarmer listener3" type:tolocation location:<cons:Location3> radius:2

#Watermelon
'MSFarmer listener4':
    type: task
    script:
    - if "<player.inventory.contains[i@MistyShoresWatermelon].qty[<cons:Watermelon>]>" == false {
      - ^random 2
      - run 's@MSFarmer listener4' 'subscript1'
      - run 's@MSFarmer listener4' 'subscript2'
      }
        else {
          - ^wait 40
          - ^listen "ID:<player.name>_MSFarmer_listener4" cancel
          - ^listen "ID:<player.name>_MSFarmer_listener5" cancel
          - ^listen "ID:<player.name>_MSFarmer_listener6" cancel
        }
    subscript1:
    - ^drop item:MistyShoresWatermelon qty:5 <cons:Location4>
    - ^playsound <cons:Location4> sound:LAVA_POP volume:2 pitch:.1
    - ^run 's@MSFarmer listener4' 'subscript3' id:msfarmlistener4 delay:40
    subscript2:
#    - execute as_op "spawnmob silverfish <util.random.int[1].to[3]> <player.name>"
    - ^run 's@MSFarmer listener4' 'subscript3' id:msfarmlistener4 delay:40
    subscript3:
    - ^listen travel "ID:<player.name>_MSFarmer_listener4" "SCRIPT:MSFarmer listener4" type:tolocation location:<cons:Location4> radius:2
'MSFarmer listener5':
    type: task
    script:
    - if "<player.inventory.contains[i@MistyShoresWatermelon].qty[<cons:Watermelon>]>" == false {
      - ^random 2
      - run 's@MSFarmer listener5' 'subscript1'
      - run 's@MSFarmer listener5' 'subscript2'
      }
        else {
          - ^wait 40
          - ^listen "ID:<player.name>_MSFarmer_listener4" cancel
          - ^listen "ID:<player.name>_MSFarmer_listener5" cancel
          - ^listen "ID:<player.name>_MSFarmer_listener6" cancel
        }
    subscript1:
    - ^drop item:MistyShoresWatermelon qty:5 <cons:Location5>
    - ^playsound <cons:Location5> sound:LAVA_POP volume:2 pitch:.1
    - ^run 's@MSFarmer listener5' 'subscript3' id:msfarmlistener5 delay:40
    subscript2:
#    - execute as_op "spawnmob silverfish <util.random.int[1].to[3]> <player.name>"
    - ^run 's@MSFarmer listener5' 'subscript3' id:msfarmlistener5 delay:40
    subscript3:
    - ^listen travel "ID:<player.name>_MSFarmer_listener5" "SCRIPT:MSFarmer listener5" type:tolocation location:<cons:Location5> radius:2
'MSFarmer listener6':
    type: task
    script:
    - if "<player.inventory.contains[i@MistyShoresWatermelon].qty[<cons:WaterMelon>]>" == false {
      - ^random 2
      - run 's@MSFarmer listener6' 'subscript1'
      - run 's@MSFarmer listener6' 'subscript2'
      }
        else {
          - ^wait 40
          - ^listen "ID:<player.name>_MSFarmer_listener4" cancel
          - ^listen "ID:<player.name>_MSFarmer_listener5" cancel
          - ^listen "ID:<player.name>_MSFarmer_listener6" cancel
        }
    subscript1:
    - ^drop item:MistyShoresWatermelon qty:5 <cons:Location6>
    - ^playsound <cons:Location6> sound:LAVA_POP volume:2 pitch:.1
    - ^run 's@MSFarmer listener6' 'subscript3' id:msfarmlistener6 delay:40
    subscript2:
#    - execute as_op "spawnmob silverfish <util.random.int[1].to[3]> <player.name>"
    - ^run 's@MSFarmer listener6' 'subscript3' id:msfarmlistener6 delay:40
    subscript3:
    - ^listen travel "ID:<player.name>_MSFarmer_listener6" "SCRIPT:MSFarmer listener6" type:tolocation location:<cons:Location6> radius:2

#Pumpkin
'MSFarmer listener7':
    type: task
    script:
    - if "<player.inventory.contains[i@MistyShoresPumpkin].qty[<cons:Pumpkin>]>" == false {
      - ^random 2
      - run 's@MSFarmer listener7' 'subscript1'
      - run 's@MSFarmer listener7' 'subscript2'
      }
        else {
          - ^wait 40
          - ^listen "ID:<player.name>_MSFarmer_listener7" cancel
          - ^listen "ID:<player.name>_MSFarmer_listener8" cancel
          - ^listen "ID:<player.name>_MSFarmer_listener9" cancel
        }
    subscript1:
    - ^drop item:MistyShoresPumpkin qty:5 <cons:Location7>
    - ^playsound <cons:Location7> sound:LAVA_POP volume:2 pitch:.1
    - ^run 's@MSFarmer listener7' 'subscript3' id:msfarmlistener7 delay:40
    subscript2:
#    - execute as_op "spawnmob silverfish <util.random.int[1].to[3]> <player.name>"
    - ^run 's@MSFarmer listener7' 'subscript3' id:msfarmlistener7 delay:40
    subscript3:
    - ^listen travel "ID:<player.name>_MSFarmer_listener7" "SCRIPT:MSFarmer listener7" type:tolocation location:<cons:Location7> radius:2
'MSFarmer listener8':
    type: task
    script:
    - if "<player.inventory.contains[i@MistyShoresPumpkin].qty[<cons:Pumpkin>]>" == false {
      - ^random 2
      - run 's@MSFarmer listener8' 'subscript1'
      - run 's@MSFarmer listener8' 'subscript2'
      }
        else {
          - ^wait 40
          - ^listen "ID:<player.name>_MSFarmer_listener7" cancel
          - ^listen "ID:<player.name>_MSFarmer_listener8" cancel
          - ^listen "ID:<player.name>_MSFarmer_listener9" cancel
        }
    subscript1:
    - ^drop item:MistyShoresPumpkin qty:5 <cons:Location8>
    - ^playsound <cons:Location8> sound:LAVA_POP volume:2 pitch:.1
    - ^run 's@MSFarmer listener8' 'subscript3' id:msfarmlistener8 delay:40
    subscript2:
#    - execute as_op "spawnmob silverfish <util.random.int[1].to[3]> <player.name>"
    - ^run 's@MSFarmer listener8' 'subscript3' id:msfarmlistener8 delay:40
    subscript3:
    - ^listen travel "ID:<player.name>_MSFarmer_listener8" "SCRIPT:MSFarmer listener8" type:tolocation location:<cons:Location8> radius:2
'MSFarmer listener9':
    type: task
    script:
    - if "<player.inventory.contains[i@MistyShoresPumpkin].qty[<cons:Pumpkin>]>" == false {
      - ^random 2
      - run 's@MSFarmer listener9' 'subscript1'
      - run 's@MSFarmer listener9' 'subscript2'
      }
        else {
          - ^wait 40
          - ^listen "ID:<player.name>_MSFarmer_listener7" cancel
          - ^listen "ID:<player.name>_MSFarmer_listener8" cancel
          - ^listen "ID:<player.name>_MSFarmer_listener9" cancel
        }
    subscript1:
    - ^drop item:MistyShoresPumpkin qty:5 <cons:Location9>
    - ^playsound <cons:Location9> sound:LAVA_POP volume:2 pitch:.1
    - ^run 's@MSFarmer listener9' 'subscript3' id:msfarmlistener9 delay:40
    subscript2:
#    - execute as_op "spawnmob silverfish <util.random.int[1].to[3]> <player.name>"
    - ^run 's@MSFarmer listener9' 'subscript3' id:msfarmlistener9 delay:40
    subscript3:
    - ^listen travel "ID:<player.name>_MSFarmer_listener9" "SCRIPT:MSFarmer listener9" type:tolocation location:<cons:Location9> radius:2


#***REWARDS***
'MSFarmer GiveExtraReward':
    type: task
    script:
    - random 3
    - run "script:Farmer Give3Diamonds"
    - run "script:Farmer GiveRareChance"
    - run "script:Farmer GiveSetGear"
    - flag player "questreward2:!"

'Farmer Give3Diamonds':
    type: task
    script:
    - ^give 'item:264' qty:3
    - ^narrate "<&6>You have been given <&e>3 diamonds"
    - ^announce "<&b><player.name> <&6>has been given <&e>3 diamonds <&6> for completing a quest!"

'Farmer GiveRareChance':
    type: task
    script:
    - flag npc "rare:<util.random.int[1].to[5]>"
    - if <flag.n:rare.asint> >= 4 ^run "script:Farmer GiveRare"
      else ^run "script:Farmer GiveGoldBlock"
    - flag player "rare:!"

'Farmer GiveGoldBlock':
    type: task
    script:
    - ^give 'item:41' qty:1
    - ^narrate "<&6>You have been given <&e>1 block of gold"
    - ^announce "<&b><player.name> <&6>has been given <&e>1 block of gold <&6> for completing a quest!"

'Farmer GiveRare':
    type: task
    script:
    - ^execute as_op "rpgitem healersstaffofmistyshores give <player.name>"
    - ^narrate "<&6>You have been given <&9>Healer's Staff of Misty Shores"
    - ^announce "<&b><player.name> <&6>has been given <&9>Healer's Staff of Misty Shores <&6>for completing a quest!"

'Farmer GiveSetGear':
    type: task
    script:
    - random 4
    - run "script:Farmer GiveCryptstalkerHelm"
    - run "script:Farmer GiveCryptstalkerHelm"
    - run "script:Farmer GiveCryptstalkerHelm"
    - run "script:Farmer GiveCryptstalkerHelm"

'Farmer GiveCryptstalkerHelm':
    type: task
    script:
    - ^execute as_npc "give <player.name> 306 1 protection:2 name:&aCrypstalker's_Plate_Helm"
    - ^narrate "<&6>You have been given <&a>Cryptstalker's Plate Helm"
    - ^announce "<&b><player.name> <&6>has been given <&a>Cryptstalker's Plate Helm <&6>for completing a quest!"

'Farmer GiveCryptstalkerArmor':
    type: task
    script:
    - ^execute as_npc "give <player.name> 307 1 protection:2 unbreaking:1 name:&aCryptstalker's_Plate_Armor"
    - ^narrate "<&6>You have been given <&a>Cryptstalker's Plate Armor"
    - ^announce "<&b><player.name> <&6>has been given <&a>Cryptstalker's Plate Armor <&6>for completing a quest!"

'Farmer GiveCryptstalkerLeggings':
    type: task
    script:
    - ^execute as_npc "give <player.name> 308 1 protection:2 thorns:1 name:&aCryptstalker's_Plate_Leggings"
    - ^narrate "<&6>You have been given <&a>Cryptstalker's Plate Leggings"
    - ^announce "<&b><player.name> <&6>has been given <&a>Cryptstalker's Plate Leggings <&6>for completing a quest!"

'Farmer GiveCryptstalkerBoots':
    type: task
    script:
    - ^execute as_npc "give <player.name> 309 1 protection:2 name:&aCryptstalker's_Plate_Boots"
    - ^narrate "<&6>You have been given <&a>Cryptstalker's Plate Boots"
    - ^announce "<&b><player.name> <&6>has been given <&a>Cryptstalker's Plate Boots <&6>for completing a quest!"

"MS Farmer Queue Handling":
  type: world
  events:
    on player quit:
    #- announce "<server.list_online_players.aslist.ascslist> has quit!!!!!!!!"
    - if <queue.exists[WheatEffects1]> queue id:WheatEffects1 clear
      #- if "<global.flag[WatermelonEffectsStatus]>" != "On" || "<server.list_online_players.aslist.ascslist>" !contains "<global.flag[WatermelonEffects].aslist>" queue clear
      #- queue id:WheatEffects clear
      #- ^flag global WheatEffectsStatus:Off
      #- ^announce "Setting WheatEffecsStatus to OFF!"
    - if <queue.exists[WatermelonEffects1]> queue id:WatermelonEffects1 clear
    - if <queue.exists[PumpkinEffects1]> queue id:PumpkinEffects1 clear

    #Wheat
    #SubscriptWheatEffects:
    #- wait 10
    #- foreach <global.flag[WheatEffects].aslist> {
      #- if "<player.inventory.contains[i@BundleofMistyShoresWheat].qty[<cons:Wheat>]>" == false && "<global.flag[WheatEffects].aslist>" contains <player.name> && "<global.flag[WheatEffectsStatus]>" == "Off" {
        #- ^flag global WheatEffectsStatus:On
        #- ^playeffect <cons:Location1> PORTAL radius:20 qty:150 offset:0.50
        #- ^playeffect <cons:Location2> PORTAL radius:20 qty:150 offset:0.50
        #- ^playeffect <cons:Location3> PORTAL radius:20 qty:150 offset:0.50
        #- ^run "script:MSFarmer effects" SubscriptWheatEffects id:WheatEffects }
        #else {
          #- ^narrate "<&6>You have gathered all <&e><cons:Wheat> <&6>of the <&e><i@BundleofMistyShoresWheat.display><&6>!"
          #- ^flag global "WheatEffects:<-:<player.name>"
          #- if <global.flag[WheatEffects].aslist> == null {
             #- ^announce "No more players in the Wheat list!"
             #- ^flag global WheatEffectsStatus:Off }
        #}
      #}

    #- if "<global.flag[WatermelonEffectsStatus]>" != "On" || "<server.list_online_players.aslist.ascslist>" !contains "<global.flag[WatermelonEffects].aslist>" queue clear
    #- if "<global.flag[WatermelonEffectsStatus]>" == "On"