Date: 2016/05/01 14:34:40 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
jobname:
#jobname has to be a unique name, it cannot be the same as any other denizen script at all
type: assignment
# type assigment to allow you to assign it to an npc, use world if this is for a non npc objective such as obelisks, exploration points, or obstacles
debug: false
# to prevent this script from showing up in the debug when we are debugging
questinfo:
type: job
# valid types are job, obelisk, exploration point and obstacle
region: frontierplains
# the config name of the region this job is placed in
loc1: l@-3659,81,-3419,zolaria
loc2: l@-3655,88,-3422,zolaria
# in the case of an obelisk, exploration point, and an obstacle, 2 locations have to be provided to define the region the player has to enter to complete it
jobtype: escort
# in the case that the type is a job, a jobtype has to be provided, valid types are escort, survival, and collect
repeatable: true
# allow the quest to be repeated, leave empty to default to non repeatable (repeatable should never really be used outside of type: job)
delay: 1d
# the cooldown on the job, in the case that it is repeatable
global: true
# specify whether or not the job is global, if the job is global, that means that it triggers a global activity, in which any bystander can contribute to to make
#the job more community based and immersive. anyone can contribute, even those who have the job already completed and are still on cooldown. however, only those
#who met the requirements to start the job themself (no cooldown, etc) will also meet the requirements to get the reward.
#This only works with survival and escort, and defaults to true on those jobs (in fact there is no support for what happens when you specify false right now)
objectives:
## for collect type jobs
# provide a list of items and a range of amounts for the 'objective handler' to construct a random objective from
items_to_deliver:
# must provide correct denizen item name
i@coal: 5-10
i@oak_logs: 3-12
i@oak_planks: 5-10
## for survival type jobs
# provide a list of waves, the 'survival handler' will cycle through these alphanumerically.
waves:
# amount of waves are unlimited
wave 1:
# provide a list of mobs to pick from, and an amount range for how many of those mobs to use
amount: 1-2
mobs:
- mm@unf_warrior_minion
wave 2:
amount: 2-4
mobs:
## for escort type jobs
# in case you want a random NPC to be escorted, you can provide a list of NPCS to pick from, in the form of npc_name|skin
escorted_npcs:
- Injured_Father|kainzo
- Injured_Father|TheblackCoyote
# provide a list of pathways to pick from, so that you can give a randomly chosen path each time, a path is in the form of l@location1|location2|location3
# the npc will pathfind to each of these locations one by one, pausing at every location to spawn some mobs to fight
pathways:
- l@-3661,82,-3398,zolaria|l@-3667,82,-3398,zolaria|l@-3672,82,-3398,zolaria|l@-3677,82,-3398,zolaria
# mobs to pick from and an amount for how many mobs to use, this gets randomly picked at every point
mobs amount:2-6:
- mm@unf_warrior_minion
# random messages for various utility handlers to pick from
messages:
# when a job is already completed and is not repeatable, the 'npc_interaction_handler' will grab a message from this list
already_completed:
- I have nothing for you to do anymore!
- Thanks for helping me last time.
# when a job is repeatable, but still on cooldown to the player, the 'npc_interaction_handler' will grab a message from this list
on_cooldown:
- I have nothing for you right now, come back later!
- Please come back again soon!
# when a job is globally active and a player talsk to the npc who gives the job
on_globally_active:
- My father is already on the way to the wizard! Please go find him and help him get there!
- What are you doing here! My father is out there, go help him!
# when the player is in combat
in_combat:
- There are more mobs! Kill them!
# when in an escort job, the path is clear and the npc starts moving
path_cleared:
- Looks like the path is clear, lets keep moving!
#rewards for the player, whenever the reward utility handler is ran
rewards:
# all forms of rewards take a type: argument, in which you can specify all, or random. ( defaults to all) in the case of "type:random" you also are expected to provide an "amount:#" argument to indicate how many of the provided rewards are to be chosen
# permission based rewards
permissions:
- test.permission.one
- test.permission.two
# item based rewards (demonstrating type: random)
items type:random amount:2:
- i@iron_sword
- i@iron_spade
- i@iron_hoe
- i@iron_boots
# item based rewards
items:
- i@iron_axe
- i@iron_helmet
# command based rewards, these are ran as the console, with %player% to be replaced with the player's username
commands type:random amount:1:
- ex narrate "Test test test %player%" player:%player%
- ex narrate "Test test test 2" player:%player%
# core denizen script functioning
actions:
# on click action, means when the npc is clicked
on click:
# when the NPC manages a job, always inject the npc_interaction_start. This checks practically everything you'd want to check on a job such as:
# if the player can repeat the quest, if it's on cooldown, if the player is still in conversation with another npc, if the job is global and already in action
#etc etc etc
- inject npc_interaction_start
# in the case you provided an objectives: argument above, this objective handler will pick a random objective, and store it with the player
# this is only to be used on collect type jobs right now. escorts and survival jobs have their own unique handler which already utilizes the objective handler internally
- inject objective_handler
# survival handler: once you're ready to start your survival job, and you want to use the generic utility, inject this, sit back, and done
- inject survival_handler
# same as above but for escort jobs
- inject escort_handler
# npc interaction end, just like npc interaction start but indicates the end, removes npc interaction cooldown and indicates the end of the conversation, definitely don't forget this
- inject npc_interaction_end