Paste #36169: Edit of P#36167 Ride The Chickens

Date: 2016/09/15 16:15:17 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


RideAllTheChickens:
  type: world
  debug: false
  events:
    on player right clicks chicken:
    - mount <player>|<context.entity> <context.entity.location>
    - adjust <context.entity> has_ai:false
    - if !<context.entity.flag[RideAllTheChickens.WasRidden]||false> {
      - flag server RideAllTheChickens.Ridden:++
      - flag <context.entity> RideAllTheChickens.WasRidden
      }
    - wait 1t
    - actionbar "Press LSHIFT for TURBO SPEEEED"
    on player steers chicken:
    - if <context.jump> {
      - flag player RideAllTheChickens.ShouldJump:true
      }
    - if <player.flag[RideAllTheChickens.JumpCooldown]||0> > 0 {
      - flag player RideAllTheChickens.JumpCooldown:--
      }
    - flag player RideAllTheChickens.TickCooldown:++
    - if <player.flag[RideAllTheChickens.TickCooldown]||0> == 5 {
      - flag player RideAllTheChickens.TickCooldown:0
      }
      else {
      - queue clear
      }
    - define dividing <tern[<context.entity.is_on_ground>]:2||4>
    - if <context.dismount||false> {
      - define dividing <def[dividing].div[10]>
      - determine passively cancelled
      }
    - define velocity l@0,0,0
    - if <context.forward> > 0 {
      - define velocity <def[velocity].add[<player.location.direction.vector.mul[<context.forward.div[<def[dividing]>]>]>]>
      }
      else if <context.forward> < 0 {
      - define velocity <def[velocity].sub[<player.location.direction.vector.mul[<context.forward.div[<def[dividing].mul[-1]>]>]>]>
      }
    - if <context.sideways> > 0 {
      - define velocity <def[velocity].add[<player.location.direction.vector.rotate_around_y[<el@90.to_radians>].mul[<context.sideways.div[<def[dividing]>]>]>]>
      }
      else if <context.sideways> < 0 {
      - define velocity <def[velocity].add[<player.location.direction.vector.rotate_around_y[<el@-90.to_radians>].mul[<context.sideways.div[<def[dividing].mul[-1]>]>]>]>
      }
    - define velocity <def[velocity].sub[0,<def[velocity].y>,0]>
    - if <player.flag[RideAllTheChickens.ShouldJump]||false> {
      - if <context.entity.is_on_ground> && <player.flag[RideAllTheChickens.JumpCooldown]||0> == 0 {
        - define velocity <def[velocity].add[0,0.5,0]>
        - flag player RideAllTheChickens.JumpCooldown:10
        }
      - flag player RideAllTheChickens.ShouldJump:false
      }
    - define length <def[velocity].vector_length>
    - if <def[length]> > 0.01 {
      - look <context.entity> <context.entity.location.add[<def[velocity]>]>
      - adjust <context.entity> velocity:<context.entity.velocity.add[<def[velocity]>]>
      - flag server RideAllTheChickens.TotalDistance:+:<def[length]>
      }
    on system time hourly:
    - webget "http://stats.denizenscript.com/tracker?script=111&version=1&chickens_ridden=<server.flag[RideAllTheChickens.Ridden].round_down||0>&total_distance=<server.flag[RideAllTheChickens.TotalDistance].round_down||0>"
    - flag server RideAllTheChickens.Ridden:0
    - flag server RideAllTheChickens.TotalDistance:0