Date: 2017/05/20 22:20:21 UTC-07: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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
on entity explosion primes:
- determine passively cancelled
- if <context.entity.entity_type.contains_text[TNT]> && <context.entity.has_flag[id]> {
- define player <context.entity.flag[id]>
- flag server explode:<def[player]>
- explode power:<s@Config.yaml_key[classvariables.Demoman.tntpower]> <context.entity.location>
- flag server explode:!
}
on player clicks with DemomanFirework:
- if <queue.list.filter[script.name.is[==].to[Ingame]].is_empty> {
- determine cancelled
}
- shoot primed_tnt[fuse_ticks=<s@Config.yaml_key[classvariables.Demoman.tntfuse]>] o:<player> speed:<s@Config.yaml_key[classvariables.Demoman.tntspeed]> save:tnt
- flag <entry[tnt].shot_entities.get[1]> id:<player>
- take i@DemomanFirework quantity:1 from:<player.inventory>
on player clicks with DemomanMIRV:
- if <queue.list.filter[script.name.is[==].to[Ingame]].is_empty> {
- determine cancelled
}
- shoot small_fireball o:<player> gravity:0 height:0 speed:<s@Config.yaml_key[classvariables.Demoman.MIRVFireballVelocity]> script:MIRV save:fireball
- playsound <player.location> sound:ENTITY_GHAST_SHOOT volume:2 pitch:0.5
- flag <entry[fireball].shot_entities.get[1]> id:<player>
- take i@DemomanMIRV quantity:1 from:<player.inventory>
MIRV:
type: task
debug: true
script:
- define player <def[last_entity].flag[id]>
- ^repeat 8:
- spawn primed_tnt[fuse_ticks=<s@Config.yaml_key[classvariables.Demoman.tntfuse]>;velocity=<s@Config.yaml_key[classvariables.Demoman.MIRVVelocities.<def[value]>].as_location.mul[<s@Config.yaml_key[classvariables.Demoman.MIRVTNTSpeed]>]>] <def[location]> save:<def[player]>
- flag <entry[<def[player]>].spawned_entities.get[1]> id:<def[player]>
on entity explosion primes:
- determine passively cancelled
- if <context.entity.entity_type.contains_text[TNT]> && <context.entity.has_flag[id]> {
- define player <context.entity.flag[id]>
- flag server explode:<def[player]>
- explode power:<s@Config.yaml_key[classvariables.Demoman.tntpower]> <context.entity.location>
- flag server explode:!
}
on player damaged:
- if <queue.list.filter[script.name.is[==].to[Ingame]].is_empty> {
- determine cancelled
}
- if <context.entity.has_flag[respawn]> {
- determine passively cancelled
- narrate "<&c>This player is invincible after respawning!" targets:<context.damager>
- queue clear
}
- if <context.damager.matches[null]> && !<context.cause.matches[block_explosion]> {
- queue clear
}
- if <context.cause> == block_explosion {
- flag <context.entity> pvp:<server.flag[explode].as_player||null> duration:7s
- flag <server.flag[explode].as_player> pvp:<context.entity> duration:7s
- queue clear
}
- if <context.damager.entity_type> == PLAYER {
- flag <context.entity> pvp:<context.damager> duration:7s
- flag <context.damager> pvp:<context.entity> duration:7s
- queue clear
}
- flag <context.entity> pvp:<context.damager.flag[id]> duration:7s
- flag <context.damager.flag[id].as_player> pvp:<context.entity> duration:7s
on player killed:
- if <queue.list.filter[script.name.is[==].to[Ingame]].is_empty> {
- determine cancelled
}
- determine passively cancelled
- adjust <player> fall_distance:0
- teleport <player> <s@Config.yaml_key[spawns.<server.flag[spawns].as_list.find[<player>]>]>
- heal <player>
- ^inject s@Durability instantly
- if <player.has_flag[pvp]> {
- define enemy <player.flag[pvp].as_player>
- ^inject s@DeathMessage instantly
- flag <def[enemy]> alltimekills:+:1
- repeat 3 {
- if <s@Config.yaml_key[classunlock.Swordsman.<def[value]>].is[EQUALS].to[<def[enemy].flag[alltimekills]>]> {
- narrate "<&b><&l>You<&sq>ve just unlocked the <&3><&l>Swordsman Level <def[value]> <&b><&l>class!" targets:<def[enemy]>
}
}
- flag <def[enemy]> kills:+:1
- flag <def[enemy]> xp:+:<s@Config.yaml_key[XPValues.kill]>
- actionbar targets:<def[enemy]> "<&a>+<s@Config.yaml_key[XPValues.kill]> XP"
- if <s@Config.list_keys[KillKitItems].contains[<def[enemy].flag[kills]>]> {
- define items <s@Config.yaml_key[KillKitItems.<def[enemy].flag[kills]>.item].as_list>
- give <def[items].get[<util.random.int[1].to[<def[items].size>]>]> quantity:<util.random.int[<s@Config.yaml_key[KillKitItems.<def[enemy].flag[kills]>.minq]>].to[<s@Config.yaml_key[KillKitItems.<def[enemy].flag[kills]>.maxq]>]> to:<def[enemy].inventory>
}
}
else {
- announce "<s@Config.yaml_key[suicidemessages.<context.cause>.<util.random.int[1].to[<s@Config.list_keys[deathmessages.<context.cause>].size>]>]>"
}
- flag player alltimedeaths:+:1
- flag player solodeaths:+:1
- flag player respawn duration:<s@Config.yaml_key[respawninvincibility]>