Date: 2017/11/17 09:20:05 UTC-08:00
Type: Denizen Script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
on player clicks with BlackHoleCannon:
- determine passively cancelled
- if <player.has_flag[blackholecannon]> {
- narrate "<&c>This weapon is on cooldown!"
- queue clear
}
- define points <player.location.points_between[<player.location.add[<player.eye_location.direction.vector.mul[20]>]>].distance[0.4]>
- define cleanuplist li@
- foreach <def[points]>:
- define currentpoint <def[value]>
- playsound <def[currentpoint]> sound:entity_elder_guardian_ambient volume:0.7 pitch:0.5
- 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:50 realoffset:0.7
- foreach <def[currentpoint].find.players.within[5].exclude[<player>]>:
- flag <def[value]> sucked.<player>
- foreach <def[currentpoint].find.blocks.within[4].filter[material.contains_any[air|bedrock|quartz_block|quartz_ore].not]>:
- define block <def[value].material.id>,<def[value].material.data>
- define cleanuplist <def[cleanuplist].include[<def[value]>/<def[block]>]>
- modifyblock <def[value]> air no_physics
- run s@BlackHoleShoot d:<def[block]>|<def[value]>|<def[currentpoint]> instantly
- shoot falling_block,<def[block]> o:<def[value]> d:<def[currentpoint]> speed:0.5 save:block
- ^remove <entry[block].shot_entities.get[1]>
- remove <def[currentpoint].find.entities[dropped_item].within[7]>:
- if <def[loop_index].mod[5].is[==].to[0]> {
- foreach <server.get_online_players_flagged[sucked.<player>].exclude[<player>]> {
- shoot <def[value]> d:<def[currentpoint]> speed:1 no_rotate
}
}
- wait 1t
- foreach <server.get_online_players_flagged[sucked.<player>]>:
- flag <def[value]> pvp:<player> duration:7s
- flag <player> pvp:<def[value]> duration:7s
- hurt 10 <def[value]>
- flag <def[value]> sucked:!
- define cleanuplist <def[cleanuplist].deduplicate>
- wait 15s
- foreach <def[cleanuplist]>:
- modifyblock <def[cleanuplist].get_sub_items[1].get[<def[loop_index]>]> <def[cleanuplist].get_sub_items[2].get[<def[loop_index]>]> no_physics
- playsound <def[cleanuplist].get_sub_items[1].get[<def[loop_index]>]> sound:entity_chicken_egg volume:0.1
- if <def[loop_index].mod[7]> == 0 {
- wait 1t
}