Paste #16062: DailyQuest

Date: 2015/05/31 08:54:04 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


npcchat:
  type: format
  format: "red><npc.name>: <white><text>"
GuildMaster:
    type: assignment
actions:
   on assignment:
    -announce "The daily questing is ready!"
   interact scripts:
    - 1 JoinGuild
    - 2 StartQuest
    - 3 RandomizeQuest
    - 4 Zombies
    - 5 Skeletons
    - 6 Swords
    - 7 GetReward
JoinGuild:
    type: interact
    steps:
     1:
        click trigger:
           1:
            script:
            - narrate format:npcchat "Welcome to the Guardian's Guild!"
            - wait 0.5
            - narrate format:npcchat "We live to serve the city of C.O.R.E!"
            - wait 0.5
            - narrate format:npcchat "Do you wish to join the Guardian's Guild?"
            - narrate "You can say Yes or No."
            - wait 0.1
            - narrate "What will you do?"
        chat trigger:
           1:
            trigger: /Yes/, I'll join the guild.
            script:
                - narrate format:npcchat "Great!, I am the Guildmaster"
                - wait 0.5
                - narrate format:npcchat "I give the members assignments to do."  
                - wait 0.5
                - narrate format:npcchat "Come talk to me if you want an assignment."
                - flag server GuildMembers:->:<player>
           2:
            trigger: /No/, i'm not interested."
            script:
                - narrate format:npcchat "That's fine, come back if you're interested."

StartQuest:
    type: interact
    steps:
     1:
        click trigger:
            script:
                - random {
                - narrate format:npcchat "Hello!, would you like an assignment?"
                - narrate format:npcchat "Oh you're back, would you like an assignment?"
                - narrate format:npcchat "Good to see you, would you like an assignment?"
                }
                - narrate "You can say Yes or No."
                - wait 0.2
                - narrate "What will you do?"
        chat trigger:
            1:
                trigger: /Yes/, I'd like to do an assignment.
                scripts:
                - run RandomizeQuest
                - flag player DailyCooldown duration:24h
            2:
                trigger: /No/, I am too busy
                scripts:
                - narrate format:npcchat "Oh I see, please return when you're free."

RandomizeQuest:
    type: task
    script:
        - random {
        - script:Zombies
        - script:Skeletons
        - script:Swords
        }        

Zombies:
    type: task
    script:
    - narrate format:npcchat "There has been a zombie outbreak outside of the city!"
    - wait 0.5
    - narrate format:npcchat "You must reduce the destruction of this outbreak!"
    - narrate format:npcchat "This is an assignment to kill 10 zombies. Return to me when you're done."
    - listen kill 'id:Kill10Zombies' 'script:ZombiesDead' 'type:entity' 'target:zombie' 'qty:10'

Skeletons:
    type: task
    script:
    - narrate format:npcchat "The dead are rising!"
    - wait 0.5
    - narrate format:npcchat "You must send them back to their graves!"
    - narrate format:npcchat "This is an assignment to kill 10 skeletons. Return to me when you're done."
    - listen kill 'id:Kill10Skeletons' 'script:SkeletonsDead' 'type:entity' 'target:skeleton' 'qty:10'

Swords:
    type: task
    script:
    - narrate format:npcchat "We're running out of weapons!"
    - narrate format:npcchat "We need more! I know, You could make them!"
    - narrate format:npcchat "This is an assignment to craft 10 iron swords. Return to me when you're done."
    - listen craft 'id:Craft10Swords' 'script:SwordsCrafted' 'type:item' 'target:267 'qty:10'

GetReward:
  type: interact
    requirements:
    mode: any
    - script finished 'StartQuest'
    - script finished 'Zombies'
    - Flagged 'ZombiesKilled:10'
    - script finished 'Skeletons'    
    - Flagged 'SkeletonsKilled:10'
    - script finished 'Swords'
    - Flagged 'SwordsCreated:10'
  steps:
    1:
       click trigger:
       scripts:
       - random {
       - narrate "Hello! I heard of your determination. Here, for your hard work..."
       - narrate "Ah! A friend told me of your good work. I believe I owe you a reward."
       - narrate "Great! You've completed the assignment, Here is your reward."
       }
       - random {
       - give 'item:264' 'qty:1'
       - give 'item:266' 'qty:16'
       - give 'item:265' 'qty:32'
       - give 'item:331' 'qty:100'
       - give 'item:89' 'qty:10'
       - give 'item:263' 'qty:32'
       - give 'item:320' 'qty:64'
       - give 'item:368' 'qty:8'
       - give 'item:388' 'qty:18'
       - give 'item:384' 'qty:32'
       }
       - give money qty:2500
       - narrate "You have recieved <gold>$2500<white> and a special reward!"

ZombiesDead:
   type: task
   script:
   - narrate "You have killed 10 Zombies! Return to the Guildmaster to claim your reward!.
   - flag ZombiesKilled:10

SkeletonsDead:
   type: task
   script:
   - narrate "You have killed 10 Zombies! Return to the Guildmaster to claim your reward!."
   - flag SkeletonsKilled:10

SwordsCrafted:
   type: task
   script:
   - narrate "You have crafted 10 Swords! Return to the Guildmaster to claim your reward!."
   - flag SwordsCreated:10