Paste #42562: Untitled Paste

Date: 2017/06/11 19:50:42 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


on player clicks with BlackHoleCannon:
    - determine passively cancelled
    - if <player.has_flag[blackholecannon]> {
      - narrate "<&c>This weapon is on cooldown!"
      - queue clear
      }
    - define item <player.item_in_hand.scriptname||false>
    - define player <player>
    - playsound <player.location> sound:???????? volume:2 pitch:1.7
    - define points <player.location.points_between[<player.location.add[<player.eye_location.direction.vector.mul[20]>]>].distance[0.4]>
    - repeat <def[points].size.as_int>:
      - define currentpoint <def[points].get[<def[value]>]>
      - particleprojectile <def[currentpoint]> effect:red_dust vector:0,0,0 qty:0 data:1 offset:0.001,0.001,0.001 frequency:1 loops:1 realquantity:150 realoffset:2.0
      - run s@BlackHoleFlag d:<def[player]>|<def[currentpoint]>
      - if <def[value].mod[5]> == 0 {
        - foreach <server.list_online_players.filter[has_flag[sucked]]> {
          - if <def[value].flag[sucked].is[==].to[<def[player]>]> {
            - shoot <def[value]> d:<def[currentpoint]> speed:0.6 no_rotate
            }
          }
        - foreach <w@Garden.entities.filter[has_flag[blackhole]]> {
          - if <def[value].flag[blackhole].is[==].to[<def[player]>]> {
            - shoot <def[value]> d:<def[currentpoint]> speed:0.6 no_rotate
            }
          }
        }
      - wait 1t
    - foreach <server.list_online_players.filter[flag[sucked].is[==].to[<def[player]>]]>:
      - hurt 10 <def[value]>
      - flag <def[value]> sucked:!
    - wait 3s
    - foreach <server.list_notables[locations].filter[contains[<def[player]>]]>:
      - modifyblock <def[value]> <def[value].notable_name.after[m@].before[.]>
BlackHoleFlag:
  type: task
  debug: true
  speed: 0
  script:
  - foreach <def[2].find.players.within[5].filter[has_flag[sucked].not].filter[contains[<def[1]>].not]>:
    - flag <def[value]> sucked:<def[1]> 
  - foreach <def[2].find.blocks.within[2]>:
    - if <def[value].notable_name> == null && <def[value].material> != m@air {
      - note <def[value]> as:<def[value].material>.<def[1]>
      - shoot falling_block,<def[value].material.after[m@]> o:<def[value]> d:<def[2]> speed:0.6 save:block
      - flag <entry[block].shot_entities> blackhole:<def[1]>
      - modifyblock <def[value]> air
      }