PVP Guild (Large Set of Scripts)


Author: Jeebiss
Created: 2012-11-18T15:12:38-0500
Edited: 2014-02-05T23:16:31-0500
Denizen Version: 0.9.4
Views: 111
Downloads: 1171
Likes: 4


WGET
Description: This is a fairly elaborate set of scripts, but should be simple to implement. It requires 4 separate NPCs. I removed the need for any additional plugins outside of Denizen, and made a reliable system for a daily resetting quest. All of the configuration options are in the first part of the script. There are not a lot of options, but I tried to cover the main parts that will need changed. Feel free to edit the script to your needs, but beware that if you change anything other then the configuration values, you are on your own. This is a fairly elaborate set of quests, and definitely would take some effort to wrap your head around. If you run into any issues or have any questions, I am regularly in #denizen-dev on the esper.net irc network, so feel free to bug me.

NPCs (with suggested names):
Antee - The first NPC you deal with. He has 3 quest in which he wants you to kill zombies, skeletons, and creepers. Basically a set of trials to join the PVP Guild. He sends you to the Guild Master when you finish the third.

Dread (Guild Master) - He only gives one quest as it stands, which is to go kill 1 player to be officially accepted in the guild. Once the player finishes the quest, they will gain access to the rest of the quests in the guild.

Vandaag - He provides a daily pvp quest to guild members. The quest resets 24 hours after it is finished, giving the players opportunities to continue to get items for rewards.

Gavoon - A small chain of quests to get initial gear. He rewards you some custom guild armor. Hes more for the story as hes an extremely creepy character.

Change Log:
2/5/2014 - Remove extra narrate left from debugging.


InitiateQuest:
  type: assignment
  #----------------------------------
  #  Congiguration Section:
  #  These valus affect the Iniation
  #  quest. Qty values are the number
  #  of kills needed for each step,
  #  and the reward values are the
  #  amount of currency the player
  #  gets as a reward.
  #----------------------------------
  default constants:
    ServerName: Dreadcraft

    ZombieQty: 15
    ZombieReward: 250

    SkeletonQty: 15
    SkeletonReward: 250

    CreeperQty: 5
    CreeperReward: 250
  #  ---------- END CONFIG ----------
  actions:
    on assignment:
    - trigger name:chat toggle:true
  interact scripts:
  - 10 Initiation

GuildMaster:
  type: assignment
  #----------------------------------
  #  Congiguration Section:
  #  These valus affect the Guild
  #  Master's quest. The GuildNPC
  #  names just reference the NPCs
  #  that give the quests once 
  #  you've joined.
  #----------------------------------
  default constants:
    GuildNPC1Name: Gavoon
    GuildNPC2Name: Vandaag
  #  ---------- END CONFIG ----------
  actions:
    on assignment:
    - trigger name:chat toggle:true
  interact scripts:
    - 10 GuildMasterChallenge

SkillsQuest:
  type: assignment
  #----------------------------------
  #  Congiguration Section:
  #  These valus affect the 'Skill
  #  Enhancement' quests, which the
  #  player gains access to once they
  #  join the guild. it consists of
  #  a two step quest, where the NPC
  #  has the player go kill other
  #  players. The QtyOne and QtyTwo
  #  values are how many players must
  #  be killed in each quest step.
  #  The 'InWords' values, are just
  #  the 'Qty' values, expressed in
  #  words (with a capital).
  #----------------------------------
  default constants:
    QuestOneQty: 2
    QtyOneInWords: Two
    QuestTwoQty: 3
    QtyTwoInWords: Three
  #  ---------- END CONFIG ----------
  actions:
    on assignment:
    - trigger name:chat toggle:true
  interact scripts:
    - 10 SkillsEnhance

DailyPVP:
  type: assignment
  #----------------------------------
  #  Congiguration Section:
  #  These valus affect the dailt pvp
  #  quest. The PVPQty value is the number
  #  of kills needed. The 'List'
  #  values are 3 lists, upon which
  #  one value from each is given as
  #  a reward. The 'Qty' values are
  #  how many of each reward they get.
  #----------------------------------
  default constants:
    # Qty of kills for daily pvp
    PVPQty: 2
    # List of rewards for daily pvp
    ArmorList: [email protected]<util.random.int[310].to[313]>[enchantments=protection_environmental,4]
    ArmorQty: 1
    ResourceList: [email protected]<util.random.int[264].to[266]>
    ResourceQty: <util.random.int[1].to[10]>
    MiscList: [email protected]<util.random.int[352].to[375]>
    MiscQty: <util.random.int[1].to[10]>
  #  ---------- END CONFIG ----------
  actions:
    on assignment:
    - trigger name:chat toggle:true
  interact scripts:
    - 10 DailyPVPQuest
 
