Paste #23682: Untitled Paste

Date: 2015/12/09 15:28:45 UTC-08:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


#Priest simple quest (maybe)
#I created this script to practice what I had learned by watching the tutorial vidoes at
#http://mcmonkey.org/denizen/vids 
#it really is a short script if you trim out the narrates
#The priest in this script will give the quest
#The "dead npc" will give the completion flag
#this NPC on completion will give a reward
#Last edit - 8 Dec 2015
#Rev 0.2e
#Tobias_Knight
#
# First Erisian Priest
#chat format
pchat:
  type: format
  format: "<&b><npc.name><&f> <&co> <&a><text>"
#
#Now the assignment scripts
ErisianPriestQuest:
  type: assignment
  interact scripts:
  - 10 HailEris
  actions:
    on assignment:
#Here we go ahead and turn on the triggers and set the range of the proximity trigger.
#but wait we turned OFF the click triger!?!?!? Why? Well do you want random people just coming
#up and fondling you? Well neither does the priest, talk to them a bit even offer to help then try to click them 
    - trigger name:click state:false
    - trigger name:chat state:true
    - trigger name:proximity state:true radius:8
#Now we equip our priest with some gear.
    - ^equip <npc> head:i@air chest:i@ErisianTunic legs:i@ErisianLeggings boots:i@ErisianBoots
#The Dead NPC , no his name does not have to be Jim, but would need to be changed in some of the narration
#this is pretty basic
DeadJim:
  type: assignment
  interact scripts:
  - 10 LootJim
  actions:
    on assignment:
    - ^equip <npc> head:i@air chest:i@ErisianTunic legs:i@ErisianLeggings boots:i@ErisianBoots
    - trigger name:click state:true
    - animate <npc> animation:sleep
#
#Item scripts
ErisianTunic:
  type: item
  material: leather_chestplate
  color: PURPLE
  display name: Robes of an Erisian Priest
  lore:
  - The Purple Tunic of an Erisian Priest
  enchantments:
  - PROTECTION_PROJECTILE
ErisianLeggings:
  type: item
  material: leather_leggings
  color: PURPLE
  display name: Leggings of an Erisian
  lore:
  - The Purple Leggings of an Erisian Priest
ErisianBoots:
  type: item
  material: leather_boots
  color: PURPLE
  display name: Boots of an Erisian
  lore:
  - The Purple Boots of an Erisian Priest
  enchantments:
  - PROTECTION_FALL
PrincipiaDiscordia:
  type: book
  title: Principia Discordia
  author: Malaclypse the Younger
  text:
  - Hail Eris!<n>/All/ Hail Kallisti!<n>A proper greeting,<n>Don't forget!<p> In the begining there was chaos,<n>and the Gods strove<n>to impose order.
JimsStaff:
  type: item
  material: i@stick
  display name: Erisian Priests Staff
  lore:
  - An Erisian Priests Staff
  - Found on Brother Jim
  enchantments:
  - KNOCKBACK:2
#
#Interaction scripts. lets use all the triggers (except damage)just for fun, and a chat trigger that is 
#hidden but hinted at in the PrincipiaDiscordia item 
#this will be important for future tie in quests but will trigger it here also with a reward)
HailEris:
  type: interact
  steps:
    1:
      proximity trigger:
        entry:
          script:
#setting some flags here so they dont throw and error being NULL
          - lookclose state:true
          - animate <npc> animation:ARM_SWING
          - chat format:pchat "Hail Eris! My friend. I am <npc.name> a travelling priest"
          - chat format:pchat "of the Erisian Order. I have /news/ of the world if you are interested."
          - chat format:pchat "I need your /help/ if you are interested in a quest."
          - zap 2
        exit:
          script:
          - chat format:pchat "Farewell friend!"
          - lookclose state:false

    2:
      chat trigger:
        1:
          trigger: /News/ of the world
          script:
          - narrate "Things have gotten bad here in the world."
          - narrate "the Illuminati is sending out monks and we do"
          - narrate "not know the purpose of thier missions. If"
          - narrate "learn anything be sure and let one of the"
          - narrate "priests of the Erisian Order know."
        2:
          trigger: /All/ Hail Kallisti!
          script:
          - narrate "Hail Eris!! Another Initiate of the Order!"
          - flag <player> Intiate
          - if <player.has_flag[Erisgift]> {
            - random {
              - narrate "I have no more gifts for you"
              - narrate "I am sorry brother nothing to share"
              - narrate "Quit bugging me for free stuff"
              }
            }
            else {
             - give golden_apple quantity:1
             - flag <player> Erisgift
            }
          - zap step:1 script:HailEris player:<player>
        3:
          trigger: "/Help/ you if I can"
          script:
          - narrate "Great! I appreciate that <player.name>!"
          - narrate "Just give me a click and we will begin"
          - trigger name:click state:true
          - zap step:3 script:s@HailEris player:<player>
