Date: 2014/06/26 12:21:31 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
100
101
102
'Entity Killed':
type: world
events:
on validateScoreboard command:
- run ValidateScoreboard def:p@<player.name>
on server start:
- ^if <queue.exists[ManaLoop]> queue queue:queueID stop
- run RegenerateManaLoop id:ManaLoop
on artificialLoopStart command:
- ^if <queue.exists[ManaLoop]> queue queue:queueID stop
- run RegenerateManaLoop id:ManaLoop
on player join:
- run CalculateHealthBonus def:p@<player.name>
- run ValidateScoreboard def:p@<player.name>
- ^if <queue.exists[ManaLoop]> queue queue:queueID stop
- run RegenerateManaLoop id:ManaLoop
on player respawn:
- run CalculateHealthBonus def:p@<player.name>
on player death:
- run CalculateDeathPenalty def:p@<player.name>
on hb command:
- run CalculateHealthBonus def:p@<player.name>
- determine fulfilled
on player damages entity:
- define amt <context.damage>
- if <player.flag[Strength]> == null {
- flag Strength:5
}
- if <player.flag[Strength]> == 0 {
- flag Strength:5
}
- if <player.flag[Dexterity]> == null {
- flag Dexterity:5
}
- if <player.flag[Dexterity]> == 0 {
- flag Dexterity:5
}
- define lowDamagePercentage <player.flag[Strength].div[10].asint>
- define highDamagePercentage <player.flag[Strength].div[5].asint>
- define lowDamageAmount <def[lowDamagePercentage].mul[%amt%]>
- define highDamageAmount <def[highDamagePercentage].mul[%amt%]>
- if %lowDamageAmount% < 1 {
- define lowDamageAmount 1
}
- if %highDamageAmount% < 2 {
- define highDamageAmount 2
}
- define finalDamageAmount <util.random.int[<def[lowDamageAmount].asint>].to[<def[highDamageAmount].asint>]>
- define critRandom <util.random.int[1].to[100]>
- if <def[critRandom]> <= <player.flag[Dexterity].asint> {
- define crit true
}
- if <player.is_op> && <player.flag[adminDisableNotifications]> == null {
- narrate "Crit value was <def[CritRandom].asint>"
- narrate "Initial amount was %amt%."
- narrate "Random variance was <def[lowDamageAmount].asint> to <def[highDamageAmount].asint>, value was <def[finalDamageAmount]>."
- narrate "Entity has <context.entity.health>."
}
- if <def[crit]> {
- define finalDamageAmount <def[finalDamageAmount].mul[3]>
- playsound zombie_infect <player.location>
- playeffect <player.location> effect:potion_break amt:20
- if <player.flag[disableCritNotifications]> == null || <player.flag[disableCritNotifications]> == false {
- narrate "<red>You crit, dealing <def[finalDamageAmount].asint> damage!"
}
}
- determine <def[finalDamageAmount]>
on disableAdminNotifications command:
- if !<player.is_op> queue clear
- narrate "Setting notifications to <context.args.get[1]>."
- narrate "Any value but <italic>null <reset>and <italic>false <reset>will disable the notification for critical hits."
- flag adminDisableNotifications:<context.args.get[1]>
- determine fulfilled
on disableCritNotifications command:
- narrate "Setting notification value to <context.args.get[1]>"
- flag disableCritNotifications:<context.args.get[1]>
- narrate "Any value but <italic>null <reset>and <italic>false <reset>will disable the notification for critical hits."
- determine fulfilled
on entity death:
- if <context.damager> == null queue clear
- if true {
- define finalDamageAmount <def[finalDamageAmount].mul[2]>
- define ent <context.entity.entity_type>
- execute asserver "msg Ares513 %ent%, <context.damager.name>, <context.damager.entity_type>"
- if %ent% == ZOMBIE || %ent% == SPIDER || %ent% == SKELETON || %ent% == CREEPER {
- narrate "<player[<context.damager.name].flag[Exp]>"
- if <player[<context.damager.name>].flag[Exp]> == null {
- flag player player:<context.damager.name> Exp:0
}
- define level <proc[MobLevel].context[<context.entity.location>]>
- define multiplied <def[level].pow[2]>
- flag player player:<context.damager.name> Exp:<player[<context.damager.name>].flag[Exp].add[<def[multiplied].asint>"
- if <player.is_op> {
- narrate "<red>Player gained <def[multiplied]> experience." target:<context.damager.name>
- narrate "<red>Player has <player[<context.damager.name>].flag[Exp].asint> experience." target:<context.damager.name>
}
- if <proc[CanUserLevelUp].context[<player[<context.damager.name>].flag[Level].asint>]> {
- run LevelUp def:<context.damager.name>
}
}
}
- run ValidateScoreboard def:<context.damager.name>