Date: 2015/01/01 23:45:56 UTC-08: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
Sitting:
Type: Assignment
Actions:
On Assignment:
- Trigger Name:Chat State:true
Interact Scripts:
- 100 Sitting Listener
Sitting Listener:
Type: Interact
Steps:
1:
Chat Trigger:
1:
Trigger: /sit/
Script:
- flag player sitter:<npc>
- flag player chatter
- chat "Ok. Where do you want me to sit?"
ChooseBlockListener:
Type: World
Events:
on server start:
- run timedLoop
On player Clicks Block:
- if <player.has_flag[chatter]> {
- if <c.location.material.contains[stairs]> {
- flag <player.flag[sitter]> sitloc:<context.location.sub[-.5,.5,-.5]>
- sit <context.location.sub[-.5,.5,-.5]> npc:<player.flag[sitter]>
- flag <player.flag[sitter]> sitter
- flag chatter:!
} else narrate "<red>This is not a seat."
}
On npc command:
- define arg_size <context.args.size>
- if %arg_size% == 3 {
- if <context.args.get[2]> == "--assume" {
- flag <player.selected_npc> posed:<c.args.get[3]>
- narrate "You just set an NPC's pose!"
}
}
timedLoop:
type: task
script:
- foreach <server.get_npcs_flagged[sitter]> {
- sit <def[value].flag[sitloc]> npc:<def[value]>
}
- foreach <server.get_npcs_flagged[posed]> {
- pose assume id:<def[value].flag[posed]> npc:<def[value]>
}
- wait 50s
- inject s@timedLoop