#this step explains the quest and 
    3:
      click trigger:
        script:
        - if <player.has_flag[StaffQuestBegun]> && <player.has_flag[StaffQuestItem]> {
          - zap step:1 script:QuestComplete player:<player>
          }
          else {
           - narrate "I have recently discovered that one of the Order"
           - narrate "had been taken and killed. Among his belongings was a staff."
           - narrate "Bring it back and click me and I will reward you well."
           - narrate "What say you? /Yes/ or /No/"
           - zap step:4 script:s@HailEris player:<player>
          }
##       
    4:
      chat trigger:
        1:
          trigger: /Yes/ I accept this quest
          script:
#here we need to set some quest flags on the player to check later when the item is found and brought back.
#something like if has <flag[StaffQuestBegun].is[==].to[true]> and <flag[StaffQuestItem].is[==].to[true]> then reward
#our dead NPC will "give" them the item (and toggle the flag)when he is clicked on. maybe a nasty suprise.. can i spawn some mythic mobs?!?!?. 
# a better idea was given to me from FOrtifier in the IRC channel. Use the player.has_flag to test 
          - flag <player> StaffQuestBegun
          - narrate "I am glad for your help <player.name>!"
          - narrate "Not far from here to the east are the remains"
          - narrate "of Brother Jim. He fought hard against his enemies."
          - narrate "And they know not the power of his Staff"
          - narrate "You will find them in a cave marked with purple stained glass near the entrance"
          - narrate "I am told he is not far from the entrance"
        2:
          trigger: /No/ it sounds too dangerous for me
          script:
          - narrate "<player.name> I am sorry to hear that."
          - narrate "If you change your mind please let me know."
          - zap step:1 script:s@HailEris player:<player>
QuestComplete:
  type: task
  script:
  - take i@JimsStaff
  - narrate "Great your have brought brother Jims staff back!"
  - narrate "It was the first staff he created, imbuing it with"
  - narrate "his inner spirit and power. Let me give you"
  - narrate "a small token of my appreciation"
  - define giftcash <util.random.int[71].to[100]>
  - give money <def[giftcash]>
  - wait 1
  - narrate "You may also keep the armor brother Jim wore,"
  - narrate "he no longer needs it."
  - flag <player> StaffQuestComplete
#
#Dead Jims script
#now for the short and sweet interaction?
LootJim:
  type: interact
  steps:
    1:
      click trigger:
        script:
#First we check to see if the player has the complete quest flag from the other NPC if so zap them out. next we
#check to see if they have the bugn flag so we give them the item  , if not we give them the flag and tell the story
#in reverse where they need to take the staff to the first NPC also set the flag here.      
        - if <player.has_flag[StaffQuestComplete] {
          - narrate "The dead body of Brother Jim there is nothing more to find"
          - zap step:2 script:s@LootJim player:<player>
          }
        - if <player.has_flag[StaffQuestBegun]> {
          - flag <player> StaffQuestItem
          - give <player> i@JimsStaff
          - give <player> i@ErisianBoots
          - give <player> i@ErisianLeggings
          - give <player> i@ErisianTunic
        }
          else {
            - narrate "You have set my soul free! Thank you!"
            - narrate "You must take my staff to a priest"
            - narrate "of the Order of Eris. The staff must not"
            - narrate "fall into the hands of the Illuminati"
            - narrate "Hail Eris!"
            - flag <player> StaffQuestBegun
            - flag <player> StaffQuestItem
            - give <player> i@JimsStaff
            - give <player> i@ErisianBoots
            - give <player> i@ErisianLeggings
            - give <player> i@ErisianTunic
          }
        - execute as_op "mm mobs spawn IlluminatiMonk 2"