#----------------------------------
#  These are the item scripts for
#  the reward items. You can modify
#  them as you see fit, however you
#  will need to go into the proper
#  script and change any references.
#  Eventually, I want to add a
#  way to handle all this with
#  constants or something.
#----------------------------------
GuildChest:
  type: item
  material: diamond_chestplate
  display name: Chest of the Fallen
  enchantments:
  - PROTECTION_ENVIRONMENTAL:2
  - DURABILITY:2
  lore:
  - The diamond chest of a fallen,
  - Guild member. Reforged by <npc.name>

GuildLegs:
  type: item
  material: diamond_leggings
  display name: Legplates of the Fallen
  enchantments:
  - PROTECTION_ENVIRONMENTAL:2
  - DURABILITY:2
  lore:
  - These legplates definitly aren't new...

GuildSword:
  type: item
  material: diamond_sword
  display name: Sword of the Flame
  enchantments:
  - FIRE_ASPECT:2
  - DAMAGE_ALL:2
  lore:
  - Forged with raw diamonds and blaze rods,
  - this sword is awarded to all PvP Guild initiates.
 
#----------------------------------
#  Start of the quest scripts, I
#  would not advise editing any-
#  thing beyond here if you are not
#  an experienced scripter.
#----------------------------------
Initiation:
  Type: Interact
  Steps:
    1:
      Click Trigger:
        Script:
          - ^engage
          - chat "Welcome to the PVP Guild of <npc.constant[ServerName]>!"
          - wait 2
          - chat "Only the toughest of the tough can join us."
          - wait 2
          - chat "If you are interested in joining, you'll have to pass a set of challenges."
          - wait 2
          - chat "What do you say?"
          - narrate "<white>You can say, <green>Yes<white> or <green>No<white>."
          - ^disengage
      Chat Trigger:
        1:
           Trigger: /Yes/, I'm interested in joining the PVP Guild.
           Script:
             - ^engage
             - chat "Very good!"
             - wait 2
             - chat "These challenges are to test your abilities against different opponents."
             - wait 2
             - chat "We will start off with simple targets, the walking dead."
             - wait 2
             - ^chat "I need you to go hunt down a kill <npc.constant[ZombieQty]> of these monsters. Dont let those zombies survive."
             - ^listen kill type:entity name:zombie qty:1 script:ZombieCheck
             - flag ZombieCount:0
             - ^zap
             - ^disengage
        2:
           Trigger: /No/, I feel Im too weak to join your Guild. 
           Script:
             - ^engage
             - chat "Its not cut out for everyone."
             - wait 2
             - chat "You'll be back when our members come for you..."
             - ^disengage
    2:     
      Click Trigger:
        Script:
          - ^engage
          - chat "You've only killed <flag.p:ZombieCount.asint> zombies..."
          - wait 2
          - chat "Are you too weak to handle our most basic challenge?"
          - wait 2
          - chat "Come back if you manage to handle the task at hand."
          - ^disengage
    3:
      Click Trigger:
        Script:
          - ^engage
          - chat "Ah! You managed to kill them! I must admit I didnt have much faith.."
          - wait 2
          - chat "Come back to me when you're ready for your next challenge."
          - wait 2
          - ^give money qty:<npc.constant[ZombieReward]>
          - ^chat "Oh, and take these coins for yourself as a small reward."
          - ^narrate "<red>You receieved <gold><npc.constant[ZombieReward]> coins<red> from <npc.name>!"
          - ^flag ZombieCount:!
          - ^zap step:4
          - ^disengage
    4:
      Click Trigger:
          Script:
            - ^engage
            - chat "Ah, now that you're back, on to the next challenge!"
            - wait 3
            - chat "I need you to prove yourself against opponents who are more swift and nimble!"
            - ^wait 3
            - ^chat "Kill <npc.constant[SkeletonQty]> skeletons to prove your agility, what do you say?"
            - ^narrate "<white>You can say, <green>Yes<white> or <green>No<white>."
      Chat Trigger:
        1:
           Trigger: /Yes/, I will get right on that.
           Script:
             - ^engage
             - chat "Very good!"
             - wait 2
             - chat "Go on now, go hunting!"
             - ^listen kill type:entity name:skeleton qty:1 script:SkeleCheck
             - ^flag SkeleCount:0
             - ^zap step:5
             - ^disengage
        2:
           Trigger: /No/, I wont be able to handle that. 
           Script:
             - ^engage
             - wait 2
             - chat "Then leave."
             - ^disengage
    5:
      Click Trigger:
        Script:
          - ^engage
          - chat "You've only killed <flag.p:SkeleCount.asint> skeletons..."
          - wait 2
          - chat "Leave and dont come back until you are done!"
          - ^disengage
    6:
      Click Trigger:
        Script:
          - ^engage
          - chat "<npc.constant[SkeletonQty]> skeletons dead, very nicely done."
          - wait 2
          - chat "This time you really earned this reward!"
          - ^give money qty:<npc.constant[SkeletonReward]>
          - ^narrate "<red>You receieved <gold><npc.constant[SkeletonReward]> coins<red> from <npc.name>!"
          - wait 1
          - chat "Come back when you're ready for the final challenge."
          - ^flag SkeleCount:!
          - ^zap 7
          - ^disengage
    7:
      Click Trigger:
        Script:
          - ^engage
          - chat "Back for the last challenge I see!"
          - wait 2
          - chat "For your final challenge, I need you to prove that you can handle the toughest of foes."
          - wait 2
          - chat "Kill <npc.constant[CreeperQty]> creepers, and you will have proved your potential."
          - wait 2
          - chat "Think you can handle that?"
          - narrate "<white>You can say, <green>Yes<white> or <green>No<white>."
          - ^disengage
      Chat Trigger:
        1:
           Trigger: /Yes/, that'll be nothing.
           Script:
             - ^engage
             - chat "Well get on your way then, I dont have all day!"
             - wait 2
             - chat "Return to me when you finish!"
             - ^flag CreeperCount:0
             - ^listen kill type:entity name:creeper qty:1 script:CreeperCheck
             - ^zap step:8
             - ^disengage
        2:
           Trigger: /No/, I wont be able to handle that. 
           Script:
             - ^engage
             - chat "Its not cut out for everyone."
             - chat "You'll be back when our members come for you..."
             - ^disengage
    8:     
      Click Trigger:
        Script:
          - ^engage
          - chat "You've only killed <flag.p:CreeperCount.asint> Creepers..."
          - wait 2
          - chat "Are you too weak to handle our most basic requirement?"
          - wait 2
          - chat "Come back if you manage to handle the task at hand."
          - ^disengage
    9:
      Click Trigger:
        Script:
          - ^engage
          - chat "You made it back in one piece I see. Thats surpising, I must admit."
          - wait 2
          - chat "Here is a little coin for your efforts;"
          - ^give money qty:<npc.constant[CreeperReward]>
          - ^narrate "<red>You receieved <gold><npc.constant[CreeperReward]> coins<red> from <npc.name>!"
          - wait 2
          - chat "You have passed all of my challenges, and have my recomendation to join the guild."
          - wait 2
          - chat "Go speak to the Guild Master, he will be waiting."
          - ^flag CreeperCount:!
          - ^zap 10
          - ^zap script:GuildMasterChallenge step:2
          - ^disengage
    10:
      Click Trigger:
        Script:
          - chat "You'll need to talk to the Guild Master for further instructions."
 
