Paste #990: miraak

Date: 2014/01/03 18:00:49 UTC-08:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


"BossFight":
    type: assignment

    interact scripts:
    - 1 Boss

    default constants:    
      #Range to warn targets should be larger than Range
      WarningRange: 15 
      WarningMessage: "Any closer and I will kill you."      
      Health: 400
      #Requires Sentry to equip and change Armor or weapons, See Sentry documentation for Weapons types. ID Number and Names are acceptable
      #http://wiki.citizensnpcs.com/Sentry#Commands
      MeleeEquipment: Diamond_Sword 
      RangeEquipment: bow
      Helmet: 310
      ChestPlate: 311
      Leggins: 312
      Boots: 313
      #True or false, if true it will attack anything that attacked it instead of current target
      Retaliate: true
      #This is the damage the sentry does with each hit, regardless of weapon (or object) held.
      Strength: 1
      #This value is subtracted from all incoming damage. 
      #An armor of 10 makes the Sentry very hard to hurt. Armor items equipped on the Sentry have no effect on combat.
      Armor: 1
      #range in which it will find targets 1-100
      MeleeRange: 5 
      #range in which it will find targets 1-100
      RangeAttackRange: 30
      #Attack speed can be 0-30
      AttackSpeed: 1      
      #walking speed 0-1.5
      Speed: 0.5
      #This is the number of seconds between heals of 1 point, values less than 1.0 are acceptable. Set to 0 to turn off healing.
      RegenRate: 3.5
      #Number in Seconds before the Boss Respawns
      Respawn: 10
      #How well the NPC can see in the Dark choose a number 0-16
      Nightvision: 16
      #See http://jd.bukkit.org/rb/apidocs/org/bukkit/potion/PotionEffectType.html for different spells effects 
      SpellTimeOut: 5s      
      Spell1: Poison
      Spell1Duration: 10s
      Spell1Power: 1
      #Spell 2
      Spell2: Slow
      Spell2Duration: 10s
      Spell2Power: 1
      #Spell 3
      Spell3: Blindness
      Spell3Duration: 10s
      Spell3Power: 1
      #Spell 4
      Spell4: Confusion
      Spell4Duration: 10s
      Spell4Power: 1
      #Spell 5
      Spell5: Harm
      Spell5Duration: 1s
      Spell5Power: 1
      #Spell 6
      Spell6: Wither
      Spell6Duration: 10s
      Spell6Power: 1
      #Spell 7
      Spell7: Weakness
      Spell7Duration: 10s
      Spell7Power: 1

      #Rewards for killing the Boss
      Reward1: 264
      Reward1Qty: 1

    actions:
      on assignment:
      - ^execute as_npc "npc select <npc.id>"
      - ^execute as_npc "Trait Sentry"
      - trigger name:chat toggle:true
      - trigger name:click toggle:true
      - trigger name:damage toggle:true
      - trigger name:proximity toggle:true radius:<cons:MeleeRange>
      - execute as_npc "sentry Health <cons:Health>"
      - execute as_npc "sentry Armor <cons:Armor>"
      - execute as_npc "sentry Strength <cons:Strength>"
      - execute as_npc "sentry Range <cons:RangeAttackRange>"
      - execute as_npc "sentry Speed <cons:Speed>"
      - execute as_npc "sentry Attackrate <cons:AttackSpeed>"
      - execute as_npc "sentry HealRate <cons:RegenRate>"
      - execute as_npc "sentry Nightvision <cons:Nightvision>"
      - execute as_npc "sentry Respawn <cons:Respawn>"
      - execute as_npc "sentry equip <cons:Helmet>"
      - execute as_npc "sentry equip <cons:Leggins>"
      - execute as_npc "sentry equip <cons:ChestPlate>"
      - execute as_npc "sentry equip <cons:Boots>"      
      - execute as_npc "sentry retaliate <cons:Retaliate>"
      - execute as_npc "sentry Warning <cons:WarningMessage>"
      - execute as_npc "sentry target add entity:player"
      - execute as_npc "npc vulnerable"
      - execute as_npc "sentry invincible false"

      on death:
      - chat "Nooooooooooooooooo!!!"
      - flag npc in_pursuit:!
      - drop item:<cons:reward1> qty:<cons:reward1Qty> location:<npc.location>

      on damage:
      - if <npc.health.max> - <npc.health> > 550 && <npc.health.max> == 600 {
        - despawn 5
        - execute as_npc "npc select 0"
        - execute as_npc "sentry Health 500"
        - narrate "Kruziikrel, ziil los dii du!"
           }
      - if <npc.health.max> - <npc.health> > 450 {
        - despawn 6
        - execute as_npc "npc select 0"
        - execute as_npc "sentry Health 400"
        - narrate "Sahrotaar, ziil los dii du!"
           }
      - if <npc.health.max> - <npc.health> > 350 && <npc.health.max> == 400 {
        - despawn 7
        - execute as_npc "npc select 0"
        - execute as_npc "sentry Health 300"
        - narrate "Relonikiv, ziil los dii du!"
           }


      on enter proximity:
      - lookclose toggle:true
      - if <flag.npc[inpursuit]> queue clear
      - flag npc in_pursuit:true
      - attack
      - random {
             - execute as_npc "shout yol toor shul"
             - execute as_npc "shout liss slen nus"
             - execute as_npc "shout rii vaaz zol"
             - execute as_npc "shout fo krah diin"
             - execute as_npc "shout gaan lah haas"
             - execute as_npc "shout fus ro dah"
             - execute as_npc "shout fus ro dah"
               }

      on exit proximity:
      - if !<flag.npc[in_pursuit]> queue clear
      - lookclose toggle:false

      on despawn:
      - flag npc in_pursuit:!

      on spawn:
      - announce "<&4><npc.name.nickname> has respawned."
      - execute as_npc "npc select 0"
      - execute as_npc "sentry Health 600"

#Acual Denizen Boss script here
'Boss':
    type: interact
    steps:
        '1':
            proximity trigger:
              entry:
                script:
                - ^Execute as_npc "Sentry equip <Cons:MeleeEquipment>"
                - run Cast delay:<cons:SpellTimeOut>
                - attack
              #If player is out of range the Boss will switch to a ranged weapon specified above to start attacking                
              exit:
                script:               
                - ^Execute as_npc "Sentry equip <Cons:RangeEquipment>"
                - random {
                     - execute as_npc "shout Wuld"
                     - execute as_npc "shout Wuld Nah"
                     - execute as_npc "shout Wuld Nah Kest"
                         }
#If you add more spells please make sure to edit the 7 to the new count.

'Cast':
    type: task
    script:
    - random {
             - execute as_npc "shout yol toor shul"
             - execute as_npc "shout liss slen nus"
             - execute as_npc "shout rii vaaz zol"
             - execute as_npc "shout fo krah diin"
             - execute as_npc "shout gaan lah haas"
             - execute as_npc "shout Zun Haal Viik"
             }

'Spell':
    type: task
    context: id
    script: