Paste #57607: innkeeper wip

Date: 2019/09/02 14:44:01 UTC-07: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


Innkeeper:
    type: assignment
    actions:
        on assignment:
            - trigger name:click state:true
            - trigger name:chat state:true
    interact scripts:
    - 10 innkeeper_interact
#INTERACTION OPTIONS#
innkeeper_interact:
    type: interact
    steps:
        1:
            click trigger:
                script:
                    - chat "<yellow>What will ya have today?"
                    - narrate "<blue>Menu, Rooms, Gossip."
            chat trigger:
                1:
                    trigger: I'd like to hear what goes around now as /gossip/?
                    script:
                        - narrate THIS IS A WORKING IN PROGRESS
                2:
                    trigger: I'd like to see your /menu/.
                    script:
                        - inventory open d:in@innkeeper_inventory_menu
                3:
                    trigger: I'd like to rent a /room/.
                    script:
                        - inventory open d:in@inkeeper_inventory_rooms

#THE INVENTORY GUI FOR THE RENTAL ROOMS#
inkeeper_inventory_rooms:
    type: inventory
    title: Two Blocks Away - Rooms
    size: 9
    slots:
        - "[i@roomkey1] [i@roomkey2] [i@roomkey3] [i@roomkey4] [] [i@roomkey1exit] [i@roomkey2exit] [i@roomkey3exit] [i@roomkey4exit]"
#THE INVENETORY GUI FOR THE FOOD AND DRINKS#
innkeeper_inventory_menu:
    type: inventory
    title: Two Blocks Away - Inn Menu
    size: 27
    slots:
    - "[i@zombie_mead] [i@mug_cider] [i@squirrel_milk] [] [] [i@pigman_sandwich] [i@squid_donut] [] []"
    - "[] [] [] [] [] [] [] [] []"
    - "[] [] [] [] [] [] [] [] []"
#THE ITEMS INSIDE THE FOOD N DRINKS INVENTORY#
zombie_mead:
    type: item
    display name: 'Zombie Mead'
    material: player_head[skull_skin=c937a96b-cdbc-4fd1-8a19-e3fa9eadf313|eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDE2OGI5ODA5OGEwYzRhMjllMjA0NjcwNDYzMDkxZGI2MDcwZTc3ZDg2NzY5ZDk4NWY2YmVmNDA3NWU1In19fQ==]
    lore:
        - A jigger of fermented zombie drool
        - poured into a dirty mug.
        - Perfectly drinkable.
        - <blue>Bought for 10e.
mug_cider:
    type: item
    display name: 'Mug of Apple Cider'
    material: player_head[skull_skin=1ca788e2-da35-4862-a693-9e4543f005b7|eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNmViZjUxYTNhNTJiNzQ3MmEyODVjNjU4Mjg0Njg4YmNiZTU3Y2Q5ZjZmYWE3YTNlNGMyNmE2MTA1MjU0In19fQ==]
    lore:
        - Apple cider contains freshly pressed apples.
        - Nothing out of the ordinary.
        - <blue>Bought for 15e.
squirrel_milk:
    type: item
    display name: 'Squirrel Milk'
    material: player_head[skull_skin=28834415-af4e-49bd-83cf-110f3e4aa470|eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDg0MzdmZWU3NDljYmQ2OGYzNDQzYmIwNmU0NTA1OGE2ODdjMGZjYTk2NDM2Y2FkYjUzOGNhZDU5YjUyMTZjNiJ9fX0=]
    lore:
        - Fresh squirrel milk shaken with a dollop of
        - fermented spider eye jelly mixed in an old wooden barrel.
        - It's a house specialty!
        - <blue>Bought for 15e.
squid_donut:
    type: item
    display name: 'Squid Donut'
    material: player_head[skull_skin=9dc33072-7cae-4627-9ef0-6f26b1518516|eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODk4OWRjOTY4MWI2Y2Y5ZDNiNGE4ZTJjNTU0ZWExYmNlNjMyNjc5ZDMxOTZhNDU0MDgzNWFjOGQzYWQzMTIifX19]
    lore:
        - A layer of red squid ink topped on
        - a creamy ball of milled coco beans.
        - A delicious desert.. Yum!
        - <blue>Bought for 20e.