#----------------------------------
#  Task scripts used to give feed-
#  back while killing zombies. 
#----------------------------------
ZombieCheck:
  Type: Task
  Script:
    - ^flag ZombieCount:++
    - ^if <flag.p:ZombieCount.asint> >= <npc.constant[ZombieQty]> run ZombieReward
      else run ZombieContinue

ZombieContinue:
  Type: Task
  Script:
    - ^narrate "<red>*** <white>Kill Zombies - <flag.p:ZombieCount.asint>/<npc.constant[ZombieQty]> <red>***"
    - ^listen kill type:entity name:zombie qty:1 script:ZombieCheck

ZombieReward:
  Type: Task
  Script:
    - ^narrate "<red>*** <white>Kill Zombies - <flag.p:ZombieCount.asint>/<npc.constant[ZombieQty]> <red>***"
    - wait 1
    - ^narrate "You've killed <npc.constant[ZombieQty]> Zombies, return to <npc.name> at the PvP Guild."
    - ^zap script:Initiation step:3
 
#----------------------------------
#  Task scripts used to give feed-
#  back while killing skeletons. 
#----------------------------------    
SkeleCheck:
  Type: Task
  Script:
    - ^flag SkeleCount:++
    - ^if <flag.p:SkeleCount.asint> >= <npc.constant[SkeletonQty]> run SkeleReward
      else run SkeleContinue
      
SkeleContinue:
  Type: Task
  Script:
    - ^narrate "<red>*** <white>Kill Skeletons - <flag.p:SkeleCount.asint>/<npc.constant[SkeletonQty]> <red>***"
    - ^listen kill type:entity name:skeleton qty:1 script:SkeleCheck

SkeleReward:
  Type: Task
  Script:
    - ^narrate "<red>*** <white>Kill Skeletons - <flag.p:SkeleCount.asint>/<npc.constant[SkeletonQty]> <red>***"
    - wait 1
    - narrate "You've killed <npc.constant[SkeletonQty]> Skeletons, return to <npc.name> at the PvP Guild."
    - zap script:Initiation step:6
 
#----------------------------------
#  Task scripts used to give feed-
#  back while killing creepers. 
#---------------------------------- 
CreeperCheck:
  Type: Task
  Script:
    - ^flag CreeperCount:++
    - ^if <flag.p:CreeperCount.asint> >= <npc.constant[CreeperQty]> run CreeperReward
      else run CreeperContinue

CreeperContinue:
  Type: Task
  Script:
    - ^narrate "<red>*** <white>Kill Creepers - <flag.p:CreeperCount.asint>/<npc.constant[CreeperQty]> <red>***"
    - ^listen kill type:entity name:creeper qty:1 script:CreeperCheck
   
CreeperReward:
  Type: Task
  Script:
    - ^narrate "<red>*** <white>Kill Creepers - <flag.p:CreeperCount.asint>/<npc.constant[CreeperQty]> <red>***"
    - wait 1
    - NARRATE "You've killed <npc.constant[CreeperQty]> Creepers, return to <npc.name> at the PvP Guild."
    - zap script:Initiation step:9

GuildMasterChallenge:
  Type: Interact
  Steps:
    1:
      click trigger:
        script:
        - chat "Who are you...?"
    2:
      Click Trigger:
        Script:
          - ^engage
          - narrate "<dark_purple><npc.name> stares you down..."
          - wait 2
          - chat "Hopefully you live a little bit longer than the last few whelps, <PLAYER.name>."
          - wait 2
          - chat "Do you see yourself fit to join our guild?"
          - narrate "<white>You can say, <green>Yes<white> or <green>No<white>."
          - ^disengage
      Chat Trigger:
        1:
           Trigger: /Yes/, I am ready for anything.
           Script:
             - ^engage
             - wait 2
             - chat "Hunt down one of your own... Family, friend, or enemy... As long as you get some innocent blood on your hands."
             - wait 2
             - chat "Return to me when your finished..."
             - ^listen kill type:player qty:1 script:GuildMasterReward
             - ^zap step:3
             - ^disengage
        2:
           Trigger: /No/, I need to  think about it.
           Script:
             - ^engage
             - wait 2
             - chat "Coward..."
             - wait 1
             - narrate "<dark_purple><npc.name> looks dissapointed."
             - ^disengage
    3:     
      Click Trigger:
        Script:
          - ^engage
          - chat "No blood on your hands?"
          - wait 2
          - chat "You know what needs to be done, whelp."
          - ^disengage
    4:
      Click Trigger:
        Script:
          - ^engage
          - chat "Good."
          - wait 2
          - chat "I will admit, you had the look of a killer about you..."
          - wait 2
          - chat "You have proved your worthiness to me, and solidified your place in this guild."
          - wait 2
          - chat "Take this sword - All guild members recieve this blade when they have proven themselves."
          - wait 1
          - ^give item:GuildSword
          - ^narrate "<RED>You received an enchanted <aqua>Diamond Sword<red> from the Guild Master."
          - wait 2
          - narrate "<dark_purple><npc.name> smiles at you."
          - wait 2
          - ^chat "Leave nothing but ashes..."
          - ^flag server PVPGuildMembers:->:<player>
          - ^zap script:SkillsEnhance step:2
          - ^zap script:DailyPVPQuest step:2
          - ^zap step:5
          - ^disengage
    5:
      Click Trigger:
        Script:
          - ^engage
          - chat "Welcome back to the PVP Guild!"
          - wait 1
          - chat "If you are looking for a Guild task, speak to <npc.constant[GuildNPC1Name]> or <npc.constant[GuildNPC2Name]>."
          - ^disengage

