Paste #5624: Untitled Paste

Date: 2014/06/23 12:51:36 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


ProcedureTutorial:
  type: procedure 
  definitions: price|moneysign 
  script: 
  - if <player.money> < %price% determine false
  - if <player.health.percentage> > 80 determine false 
  - take money qty:%price% 
  - narrate "You lost %moneysign%%price%!" 
  - determine true

MobLevel:
  type: procedure 
  definitions: location
  script: 
  - define distanceNewDalantum <def[location].distance[<server.flag[ArathiaLocation]>]>
  - define distanceArathia <def[location].distance[<server.flag[NewDalantumLocation]>]>
  - if %distanceNewDalantum% < %distanceArathia% {
      - define lowest %distanceNewDalantum%
    }
  - if %distanceArathia% < %distanceNewDalantum% {
      - define lowest %distanceArathia%
    }
  - if %lowest% < 750 {
      - determine 1
    }
  - if %lowest% > 750 && %lowest% < 1000 {
      - determine 2
    }
  - if %lowest% > 1000 && %lowest% < 1250 {
      - determine 3
    }
  - if %lowest% > 1250 && %lowest% < 1500 {
      - determine 4
    }
  - if %lowest% > 1500 && %lowest% < 1750 {
      - determine 5
    }
  - if %lowest% > 1750 && %lowest% < 2000 {
      - determine 6
    }
  - if %lowest% > 2000 && %lowest% < 2250 {
      - determine 7
    }
  - if %lowest% > 2250 && %lowest% < 2500 {
      - determine 8
    }
  - if %lowest% > 2500 && %lowest% < 2750 {
      - determine 9
    }
  - if %lowest% > 2750 && %lowest% < 3000 {
      - determine 10
    }
  - if %lowest% > 3000 && %lowest% < 3250 {
      - determine 11
    }
  - if %lowest% > 3250 && %lowest% < 3500 {
      - determine 12
    }
  - if %lowest% > 3500 && %lowest% < 3750 {
      - determine 13
    }
  - if %lowest% > 3750 && %lowest% < 4000 {
      - determine 14
    }
  - if %lowest% > 4250 && %lowest% < 4500 {
      - determine 15
    }
  - if %lowest% > 4500 && %lowest% < 4750 {
      - determine 16
    }
  - if %lowest% > 4750 && %lowest% < 5000 {
      - determine 17
    }
  - if %lowest% > 5000 && %lowest% < 5500 {
      - determine 18
    }
  - if %lowest% > 5500 && %lowest% < 6000 {
      - determine 19
    }
  - if %lowest% > 6000 && %lowest% < 6500 {
      - determine 20
    }
  - if %lowest% > 6500 && %lowest% < 7000 {
      - determine 21
    }
  - if %lowest% > 7000 && %lowest% < 7500 {
      - determine 22
    }
  - if %lowest% > 7500 && %lowest% < 8000 {
      - determine 23
    }
  - if %lowest% > 8000 && %lowest% < 8500 {
      - determine 24
    }
  - if %lowest% > 8500 && %lowest% < 9000 {
      - determine 25
    }
  - if %lowest% > 9000 && %lowest% < 9500 {
      - determine 26
    }
  - if %lowest% > 9500 && %lowest% < 10000 {
      - determine 27
    }
  - if %lowest% > 10000 {
      - determine 28
    }
MaximumMana:
  type: procedure 
  definitions: level|intelligence
  script: 
  - define LevelValue <def[level].mul[5]>
  - define IntellectValue <def[intelligence].mul[10]>
  - define total <def[IntellectValue].add[<def[LevelValue]>]>
  - determine %total%
ManaRegenerationRate:
  type: procedure
  definitions: level|intelligence
  script: 
  - define LevelValue <def[level].mul[0.025]>
  - define IntellectValue <def[intelligence].mul[0.1]>
  - define total <def[IntellectValue].add[<def[LevelValue]>]>
  - determine %total%
CanUserLevelUp:
  type: procedure
  definitions: level
  script: 
  - if <player.flag[Exp].asint> > > <proc[ToNextLevel].context[<def[level]>]> {
      - determine true
    }
  - determine false
ToNextLevel:
  type: procedure
  definitions: level
  script: 
  - define base 2
  - define minimum 10
  - determine <def[minimum].add[<def[base].power[<def[level]>]>]>
SinceLastLevel:
  type: procedure
  definitions: level
  script: 
  - define base 2
  - if <def[level]> == 1 {
      - determine 0
    }
  - determine <def[base].power[<def[level].min[1]>]>

ValidateScoreboard:
  type: procedure 
  definitions: player
  script: 
    - ^scoreboard viewers:%player% lines:Level id:PlayerDisplay "objective:Skill Stats" criteria:dummy score:<player[%player%].flag[Level].asint> displayslot:sidebar
    - ^scoreboard viewers:%player% lines:Mana id:PlayerDisplay "objective:Skill Stats" criteria:dummy score:<player[%player%].flag[CurrentMana].asint> displayslot:sidebar
    - ^scoreboard viewers:%player% lines:Experience id:PlayerDisplay "objective:Skill Stats" criteria:dummy score:1 displayslot:sidebar
    - ^scoreboard viewers:%player% lines:"Strength" id:PlayerDisplay "objective:Skill Stats" criteria:dummy score:<player[%player%].flag[Strength].asint> displayslot:sidebar
    - ^scoreboard viewers:%player% lines:"Intelligence" id:PlayerDisplay "objective:Skill Stats" criteria:dummy score:<player[%player%].flag[Intelligence].asint> displayslot:sidebar
    - ^scoreboard viewers:%player% lines:"Dexterity" id:PlayerDisplay "objective:Skill Stats" criteria:dummy score:<player[%player%].flag[Dexterity].asint> displayslot:sidebar
    - ^scoreboard viewers:%player% lines:"Vitality" id:PlayerDisplay "objective:Skill Stats" criteria:dummy score:<player[%player%].flag[Vitality].asint> displayslot:sidebar
ManaRegenerationRate:
  type: procedure 
  definitions: level|intelligence
  script:
  - define LevelValue <def[level].mul[0.025]>
  - define IntellectValue <def[intelligence].mul[0.1]>
  - define total <def[IntellectValue].add[<def[LevelValue]>]>
  - determine %total%
RegenerateManaLoop:
    type: task
    script:
    - run RegenerateMana def:p@Ares513 instantly
    - wait 1
    - run RegenerateManaLoop
LevelUp:
  type: task
  definitions: player
  script:
  - run printL instantly
  - run printE delay:1
  - run printV delay:2
  - run printE delay:3
  - run printL delay:4
  - run printU delay:5
  - determine %total%
  - flag Level:++
  - firework location:<def[player].location> primary:random|random|random|random flicker trail
RegenerateMana:
    type: task
    definitions: player
    script:
    - ^if <player[%player%].flag[CurrentMana]> < <proc[MaximumMana].context[<player[%player%].flag[Level]>|<player[%player%].flag[Intelligence]>]> {
         - ^flag player player:%player% CurrentMana:<player.flag[CurrentMana].add[<proc[ManaRegenerationRate].context[<player[%player%].flag[Level]>|<player[%player%].flag[Intelligence]>]>]>
       }
    - ^scoreboard viewers:%player% lines:Level id:PlayerDisplay "objective:Skill Stats" criteria:dummy score:<player[%player%].flag[Level].asint> displayslot:sidebar
    - ^scoreboard viewers:%player% lines:Mana id:PlayerDisplay "objective:Skill Stats" criteria:dummy score:<player[%player%].flag[CurrentMana].asint> displayslot:sidebar
    - ^scoreboard viewers:%player% lines:Experience id:PlayerDisplay "objective:Skill Stats" criteria:dummy score:<player.flag[Exp].asint> displayslot:sidebar
    - ^scoreboard viewers:%player% lines:Strength id:PlayerDisplay "objective:Skill Stats" criteria:dummy score:<player[%player%].flag[Strength].asint> displayslot:sidebar
    - ^scoreboard viewers:%player% lines:Intelligence id:PlayerDisplay "objective:Skill Stats" criteria:dummy score:<player[%player%].flag[Intelligence].asint> displayslot:sidebar
    - ^scoreboard viewers:%player% lines:Dexterity id:PlayerDisplay "objective:Skill Stats" criteria:dummy score:<player[%player%].flag[Dexterity].asint> displayslot:sidebar
    - ^scoreboard viewers:%player% lines:Vitality id:PlayerDisplay "objective:Skill Stats" criteria:dummy score:<player[%player%].flag[Vitality].asint> displayslot:sidebar
'Utility Scripts':
 type: world
 events:
   on player kills entity:
   - define ent <context.entity.entity_type>
   - if <player.is_op> { 
       - narrate "%ent%"
     }
   - if %ent% == ZOMBIE || %ent% == SPIDER || %ent% == SKELETON || %ent% == CREEPER {
       - if <player.flag[Exp]> == null {
           - flag Exp:0
         }
       - define level <proc[MobLevel].context[<context.entity.location>]>
       - flag Exp:<def[level].asint>
       - if <player.isop> {
           - narrate "<red>Player gained <def[level]> experience."
           - narrate "<red>Player has <player.flag[Exp].asint> experience."
         }
       - if <proc[CanUserLevelUp]> {
           - run LevelUp def:<player>
         }
     }