Paste #5794: Untitled Paste

Date: 2014/06/26 12:21:31 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


'Entity Killed':
 type: world
 events:
   on validateScoreboard command:
   - run ValidateScoreboard def:p@<player.name>
   on server start:
   - ^if <queue.exists[ManaLoop]> queue queue:queueID stop
   - run RegenerateManaLoop id:ManaLoop
   on artificialLoopStart command:
   - ^if <queue.exists[ManaLoop]> queue queue:queueID stop
   - run RegenerateManaLoop id:ManaLoop
   on player join:
   - run CalculateHealthBonus def:p@<player.name>
   - run ValidateScoreboard def:p@<player.name>
   - ^if <queue.exists[ManaLoop]> queue queue:queueID stop
   - run RegenerateManaLoop id:ManaLoop
   on player respawn:
   - run CalculateHealthBonus def:p@<player.name>
   on player death:
   - run CalculateDeathPenalty def:p@<player.name>
   on hb command:
   - run CalculateHealthBonus def:p@<player.name>
   - determine fulfilled
   on player damages entity:
   - define amt <context.damage>
   - if <player.flag[Strength]> == null {
       - flag Strength:5
     }
   - if <player.flag[Strength]> == 0 {
       - flag Strength:5
     }
   - if <player.flag[Dexterity]> == null {
       - flag Dexterity:5
     }
   - if <player.flag[Dexterity]> == 0 {
       - flag Dexterity:5
     }
   - define lowDamagePercentage <player.flag[Strength].div[10].asint>
   - define highDamagePercentage <player.flag[Strength].div[5].asint>
   - define lowDamageAmount <def[lowDamagePercentage].mul[%amt%]>
   - define highDamageAmount <def[highDamagePercentage].mul[%amt%]>
   - if %lowDamageAmount% < 1 {
       - define lowDamageAmount 1
     }
   - if %highDamageAmount% < 2 {
       - define highDamageAmount 2
     }
   - define finalDamageAmount <util.random.int[<def[lowDamageAmount].asint>].to[<def[highDamageAmount].asint>]>
   - define critRandom <util.random.int[1].to[100]>
   - if <def[critRandom]> <= <player.flag[Dexterity].asint> {
       - define crit true
     }
   - if <player.is_op> && <player.flag[adminDisableNotifications]> == null {
       - narrate "Crit value was <def[CritRandom].asint>"
       - narrate "Initial amount was %amt%."
       - narrate "Random variance was <def[lowDamageAmount].asint> to <def[highDamageAmount].asint>, value was <def[finalDamageAmount]>."
       - narrate "Entity has <context.entity.health>."
     }
   - if <def[crit]> {
       - define finalDamageAmount <def[finalDamageAmount].mul[3]>
       - playsound zombie_infect <player.location>
       - playeffect <player.location> effect:potion_break amt:20
       - if <player.flag[disableCritNotifications]> == null || <player.flag[disableCritNotifications]> == false {
           - narrate "<red>You crit, dealing <def[finalDamageAmount].asint> damage!"
         }
     }
   - determine <def[finalDamageAmount]>
   on disableAdminNotifications command:
   - if !<player.is_op> queue clear
   - narrate "Setting notifications to <context.args.get[1]>."
   - narrate "Any value but <italic>null <reset>and <italic>false <reset>will disable the notification for critical hits."
   - flag adminDisableNotifications:<context.args.get[1]>
   - determine fulfilled
   on disableCritNotifications command:
   - narrate "Setting notification value to <context.args.get[1]>"
   - flag disableCritNotifications:<context.args.get[1]>
   - narrate "Any value but <italic>null <reset>and <italic>false <reset>will disable the notification for critical hits."
   - determine fulfilled
   on entity death:
   - if <context.damager> == null queue clear
   - if true {
       - define finalDamageAmount <def[finalDamageAmount].mul[2]>
       - define ent <context.entity.entity_type>
       - execute asserver "msg Ares513 %ent%, <context.damager.name>, <context.damager.entity_type>"
       - if %ent% == ZOMBIE || %ent% == SPIDER || %ent% == SKELETON || %ent% == CREEPER {
           - narrate "<player[<context.damager.name].flag[Exp]>"
           - if <player[<context.damager.name>].flag[Exp]> == null {
               - flag player player:<context.damager.name> Exp:0
             }
           - define level <proc[MobLevel].context[<context.entity.location>]>
           - define multiplied <def[level].pow[2]>
           - flag player player:<context.damager.name> Exp:<player[<context.damager.name>].flag[Exp].add[<def[multiplied].asint>"
           - if <player.is_op> {
               - narrate "<red>Player gained <def[multiplied]> experience." target:<context.damager.name>
               - narrate "<red>Player has <player[<context.damager.name>].flag[Exp].asint> experience." target:<context.damager.name>
             }
           - if <proc[CanUserLevelUp].context[<player[<context.damager.name>].flag[Level].asint>]> {
               - run LevelUp def:<context.damager.name>
             }
         }
     }
   - run ValidateScoreboard def:<context.damager.name>