GuildMasterReward:
  Type: Task
  Script:
    - ^narrate "You've killed a player in the name of the PVP Guild!! Return to the Guild Master."  
    - ^zap script:GuildMasterChallenge step:4

SkillsEnhance:
  Type: Interact
  Steps:
    1:
      click trigger:
        script:
        - narrate "<dark_purple><npc.name> stares directly into your eyes..."
        - wait 2
        - chat "Are you lost..?"
    2:
      Click Trigger:
        Script:
          - ^engage
          - chat "The Guild Master says you're the best new member we have..."
          - wait 2
          - chat "How about a little fun, <player.name>?"
          - wait 2
          - narrate "<dark_purple><npc.name> grins meniachly at you..."
          - narrate "<white>You can say, <green>Yes<white> or <green>No<white>."
          - ^disengage
      Chat Trigger:
        1:
           Trigger: /Yes/, lets have a little fun.
           Script:
             - ^engage
             - wait 2
             - chat "<npc.constant[QtyOneInWords]> bodies, thats all we need."
             - wait 2
             - chat "See you soon."
             - ^listen kill type:player qty:1 script:SkillQCheck
             - ^flag SkillQCount:0
             - ^zap step:3
             - ^disengage
        2:
           Trigger: /No/, I'll pass.
           Script:
             - ^engage
             - chat "Hah, you call yourself a killer."
             - wait 2
             - chat "I've killed creepers with more spine than you."
             - wait 1
             - ^narrate "<dark_purple><npc.name> points to a statue of creeper spines."
             - ^disengage
    3:     
      Click Trigger:
        Script:
          - ^engage
          - wait 2
          - chat "I expect you have your victims bound and gagged by now... Go finish the job. "
          - wait 2
          - chat "Don't keep them waiting."
          - ^disengage
    4:
      Click Trigger:
        Script:
          - ^engage
          - chat "Finally, <PLAYER.name>..."
          - wait 2
          - chat "Don't tell me how you killed them, It's more fun that way."
          - wait 2
          - chat "Of course, your reward!"
          - ^give item:GuildChest
          - ^narrate "<RED>You received a set of enchanted <aqua>Diamond Chestplate<red>."
          - wait 2
          - chat "Now go do something else - I have corpses to tend to."
          - wait 2
          - narrate "...maybe you should return to <npc.name> later..."
          - ^flag SkillQCount:!
          - ^flag SkillQ2
          - ^zap 5
          - ^disengage
    5:
      Click Trigger:
        Script:
          - ^engage
          - narrate "<dark_purple><npc.name> giggles excitedly!"
          - wait 2
          - chat "Back for more blood, <PLAYER.name>?"
          - wait 1
          - ^narrate "<white>You can say, <green>Yes<white> or <green>No<white>."
          - ^disengage
      Chat Trigger:
        1:
           Trigger: /Yes/, I am.
           Script:
             - ^engage
             - wait 2
             - chat "How delightful! I need more meat for the hounds..."
             - wait 2
             - chat "Go tender up some meat."
             - wait 2
             - chat "By 'meat', I mean humans..."
             - wait 2
             - ^narrate "<dark_purple><npc.name> licks his lips."
             - ^listen kill type:player qty:1 script:SkillQCheck
             - ^zap step:6
             - ^disengage
        2:
           Trigger: /No/, I'll pass.
           Script:
             - ^engage
             - chat "I guess the dogs will be eating you tonight."
             - wait 2
             - ^narrate "<dark_purple><npc.name> begins sharpening a knife..."
             - ^disengage
    6:     
      Click Trigger:
        Script:
          - ^engage
          - chat "Back so soon...?"
          - wait 2
          - chat "If you don't get us the meat soon, the hounds will starve..."
          - wait 2
          - ^chat "They only eat fresh meat, and we are all out of prisoners. Get moving!"
          - ^disengage
    7:
      Click Trigger:
        Script:
          - ^engage
          - narrate "<dark_purple><npc.name> begins nibbling on the 'meat' you gathered..."
          - wait 2
          - chat "Fantastic..."
          - wait 2
          - narrate "<dark_purple><npc.name> takes a large chunk of 'meat' and begins chewing on it..."
          - wait 2
          - narrate "<dark_purple><npc.name> reaches into his pocket..."
          - wait 1
          - ^give item:GuildLegs
          - ^narrate "<RED>You received enchanted <aqua>Diamond Legplates."
          - wait 2
          - narrate "<dark_purple><npc.name> shoos you away... Still chewing..."
          - wait 2
          - narrate "<BLUE>You can't help but think - That human flesh wasn't for the dogs..."
          - ^flag SkillQCount:!
          - ^flag SkillQ2:!
          - ^zap 8
          - ^disengage
    8:
      Click Trigger:
        Script:
          - ^engage
          - narrate "<dark_purple><npc.name> gnaws on a large chunk of what looks like beef jerky."
          - wait 2
          - narrate "<dark_purple><npc.name> smiles at you. Little pieces of 'meat' dotting his grin."
          - narrate "<RED>You have finished this quest."
          - ^disengage

SkillQCheck:
  Type: Task
  Script:
    - ^flag SkillQCount:++
    - ^if <player.flag[SkillQ2]> {
      - ^if <player.flag[SkillQCount].asint> >= <npc.constant[QuestTwoQty]> run SkillQReward
        else run SkillQContinue
      } else {
      - ^if <player.flag[SkillQCount].asint> >= <npc.constant[QuestOneQty]> run SkillQReward
        else run SkillQContinue
      }

SkillQContinue:
  Type: Task
  Script:
    - ^if <player.flag[SkillQ2]> {
      - ^narrate "<red>*** <white>Kill Players - <flag.p:SkillQCount.asint>/<npc.constant[QuestTwoQty]> <red>***"
      } else {
      - ^narrate "<red>*** <white>Kill Players - <flag.p:SkillQCount.asint>/<npc.constant[QuestOneQty]> <red>***"
      }
    - ^listen kill type:player qty:1 script:SkillQCheck

SkillQReward:
  Type: Task
  Script:
    - ^if <player.flag[SkillQ2]> {
      - ^narrate "<red>*** <white>Kill Players - <flag.p:SkillQCount.asint>/<npc.constant[QuestTwoQty]> <red>***"
      - wait 1
      - narrate "You've killed <npc.constant[QuestTwoQty]> Players, return to <npc.name> at the PvP Guild."
      - zap script:SkillsEnhance step:7
      } else {
      - ^narrate "<red>*** <white>Kill Players - <flag.p:SkillQCount.asint>/<npc.constant[QuestOneQty]> <red>***"
      - wait 1
      - narrate "You've killed <npc.constant[QuestOneQty]> Players, return to <npc.name> at the PvP Guild."
      - zap script:SkillsEnhance step:4
      }