pigman_sandwich:
    type: item
    display name: 'Pigman Sandwich'
    material: player_head[skull_skin=8cb93ae6-3d74-4cee-99ca-6fff3f50222a|eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTQ5ZDNkODg5Y2ZmNjU1YzYyMjgzNDE4NDU1MjA1YjAzYWU3N2ZmYjdlZTE4ZGQwM2FjMGE0ZmZiODk1NjE1YiJ9fX0=]
    lore:
        - Zombie Pigman flank, thinly sliced
        - on freshly baked bread.
        - <blue>Bought for 20e.
#THE ITEMS INSIDE THE RENTAL ROOMS INVENTORY#
roomkey1:
    type: item
    display name: 'First floor room key 1'
    material: player_head[skull_skin=18a9931f-8983-424a-85b8-26895d3d4a8d|eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvM2Q4NzZmODJkNTNjNmIxM2Q4OGViMjFiZTMyMTE5ZjFhYWI2MzFkZGY2ZjZhZTlkNmJjMzc0MmVkMWRlYSJ9fX0=]
    lore:
        - A key for the first room on the left of the first floor.
        - <blue>Bought for 40e.
roomkey2:
    type: item
    display name: 'First floor room key 2'
    material: player_head[skull_skin=18a9931f-8983-424a-85b8-26895d3d4a8d|eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvM2Q4NzZmODJkNTNjNmIxM2Q4OGViMjFiZTMyMTE5ZjFhYWI2MzFkZGY2ZjZhZTlkNmJjMzc0MmVkMWRlYSJ9fX0=]
    lore:
        - A key for the second room on the right of the first floor.
        - <blue>Bought for 40e.
roomkey3:
    type: item
    display name: 'Storage room key 3'
    material: player_head[skull_skin=18a9931f-8983-424a-85b8-26895d3d4a8d|eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvM2Q4NzZmODJkNTNjNmIxM2Q4OGViMjFiZTMyMTE5ZjFhYWI2MzFkZGY2ZjZhZTlkNmJjMzc0MmVkMWRlYSJ9fX0=]
    lore:
        - A key for the third room at the back of the Inn.
        - On the left. Sold for 10e less.
        - <blue>Bought for 30e.
roomkey4:
    type: item
    display name: 'Storage room key 4'
    material: player_head[skull_skin=18a9931f-8983-424a-85b8-26895d3d4a8d|eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvM2Q4NzZmODJkNTNjNmIxM2Q4OGViMjFiZTMyMTE5ZjFhYWI2MzFkZGY2ZjZhZTlkNmJjMzc0MmVkMWRlYSJ9fX0=]
    lore:
        - A key for the fourth room at the back of the Inn.
        - On the right. Sold for 10e less.
        - <blue>Bought for 30e.
roomkey1exit:
    type: item
    display name: 'Check out of room 1'
    material: player_head[skull_skin=61cf2bb0-8951-440c-aecc-59e3dd548a75|eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODhjMGYzN2RlYzc2NGQ2ZTI2YjU3YWE4MjEyNTcyZmJhY2U1ZWU4ZjI3ZjdiNjFjMWZkYWE0N2RkNGM4OTMifX19]
    lore:
        - Click twice to confirm!
roomkey2exit:
    type: item
    display name: 'Check out of room 2'
    material: player_head[skull_skin=61cf2bb0-8951-440c-aecc-59e3dd548a75|eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODhjMGYzN2RlYzc2NGQ2ZTI2YjU3YWE4MjEyNTcyZmJhY2U1ZWU4ZjI3ZjdiNjFjMWZkYWE0N2RkNGM4OTMifX19]
    lore:
        - Click twice to confirm!
roomkey3exit:
    type: item
    display name: 'Check out of room 3'
    material: player_head[skull_skin=61cf2bb0-8951-440c-aecc-59e3dd548a75|eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODhjMGYzN2RlYzc2NGQ2ZTI2YjU3YWE4MjEyNTcyZmJhY2U1ZWU4ZjI3ZjdiNjFjMWZkYWE0N2RkNGM4OTMifX19]
    lore:
        - Click twice to confirm!
