Date: 2020/04/20 06:49:47 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
hans:
type: assignment
actions:
on assignment:
- trigger name:click state:true
on click:
- if <player.world.time.period> == day:
- narrate "<red>Hans<white>: Good day, how can I help you?"
- stop
- if <player.world.time.period> == night || dusk:
- narrate "<red>Hans<white>: Good evening, how can I help you?"
- stop
- if <player.world.time.period> == dawn:
- narrate "<red>Hans<white>: Good morning, how can I help you?"
- stop
interact scripts:
- hans_interact
hans_interact:
type: interact
steps:
1:
chat trigger:
1:
trigger: "Hi, I've lost my Slayer /Gem/ may I have another?"
script:
- wait 2s
- if <player.has_flag[gemcooldown]>:
- narrate "<red>Hans<white>: I just gave out the last one, come back to me later when I have more."
- stop
- narrate "<red>Hans<white>: Sure, here you go."
- give i@slayer_gem
- flag player gemcooldown
- run gemcooldown
- stop
2:
trigger: "Could I have a /new/ assignment?"
script:
- wait 2s
- if <player.has_flag[hasAssignment]>:
- narrate "<red>Hans<white>: It appears you already have a task."
- stop
- narrate "<red>Hans<white>: Yes you may."
- flag player hasAssignment
- run assigntask
- stop
slayerlistener:
type: world
events:
on player kills entity:
#zombie
- if <context.entity.name> == zombie && <player.has_flag[hasAssignment]> && <player.has_flag[zombie]>:
- if <player.has_flag[zombie]> && <player.flag[zombie]> >= 1:
- flag player zombie:--
- narrate "<yellow>[<player.flag[zombie]>]"
- if <player.has_flag[zombie]> && <player.flag[zombie]> == 0:
- narrate "<green>You have completed your slayer task. Return to a slayer master for a new task."
- flag player slayerpoints:+:10
- run clearassignment
- stop
- stop
#skeleton
- if <context.entity.name> == skeleton && <player.has_flag[hasAssignment]> && <player.has_flag[skeleton]>:
- if <player.has_flag[skeleton]> && <player.flag[skeleton]> >= 1:
- flag player skeleton:--
- narrate "<yellow>[<player.flag[skeleton]>]"
- if <player.has_flag[skeleton]> && <player.flag[skeleton]> == 0:
- narrate "<green>You have completed your slayer task. Return to a slayer master for a new task."
- flag player slayerpoints:+:10
- run clearassignment
- stop
- stop
#creeper
- if <context.entity.name> == creeper && <player.has_flag[hasAssignment]> && <player.has_flag[creeper]>:
- if <player.has_flag[creeper]> && <player.flag[creeper]> >= 1:
- flag player creeper:--
- narrate "<yellow>[<player.flag[creeper]>]"
- if <player.has_flag[creeper]> && <player.flag[creeper]> == 0:
- narrate "<green>You have completed your slayer task. Return to a slayer master for a new task."
- flag player slayerpoints:+:10
- run clearassignment
- stop
- stop
gemlistener:
type: world
events:
on player right clicks material:
- if !<context.item.has_display> || !<context.item.has_lore>:
- stop
- if <context.item.display> == "slayer gem" && <context.item.lore.contains_text[slayer]>:
- run usegem
- stop
- stop
usegem:
type: task
script:
- if <player.has_flag[zombie]>:
- actionbar "<&5>You have <&f><player.flag[zombie]> <&5>zombies left."
- stop
- if <player.has_flag[skeleton]>:
- actionbar "<&5>You have <&f><player.flag[skeleton]> <&5>skeletons left."
- stop
- if <player.has_flag[creeper]>:
- actionbar "<&5>You have <&f><player.flag[creeper]> <&5>creepers left."
- stop
- actionbar "<&5>You do not have a current Slayer task!"
- stop
gemcooldown:
type: task
script:
- wait 5m
- flag player gemcooldown:!
assigntask:
type: task
script:
- define num <util.random.int[1].to[3]>
- define count <util.random.int[1].to[5]>
- if <[num]> == 1:
- flag player zombie:<[count]>
- narrate "<red>You have been assigned <white><player.flag[zombie]> <red>Zombies."
- stop
- if <[num]> == 2:
- flag player skeleton:<[count]>
- narrate "<red>You have been assigned <white><player.flag[skeleton]> <red>Skeletons."
- stop
- if <[num]> == 3:
- flag player creeper:<[count]>
- narrate "<red>You have been assigned <white><player.flag[creeper]> <red>Creepers."
- stop
clearassignment:
type: task
script:
- flag player zombie:!
- flag player creeper:!
- flag player skeleton:!
- flag player hasassignment:!
- wait 2s
- narrate "<&5>You have <white><player.flag[slayerpoints]> <&5>Slayer points."