DailyPVPQuest:
  Type: Interact
  Steps:
    1:
      Click Trigger:
        Script:
          - engage
          - ^random {
            - narrate "<dark_purple><npc.name> smiles at you."
            - narrate "<dark_purple><npc.name> jumps in circles!"
            - narrate "<dark_purple><npc.name> shivers wildly."
            }
          - wait 2
          - ^random {
            - chat "Hey! Fancy seeing you here! Go play."
            - chat "Don't make me call my friends!"
            - chat "You! You! You don't seem to belong here..."
            }
    2:
      Click Trigger:
        Script:
          - engage
          - ^random {
            - chat "Its so good to see you <PLAYER.name>!"
            - chat "Hey there!"
            - chat "Oh! Hey! <PLAYER.name>! Come over here!"
            - chat "I'm so excited! I just can't contain myself!"
            }
          - wait 2
          - ^random {
            - chat "Are you up for some 'activities'?"
            - chat "Are you here for your 'medication'?"
            - chat "Would you like some 'candy'?"
            }
          - wait 2
          - narrate "<BLUE>*** This is a daily quest! ***"
          - wait 1
          - narrate "<white>You can say, <green>Yes<white> or <green>No<white>."
          - disengage
      Chat Trigger:
        1:
           Trigger: /Yes/... I think...
           Script:
             - engage
             - wait 2
             - chat "Great! Now go beat the living hell out of <npc.constant[PVPQty]> people!"
             - wait 2
             - narrate "<dark_purple><npc.name> jumps in circles!"
             - wait 2
             - narrate "<BLUE>Go kill <npc.constant[PVPQty]> players, then return to <npc.name>!"
             - wait 2
             - narrate "<RED>*** Cheating *** -> AKA farming town members, or asking to kill other people for quest credit will result in a warning!"
             - ^listen kill type:player qty:1 script:DPCheck id:DP_<player>
             - ^flag PVPCount:0
             - ^zap step:3
             - disengage
        2:
           Trigger: /No/... Your crazy.
           Script:
             - chat "Whatever, Bro."
    3:     
      Click Trigger:
        Script:
          - engage
          - ^random {
            - chat "Go! Go! Go! Kill! Yeah!"
            - chat "Woohoo! So excited! Go <PLAYER.name>!"
            - chat "<PLAYER.name>! Erm.. Your not done? Booooo!"
            }
          - disengage
    4:
      Click Trigger:
        Script:
          - engage
          - ^random {
            - narrate "<dark_purple><npc.name> punches you in the mouth!"
            - narrate "<dark_purple><npc.name> looks at you lovingly..."
            - chat "Yes! Finally! Oh my god!"
            - narrate "<dark_purple><npc.name> flails his arms wildly!"
            - chat "Your finished! Hooray!"
            }
          - wait 2
          - narrate "<BLUE>This guy is obviously insane..."
          - wait 2
          - narrate "<dark_purple><npc.name> throws a bag of random loot at you..."
          - wait 1
          - ^give <npc.constant[ArmorList]> qty:<npc.constant[ArmorQty]>
          - ^give <npc.constant[ResourceList]> qty:<npc.constant[ResourceQty]>
          - ^give <npc.constant[MiscList]> qty:<npc.constant[MiscQty]>
          - wait 2
          - ^narrate "<dark_purple><npc.name> cheers excitedly!"
          - wait 2
          - ^narrate "<BLUE>You have finished the PVP Daily quest! Come back tomorrow and claim your bag of loot!"
          - ^zap step:5
          - ^flag DPCooldown duration:24h
          - ^flag server DPCooldownList:->:<player>
          - disengage
    5:
      click trigger:
        script:
        - chat "Come back tomorrow for more fun!"
        - wait 2
        - narrate "<dark_purple><npc.name> smiles at you."
        - wait 1
        - narrate "<BLUE>You've already completed the Daily PVP Quest for today!!"
          
DPCheck:
  Type: Task
  Script:
    - ^flag PVPCount:++
    - ^if <flag.p:PVPCount.asint> >= <npc.constant[PVPQty]> runtask DPReward
      else runtask DPContinue
      
DPContinue:
  Type: Task
  Script:
    - ^narrate "<red>*** <white>Kill Players - <flag.p:PVPCount.asint>/<npc.constant[PVPQty]> <red>***"
    - ^listen kill type:player qty:1 script:DPCheck id:DP_<player>
      
DPReward:
  Type: Task
  Script:
    - ^narrate "<red>*** <white>Kill Players - <flag.p:PVPCount.asint>/<npc.constant[PVPQty]> <red>***"
    - wait 1
    - ^narrate "You've killed <npc.constant[PVPQty]> Players, return to <npc.name> at the PvP Guild."
    - ^flag PVPCount:!
    - ^zap script:DailyPVPQuest step:4

DPWorld:
    type: world
    events:
        on time changes in [email protected]:
        - if <server.flag[DPCooldownList]> == "null" queue clear
        - foreach <server.flag[DPCooldownList].as_list> {
          - if !<%value%.as_player.flag[DPCooldown]> && <[email protected][%value%]> != "2" {
            - zap script:DailyPVPQuest step:2 player:%value%
            - flag server DPCooldownList:<-:%value%
            - if <%value%.as_player.is_online> {
              - narrate player:%value% "<blue>You feel a weird chill go down your spine..."
              - narrate player:%value% "<red>The PVP Guild calls for you, return soon!"
              }
            }
          }




Comments
2014-02-01 19:32:21 - calico-kid:

hey jeebs you missed a disengage right after line 229... just though it would let ya know... cya in the dev! =)
2014-02-02 04:39:13 - beecee:

WOW SO COOL