Paste #36335: Edit of P#36173 Ride The Chickens

Date: 2016/09/19 13:58:43 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
      }
    - flag player RideAllTheChickens.JumpCooldown:--
    - flag player RideAllTheChickens.TickCooldown:--
    - if <player.flag[RideAllTheChickens.TickCooldown]||0> > 0 {
      - flag player RideAllTheChickens.Forward:+:<context.forward>
      - flag player RideAllTheChickens.Sideways:+:<context.sideways>
      - if <context.dismount> {
        - determine cancelled
        }
      - queue clear
      }
    - flag player RideAllTheChickens.TickCooldown:5
    - define dividing <tern[<context.entity.is_on_ground>]:8||64>
    - if <context.dismount> {
      - define dividing <def[dividing].div[10]>
      - determine passively cancelled
      }
    - define forward <context.forward.add[<player.flag[RideAllTheChickens.Forward]||0>].div[<def[dividing]>]>
    - define sideways <context.sideways.add[<player.flag[RideAllTheChickens.Sideways]||0>].div[<def[dividing]>]>
    - define looking <player.location.direction.vector.sub[0,<player.location.direction.vector.y>,0]>
    - define velocity <def[looking].mul[<def[forward]>].add[<def[looking].rotate_around_y[<el@90.to_radians>].mul[<def[sideways]>]>]>
    - flag player RideAllTheChickens.Forward:0
    - flag player RideAllTheChickens.Sideways: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=2&chickens_ridden=<server.flag[RideAllTheChickens.Ridden].round||0>&total_distance=<server.flag[RideAllTheChickens.TotalDistance].round_down||0>"
    - flag server RideAllTheChickens.Ridden:0
    - flag server RideAllTheChickens.TotalDistance:0