roomkey4exit:
    type: item
    display name: 'Check out of room 4'
    material: player_head[skull_skin=61cf2bb0-8951-440c-aecc-59e3dd548a75|eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODhjMGYzN2RlYzc2NGQ2ZTI2YjU3YWE4MjEyNTcyZmJhY2U1ZWU4ZjI3ZjdiNjFjMWZkYWE0N2RkNGM4OTMifX19]
    lore:
        - Click twice to confirm!


#THE HANDLERS TO KEEP THE INVENTORY LOCKED WHEN OPENED#
inkeeper_inventory_handler:
    type: world
    events:
        on player clicks in inkeeper_inventory_rooms:
            - determine cancelled
        on player drags inkeeper_inventory_rooms:
            - determine cancelled
        on player clicks in innkeeper_inventory_menu:
            - determine cancelled
        on player drags innkeeper_inventory_menu:
            - determine cancelled

#THE EVENTS TO BUY STUFF#
items_handler:
    type: world
    events:
        on player clicks roomkey1 in inkeeper_inventory_rooms:
            - if <server.has_flag[room1rentedserver]>:
                - inventory close
                - narrate "<red>Sorry, that room has already been rented."
            - else if <player.has_flag[room1rentedplayer]>:
                - inventory close
                - narrate "<red>Sorry, you're already renting a room!"
            - else if <player.has_flag[room2rentedplayer]>:
                - inventory close
                - narrate "<red>Sorry, you're already renting a room!"
            - else if <player.has_flag[room3rentedplayer]>:
                - inventory close
                - narrate "<red>Sorry, you're already renting a room!"
            - else if <player.has_flag[room4rentedplayer]>:
                - inventory close
                - narrate "<red>Sorry, you're already renting a room!"
            - else if <player.money> >= 40:
                - give i@roomkey1
                - take money quantity:40
                - flag server room1rentedserver:1
                - flag player room1rentedplayer:1
                - inventory close
                - announce "<gold><bold>Room 1 has been rented to <player.name>."
                - wait 24h
                - inventory remove o:i@roomkey1 d:<player.inventory>
                - flag player room1rentedplayer:!
                - flag server room1rentedserver:!
            - else:
                - inventory close
                - narrate "<red>You don't have enough money."
        on player clicks roomkey2 in inkeeper_inventory_rooms:
            - if <server.has_flag[room2rentedserver]>:
                - inventory close
                - narrate "<red>Sorry, that room has already been rented."
            - else if <player.has_flag[room1rentedplayer]>:
                - inventory close
                - narrate "<red>Sorry, you're already renting a room!"
            - else if <player.has_flag[room2rentedplayer]>:
                - inventory close
                - narrate "<red>Sorry, you're already renting a room!"
            - else if <player.has_flag[room3rentedplayer]>:
                - inventory close
                - narrate "<red>Sorry, you're already renting a room!"
            - else if <player.has_flag[room4rentedplayer]>:
                - inventory close
                - narrate "<red>Sorry, you're already renting a room!"
            - else if <player.money> >= 40:
                - give i@roomkey2
                - take money quantity:40
                - flag server room2rentedserver:1
                - flag player room2rentedplayer:1
                - inventory close
                - announce "<gold><bold>Room 2 has been rented to <player.name>."
                - wait 24h
                - inventory remove o:i@roomkey2 d:<player.inventory>
                - flag player room2rentedplayer:!
                - flag server room2rentedserver:!
            - else:
                - inventory close
                - narrate "<red>You don't have enough money."
        on player clicks roomkey3 in inkeeper_inventory_rooms:
            - if <server.has_flag[room3rentedserver]>:
                - inventory close
                - narrate "<red>Sorry, that room has already been rented."
            - else if <player.has_flag[room1rentedplayer]>:
                - inventory close
                - narrate "<red>Sorry, you're already renting a room!"
            - else if <player.has_flag[room2rentedplayer]>:
                - inventory close
                - narrate "<red>Sorry, you're already renting a room!"
            - else if <player.has_flag[room3rentedplayer]>:
                - inventory close
                - narrate "<red>Sorry, you're already renting a room!"
            - else if <player.has_flag[room4rentedplayer]>:
                - inventory close
                - narrate "<red>Sorry, you're already renting a room!"
            - else if <player.money> >= 30:
                - give i@roomkey3
                - take money quantity:30
                - flag server room3rentedserver:1
                - flag player room3rentedplayer:1
                - inventory close
                - announce "<gold><bold>Room 3 has been rented to <player.name>."
                - wait 24h
                - inventory remove o:i@roomkey3 d:<player.inventory>
                - flag player room3rentedplayer:!
                - flag server room3rentedserver:!
            - else:
                - inventory close
                - narrate "<red>You don't have enough money."
        on player clicks roomkey4 in inkeeper_inventory_rooms:
            - if <server.has_flag[room4rentedserver]>:
                - inventory close
                - narrate "<red>Sorry, that room has already been rented."
            - else if <player.has_flag[room1rentedplayer]>:
                - inventory close
                - narrate "<red>Sorry, you're already renting a room!"
            - else if <player.has_flag[room2rentedplayer]>:
                - inventory close
                - narrate "<red>Sorry, you're already renting a room!"
            - else if <player.has_flag[room3rentedplayer]>:
                - inventory close
                - narrate "<red>Sorry, you're already renting a room!"
            - else if <player.has_flag[room4rentedplayer]>:
                - inventory close
                - narrate "<red>Sorry, you're already renting a room!"
            - else if <player.money> >= 30:
                - give i@roomkey4
                - take money quantity:30
                - flag server room4rentedserver:1
                - flag player room4rentedplayer:1
                - inventory close
                - announce "<gold><bold>Room 4 has been rented to <player.name>."
                - wait 24h
                - inventory remove o:i@roomkey4 d:<player.inventory>
                - flag player room4rentedplayer:!
                - flag server room4rentedserver:!
            - else:
                - inventory close
                - narrate "<red>You don't have enough money."

        on player clicks roomkey1exit in inkeeper_inventory_rooms:
            - if <server.has_flag[room1rentedserver]>:
                - flag server room1rentedserver:!
            - else if <player.has_flag[room1rentedplayer]>:
                - flag player room1rentedplayer:!
                - inventory remove o:i@roomkey1 d:<player.inventory>
                - inventory close
                - inventory update
            - else:
                - narrate "<red>You haven't rented that room!"

        on player clicks roomkey2exit in inkeeper_inventory_rooms:
            - if <server.has_flag[room2rentedserver]>:
                - flag server room2rentedserver:!
            - else if <player.has_flag[room2rentedplayer]>:
                - flag player room2rentedplayer:!
                - inventory remove o:i@roomkey2 d:<player.inventory>
                - inventory close
                - inventory update
            - else:
                - narrate "<red>You haven't rented that room!"

        on player clicks roomkey3exit in inkeeper_inventory_rooms:
            - if <server.has_flag[room3rentedserver]>:
                - flag server room3rentedserver:!
            - else if <player.has_flag[room3rentedplayer]>:
                - flag player room3rentedplayer:!
                - inventory remove o:i@roomkey3 d:<player.inventory>
                - inventory close
                - inventory update
            - else:
                - narrate "<red>You haven't rented that room!"

        on player clicks roomkey4exit in inkeeper_inventory_rooms:
            - if <server.has_flag[room4rentedserver]>:
                - flag server room4rentedserver:!
            - else if <player.has_flag[room4rentedplayer]>:
                - flag player room4rentedplayer:!
                - inventory remove o:i@roomkey4 d:<player.inventory>
                - inventory close
                - inventory update
            - else:
                - narrate "<red>You haven't rented that room!"

        on player clicks zombie_mead in innkeeper_inventory_menu:
            - if <player.money> >= 10:
                - give i@zombie_mead
                - take money quantity:10
            - else:
                - inventory close
                - narrate "<red>You don't have enough money."

        on player clicks mug_cider in innkeeper_inventory_menu:
            - if <player.money> >= 15:
                - give i@mug_cider
                - take money quantity:15
            - else:
                - inventory close
                - narrate "<red>You don't have enough money."

        on player clicks squirrel_milk in innkeeper_inventory_menu:
            - if <player.money> >= 15:
                - give i@squirrel_milk
                - take money quantity:15
            - else:
                - inventory close
                - narrate "<red>You don't have enough money."

        on player clicks squid_donut in innkeeper_inventory_menu:
            - if <player.money> >= 20:
                - give i@squid_donut
                - take money quantity:20
            - else:
                - inventory close
                - narrate "<red>You don't have enough money."

        on player clicks pigman_sandwich in innkeeper_inventory_menu:
            - if <player.money> >= 20:
                - give i@pigman_sandwich
                - take money quantity:20
            - else:
                - inventory close
                - narrate "<red>You don't have enough money."

