Paste #52368: qwe

Date: 2019/02/14 13:26:42 UTC-08:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


Fire_Spell:
  type: task
  debug: false
  definitions: Player|PlayerTarget|Range
  script:
    - define StartPosition <def[Player].location.add[0,1,0]>

    - define FalsePositive <def[Player].eye_location.add[<player.location.direction.vector.mul[<def[Range].sub[2]>]>]>

    - define MiddleDiff <def[PlayerTarget].eye_location.y.sub[<def[PlayerTarget].location.y>].div[2]||null>
    - define IsObstructed <def[Player].location.cursor_on.points_between[<def[StartPosition]>].distance[1].size.is[LESS].than[<def[Range]>]>

    - define ObstructedPosition <def[Player].location.cursor_on>
    - define UnObstructedPosition <def[PlayerTarget].location.add[0,<def[MiddleDiff]>,0]||<def[FalsePositive]>>

    - define EndPosition <tern[<def[IsObstructed]>]:<def[ObstructedPosition]>||<def[UnObstructedPosition]>>

    - define string <def[StartPosition].points_between[<def[EndPosition]>].distance[0.02]>
    - define pitch <def[player].eye_location.pitch.add[90].to_radians>
    - define yaw <def[player].eye_location.yaw.mul[-1].to_radians>

    - foreach <def[string]>:
      - define vector <location[<def[loop_index].sin.div[1.5]>,0,<def[loop_index].cos.div[1.5]>]>
      - if <def[loop_index].mod[3]> = 1:
        - playeffect at:<def[value].add[<def[vector].rotate_around_x[<def[pitch]>].rotate_around_y[<def[yaw]>]>]> quantity:3 offset:0.01,0.01,0.01 visibility:50 effect:REDSTONE special_data:.3|255,<li@200|150|100.get[<def[loop_index].mod[4]>]>,0 data:0
      - if <def[loop_index].mod[100]> == 1:
        - wait 1t
      - if <def[loop_index].mod[15]> == 1:
        - playeffect at:<def[value]> effect:flame offset:0.2,0.2,0.2
      - playeffect at:<def[value]> offset:0.1,0.1,0.1 visibility:50 effect:REDSTONE special_data:.5|255,<li@200|150|100.get[<def[loop_index].mod[4]>]>,0 data:0