Paste #33245: Untitled Paste

Date: 2016/05/01 14:34:40 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


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