#TO RESET THE COOLDOWNS ON SERVER START AND TO KEEP THE DOORS LOCKED#
server_flags_for_rooms:
    type: world
    events:
        on server start:
            - inventory remove o:i@roomkey1 d:<p@raffle.inventory>
            - inventory remove o:i@roomkey2 d:<p@raffle.inventory>
            - inventory remove o:i@roomkey3 d:<p@raffle.inventory>
            - inventory remove o:i@roomkey4 d:<p@raffle.inventory>
            - inventory remove o:i@roomkey1 d:<p@Drahma22.inventory>
            - inventory remove o:i@roomkey2 d:<p@Drahma22.inventory>
            - inventory remove o:i@roomkey3 d:<p@Drahma22.inventory>
            - inventory remove o:i@roomkey4 d:<p@Drahma22.inventory>
            - inventory remove o:i@roomkey1 d:<p@-Yowza-.inventory>
            - inventory remove o:i@roomkey2 d:<p@-Yowza-.inventory>
            - inventory remove o:i@roomkey3 d:<p@-Yowza-.inventory>
            - inventory remove o:i@roomkey4 d:<p@-Yowza-.inventory>
            - flag p@raffle room1rentedplayer:!
            - flag p@raffle room2rentedplayer:!
            - flag p@raffle room3rentedplayer:!
            - flag p@raffle room4rentedplayer:!
            - flag p@Drahma22 room1rentedplayer:!
            - flag p@Drahma22 room2rentedplayer:!
            - flag p@Drahma22 room3rentedplayer:!
            - flag p@Drahma22 room4rentedplayer:!
            - flag p@-Yowza- room1rentedplayer:!
            - flag p@-Yowza- room2rentedplayer:!
            - flag p@-Yowza- room3rentedplayer:!
            - flag p@-Yowza- room4rentedplayer:!
            - flag server room1rentedserver:!
            - flag server room2rentedserver:!
            - flag server room3rentedserver:!
            - flag server room4rentedserver:!

        on player right clicks spruce_door in room1:
            - if <player.item_in_hand.scriptname> == roomkey1:
                - playsound <player.location> BLOCK_WOODEN_DOOR_OPEN pitch:10
            - else:
                - narrate "<red>You need to rent this room first!"
                - determine cancelled
        on player right clicks spruce_door in room2:
            - if <player.item_in_hand.scriptname> == roomkey2:
                - playsound <player.location> BLOCK_WOODEN_DOOR_OPEN pitch:10
            - else:
                - narrate "<red>You need to rent this room first!"
                - determine cancelled
        on player right clicks spruce_door in room3:
            - if <player.item_in_hand.scriptname> == roomkey3:
                - playsound <player.location> BLOCK_WOODEN_DOOR_OPEN pitch:10
            - else:
                - narrate "<red>You need to rent this room first!"
                - determine cancelled
        on player right clicks spruce_door in room4:
            - if <player.item_in_hand.scriptname> == roomkey4:
                - playsound <player.location> BLOCK_WOODEN_DOOR_OPEN pitch:10
            - else:
                - narrate "<red>You need to rent this room first!"
                - determine cancelled