Date: 2019/04/17 15:01:23 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
##Section 1: Saves bed locations in a list called beds
#Use the function View_Bed_List to get a list of locations for the beds. Also shows
#the list size.
##Section 2: Manages the NPC bed time behavior.
#To change an NPC's bed time, select the NPC.
#/npc select name
#Then set the bedtime and wake time variables.
#Time works between 0-24000
#Time: https://www.digminecraft.com/game_commands/time_set_day.php
#/ex flag <player.selected_npc> wakeTime:0
#/ex flag <player.selected_npc> bedTime:12000
#default values are 0 for wakeTime and 12000 for bedtime.
###########################
## Section 1 : Bed List
###########################
#Tag the bed's location when placed.
#Remove the bed's location when destroyed.
Red_Bed_Tag:
type: world
events:
on player places red_bed:
- narrate "Red Bed placed!"
- flag server beds:->:<context.location>
on player breaks red_bed:
- narrate "Red Bed destroyed!"
- flag server beds:<-:<context.location>
#Manage the List of Beds
View_Bed_List:
type: task
script:
- foreach <server.flag[beds]>:
- narrate "<def[loop_index]> -- <def[value]>"
############################
## Section 2: NPC Manager
############################
#Check for Bed Time and call Go_to_Bed if it's bed time.
Call_Task:
type: world
events:
on system time secondly every:5:
- foreach <server.list_npcs>:
- flag <def[value]> asleep:false
- if !<def[value].has_flag[bedTime]>:
- flag <def[value]> bedTime:12000
- if !<def[value].has_flag[wakeTime]>:
- flag <def[value]> wakeTime:0
- define bedTime <def[value].flag[bedTime]>
- define wakeTime <def[value].flag[wakeTime]>
- inject Check_Task
Check_Task:
type: task
script:
- if <def[bedTime]> > <def[wakeTime]>:
- chat "<def[value].flag[bedTime]> | <def[value].flag[wakeTime]>" "targets:<server.match_player[Clossius]>" "talkers:<def[value]>"
- chat "bedTime is greater than wake time" "targets:<server.match_player[Clossius]>" "talkers:<def[value]>"
- if <w@world.time> < <def[wakeTime]> || <w@world.time> > <def[bedTime]>:
- flag <def[value]> asleep:true
- inject Go_to_Bed
- else:
- flag <def[value]> asleep:false
- else if <def[bedTime]> < <def[wakeTime]>:
- chat "<def[value].flag[bedTime]> | <def[value].flag[wakeTime]>" "targets:<server.match_player[Clossius]>" "talkers:<def[value]>"
- chat "bedTime is less than wake time." "targets:<server.match_player[Clossius]>" "talkers:<def[value]>"
- if <w@world.time> < <def[wakeTime]> && <w@world.time> > <def[bedTime]>:
- flag <def[value]> asleep:true
- inject Go_to_Bed
- else:
- flag <def[value]> asleep:false
Go_to_Bed:
type: task
script:
- chat "<w@world.time> | <def[value].flag[asleep]>" "targets:<server.match_player[Clossius]>" "talkers:<def[value]>"