Date: 2014/08/10 17:26: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
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
BodyGuardSpawnAssignmentnormal:
type: assignment
debug: true
actions:
on damaged:
- if <context.damager> == <player> {
- if <context.damager.flag[AttacksBodyGuard]> == true {
- run s@Bodyguardattackplayerscript as:<context.damager>
}
}
else if <context.damager> == <player> {
- narrate "Hey! stop that or I<&sq>ll attack you!" "target:<context.damager>"
- flag <context.damager> AttacksBodyGuard:true duration:10
}
on enter proximity:
- if <player.name> == <npc.owner.name> {
- walk <npc.location>
}
on exit proximity:
- if <player> == <npc.owner> {
- if <npc.flag[Guarding]> == false {
- narrate ""
}
else {
- execute as_server "npc sel <player.flag[BodyGuard].replace[n@]>"
- ^execute as_server "sentry guard <player.name>"
}
}
on assignment:
- execute as_server "npc sel <player.flag[BodyGuard].replace[n@]>"
- execute as_server "sentry follow 5"
- trigger name:proximity state:true radius:5
on click:
- ^execute as_server "npc sel <player.flag[BodyGuard].replace[n@]>"
- execute as_server "sentry follow 5"
- if <npc.owner> != <player> {
- random {
- chat "<yellow>I<&sq>m sorry <yellow><player.name><green> but I<&sq>m already guading <yellow><npc.owner.name>."
- chat "<yellow>O, hey! <yellow><player.name><green> I<&sq>m with <yellow><npc.owner.name> on a journey so I<&sq>m afraid I cant help you."
- chat "<yellow>Greetings <yellow><player.name><green> Do you know <yellow><npc.owner.name>? He<&sq>s a verry nice person."
}
}
else if "<npc.flag[Guarding]>" == "true" {
- ^execute as_server "npc sel <player.flag[BodyGuard].replace[n@]>"
- ^execute as_server "sentry guard"
- ^flag <player.flag[BodyGuard]> "Guarding:false"
- random {
- ^chat "<yellow>Oh all right <player.name>, I<&sq>ll wait back here for you."
- ^chat "<yellow>Don<&sq>t worry about me, I<&sq>ll stay back here. Please don<&sq>t forget about me."
- ^chat "<yellow>I<&sq>ll wait around for you. but please don<&sq>t forget about me."
- ^chat "<yellow>You want me to hang back? Ok, no problem."
- ^chat "<yellow>Ok, I<&sq>ll guard this spot."
- ^chat "<yellow>I<&sq>ll stand here and wait until you come get me again."
}
}
else {
- ^execute as_server "npc sel <player.flag[BodyGuard].replace[n@]>"
- ^execute as_server "sentry guard <player.name>"
- ^flag <player.flag[BodyGuard]> "Guarding:true"
- random {
- ^chat "<yellow>Ok, I<&sq>m following you."
- ^chat "<yellow>Great <white><player.name><yellow>, I<&sq>m right behind you."
- ^chat "<yellow>You lead the way boss."
- ^chat "<yellow>Watching your back. Let<&sq>s go."
- ^chat "<yellow>Great, let<&sq>s go for a walk."
- ^chat "<yellow>Hope we're going to crush some zombie skulls. Let<&sq>s move."
}
}
BodyguardStartScript:
type: world
debug: true
events:
on entity enters vehicle:
- if <context.entity.is_player> {
- if <context.vehicle> == <player.flag[BodyGuardMount]> {
- determine CANCELLED
}
}
on player joins:
- if <player.flag[FinishedSpawnTut]> == true {
- run s@BodyguardPlayerJoinScript as:<player.name> delay:2s
}
on finishedspawntut command:
- if <player.is_op> {
- if <player.flag[FinishedSpawnTut]> == null {
- flag FinishedSpawnTut:true
- run s@BodyguardPlayerJoinScript as:<player.name> delay:2s
}
}
- determine FULFILLED
BodyguardPlayerJoinScript:
type: task
debug: true
script:
- if <player.flag[BodyGuardSpawned]> == null {
- flag BodyGuardSpawned:true
- if <player.has_permission[denizen.archdukeguard]> {
- run s@BodyguardSpawnArchduke as:<player.name>
- run s@BodygguardCoversationArchdukeScript as:<player.name>
}
else if <player.has_permission[denizen.dawnguardguard]> {
- run s@BodyguardSpawnDawnGuard as:<player.name>
- run s@BodygguardCoversationDawnGuardScript as:<player.name>
}
else if <player.has_permission[denizen.legendguard]> {
- run s@BodyguardSpawnLegend as:<player.name>
- run s@BodygguardCoversationLegendScript as:<player.name>
}
else if <player.has_permission[denizen.moderatorguard]> {
- run s@BodyguardSpawnModerator as:<player.name>
}
else {
- run s@BodyguardSpawn as:<player.name>
- run s@BodyGuardConversationScript as:<player.name>
}
}
#- run s@BodyGuardConversationScript
Bodyguardflagfalse:
type: world
debug: true
events:
on bodyguard command:
- if <player.in_group[Leader]> {
- flag BodyGuardSpawned:null
- narrate "Bodyguard Flagg set to Null"
}
- determine FULFILLED
on BCON command:
- if <player.flag[BodyGuardConversation]> == null {
- flag BodyGuardConversation:true
- narrate " "
- narrate "<red>Bodyguard Conversations<&co> <green><bold> OFF"
- narrate " "
}
else if <player.flag[BodyGuardConversation]> == true {
- flag BodyGuardConversation:null
- narrate " "
- narrate "<red>Bodyguard Conversations<&co> <green><bold> ON"
- narrate " "
}
- determine FULFILLED
# speed: 0
# - ^execute as_server "npc create BodyGuard --at '<player.location.add[<1,0,0>]>.formatted.citizens>'"
BodyguardSpawn:
type: task
debug: true
script:
- create player BodyGuard <player.location> save:BodyGuard
- flag player Bodyguard:<entry[BodyGuard].created_npc>
- ^engage
- ^execute as_server "npc select <player.flag[BodyGuard].replace[n@]>"
- ^execute as_server "trait sentry"
- ^execute as_server "sentry strength 5"
- ^execute as_server "sentry armor 5"
- ^execute as_server "sentry equip DIAMOND_SWORD"
- ^execute as_server "sentry equip IRON_HELMET"
- ^execute as_server "sentry equip IRON_CHESTPLATE"
- ^execute as_server "sentry equip IRON_LEGGINGS"
- ^execute as_server "sentry equip IRON_BOOTS"
- ^execute as_server "sentry ignore add entity:player"
- ^execute as_server "sentry healrate 10"
- ^execute as_server "sentry killdrops false"
- ^execute as_server "sentry health 20"
- ^execute as_server "sentry drops false"
- ^execute as_server "sentry invincible false"
- ^execute as_server "sentry respawn 60"
- ^execute as_server "sentry speed 1.2"
- ^execute as_server "sentry follow 5"
- ^execute as_server "npc owner <player.name>"
- ^execute as_server "npc skin knight8"
- ^execute as_server 'npc assign --set "BodyGuardSpawnAssignmentnormal"'
- ^execute as_server "sentry guard <player.name>"
- follow lead:5 target:<player.flag[BodyGuard]>
- ^disengage