blob: 5da7d42bee443b1fd34cdaeb23c3a90142be78c5 (
plain)
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
|
# spell_proc_event
[<-Back-to:World](database-world.md)
**The \`spell_proc_event\` table**
**Structure**
| Field | Type | Attribute | Key | Null | Default | Extra | Comment
:--- | :--- | :--- | :--- | :--- | :--- | :--- | :---
[Entry][1] | MEDIUMINT | SIGNED | PRI | | 0
[SchoolMask][2] | TINYINT | SIGNED | | | 0
[SpellFamilyName][3] | SMALLINT | UNSIGNED | | | 0
[SpellFamilyMask0][4] | INT | UNSIGNED | | | 0
[SpellFamilyMask1][5] | INT | UNSIGNED | | | 0
[SpellFamilyMask2][6] | INT | UNSIGNED | | | 0
[procFlags][7] | INT | UNSIGNED | | | 0
[procEx][8] | INT | UNSIGNED | | | 0
[procPhase][9] | INT | UNSIGNED | | | 0
[ppmRate][10] | FLOAT | SIGNED | | | 0
[CustomChance][11] | FLOAT | SIGNED | | | 0
[Cooldown][12] | INT | UNSIGNED | | | 0
[1]: #entry
[2]: #schoolmask
[3]: #spellfamilyname
[4]: #spellfamilymask0
[5]: #spellfamilymask1
[6]: #spellfamilymask2
[7]: #procflags
[8]: #procex
[9]: #procphase
[10]: #ppmrate
[11]: #customchance
[12]: #cooldown
**Description of the fields**
### Entry
The Spell ID that is capable to proc on an event. (Can use negative spellId for ranked spells)
### SchoolMask
This field contains a bitmask that controls on what types of spells the proc can be triggered. For example if an aura procs only when the unit it is casted upon is hit by shadow spells (spell 34914). To combine spell schools, just add the bit values.
Name | Bit | Hex | Comment
:--- | :--- | :--- | :---
SPELL_SCHOOL_NORMAL | 1 | 0x01 | Physical Damage
SPELL_SCHOOL_HOLY | 2 | 0x02 | Holy Damage
SPELL_FIRE | 4 | 0x04 | Fire Damage
SPEL_SCHOOL_NATURE | 8 | 0x08 | Nature Damage
SPELL_SCHOOL_FROST | 16 | 0x10 | Frost Damage
SPELL_SCHOOL_SHADOW | 32 | 0x20 | Shadow Damage
SPELL_SCHOOL_ARCANE | 64 | 0x40 | Arcane Damage
### SpellFamilyName
This fireld controls what family name spells can proc the triggered spell.
ID | Family Name
:--- | :---
0 | Generic
3 | Mage
4 | Warrior
5 | Warlock
6 | Priest
7 | Druid
8 | Rogue
9 | Hunter
10 | Paladin
11 | Shaman
13 | Potion
15 | Death Knight
### SpellFamilyMask0
This field controls what spells' family flags can proc the triggered spell (you can find SpellFamilyFlags of some spell, using SpellWork).
### SpellFamilyMask1
This field controls what spells' family flags can proc the triggered spell (you can find SpellFamilyFlags of some spell, using SpellWork).
### SpellFamilyMask2
This field controls what spells' family flags can proc the triggered spell (you can find SpellFamilyFlags of some spell, using SpellWork).
### procFlags
If non-zero, used to override the original spell ProcFlags in DBC.
A bitmask controlling what events trigger the spell. To combine possible events, add the proc bits together.
Event | Bit | Hex | Comment
:--- | :--- | :--- | :---
PROC_FLAG_NONE | 0 | 0x00000000 |
PROC_FLAG_KILLED | 1 | 0x00000001 | Killed by aggressor
PROC_FLAG_KILL | 2 | 0x00000002 | Kill that yields experience or honor
PROC_FLAG_DONE_MELEE_AUTO_ATTACK | 4 | 0x00000004 | Successful melee attack hit
PROC_FLAG_TAKEN_MELEE_AUTO_ATTACK | 8 | 0x00000008 | Damage taken from melee hit
PROC_FLAG_DONE_SPELL_MELEE_DMG_CLASS | 16 | 0x00000010 | Successful attack by a spell that use a melee weapon
PROC_FLAG_TAKEN_SPELL_MELEE_DMG_CLASS | 32 | 0x00000020 | Damage taken from a spell that use a melee weapon
PROC_FLAG_DONE_RANGED_AUTO_ATTACK | 64 | 0x00000040 | Successful ranged attack hit
PROC_FLAG_TAKEN_RANGED_AUTO_ATTACK | 128 | 0x00000080 | Damage taken from ranged attack hit
PROC_FLAG_DONE_SPELL_RANGED_DMG_CLASS | 256 | 0x00000100 | Successful ranged attack by spells that use a ranged weapon
PROC_FLAG_TAKEN_SPELL_RANGED_DMG_CLASS | 512 | 0x00000200 | Damage taken from spells that use a ranged weapon
PROC_FLAG_DONE_SPELL_NONE_DMG_CLASS_POS | 1024 | 0x00000400 | Done positive spell that has dmg class none
PROC_FLAG_TAKEN_SPELL_NONE_DMG_CLASS_POS | 2048 | 0x00000800 | Taken positive spell that has dmg class none
PROC_FLAG_DONE_SPELL_NONE_DMG_CLASS_NEG | 4096 | 0x00001000 | Done negative spell that has dmg class none
PROC_FLAG_TAKEN_SPELL_NONE_DMG_CLASS_NEG | 8192 | 0x00002000 | Taken negative spell that has dmg class none
PROC_FLAG_DONE_SPELL_MAGIC_DMG_CLASS_POS | 16384 | 0x00004000 | Done positive spell that has dmg class magic
PROC_FLAG_TAKEN_SPELL_MAGIC_DMG_CLASS_POS | 32768 | 0x00008000 | Taken positive spell that has dmg class magic
PROC_FLAG_DONE_SPELL_MAGIC_DMG_CLASS_NEG | 65536 | 0x00010000 | Done negative spell that has dmg class magic
PROC_FLAG_TAKEN_SPELL_MAGIC_DMG_CLASS_NEG | 131072 | 0x00020000 | Taken negative spell that has dmg class magic
PROC_FLAG_DONE_PERIODIC | 262144 | 0x00040000 | Successful done periodic (default: Negative ; For positive add PROC_EX_PERIODIC_POSITIVE(Not Implemented))
PROC_FLAG_TAKEN_PERIODIC | 524288 | 0x00080000 | Successful done periodic (default: Negative ; For positive add PROC_EX_PERIODIC_POSITIVE(Not Implemented))
PROC_FLAG_TAKEN_DAMAGE | 1048576 | 0x00100000 | Taken any damage
PROC_FLAG_DONE_TRAP_ACTIVATION | 2097152 | 0x00200000 | On trap activation
PROC_FLAG_DONE_MAINHAND_ATTACK | 4194304 | 0x00400000 | Done main-hand melee attacks (spell and autoattack)
PROC_FLAG_DONE_OFFHAND_ATTACK | 8388608 | 0x00800000 | Done off-hand melee attacks (spell and autoattack)
PROC_FLAG_DEATH | 16777216 | 0x01000000 | Died in any way
### procEx
procEx | Bit | Hex | Comment
:--- | :--- | :--- | :---
PROC_EX_NONE | 0 | 0x0000000 | If none can tigger on Hit/Crit only (passive spells MUST defined by SpellFamily flag)
PROC_EX_NORMAL_HIT | 1 | 0x0000001 |
PROC_EX_CRITICAL_HIT | 2 | 0x0000002 |
PROC_EX_MISS | 4 | 0x0000004 |
PROC_EX_RESIST | 8 | 0x0000008 |
PROC_EX_DODGE | 16 | 0x0000010 |
PROC_EX_PARRY | 32 | 0x0000020 |
PROC_EX_BLOCK | 64 | 0x0000040 |
PROC_EX_EVADE | 128 | 0x0000080 |
PROC_EX_IMMUNE | 256 | 0x0000100 |
PROC_EX_DEFLECT | 512 | 0x0000200 |
PROC_EX_ABSORB | 1024 | 0x0000400 |
PROC_EX_REFLECT | 2048 | 0x0000800 |
PROC_EX_INTERRUPT | 4096 | 0x0001000 | Melee hit result can be Interrupt (not used)
PROC_EX_FULL_BLOCK | 8192 | 0x0002000 | Block all attack damage
PROC_EX_RESERVED2 | 16384 | 0x0004000 |
PROC_EX_NOT_ACTIVE_SPELL | 32768 | 0x0008000 | Spell mustn't do damage/heal to proc
PROC_EX_EX_TRIGGER_ALWAYS | 65536 | 0x0010000 | If set trigger always no matter of hit result
PROC_EX_EX_ONE_TIME_TRIGGER | 131072 | 0x0020000 | If set trigger always but only one time (not implemented yet)
PROC_EX_ONLY_ACTIVE_SPELL | 262144 | 0x0040000 | Spell has to do damage/heal to proc
PROC_EX_NO_OVERHEAL | 524288 | 0x0080000 | Proc if heal did some work
PROC_EX_NO_AURA_REFRESH | 1048576 | 0x0100000 | Proc if aura was not refreshed
### procPhase
A bitmask for matching phase of a spellcast on which proc occurs.
procPhase | Bit | Hex | Comment
:--- | :--- | :--- | :---
PROC_SPELL_PHASE_NONE | 0 | 0x0000000 |
PROC_SPELL_PHASE_CAST | 1 | 0x0000001 |
PROC_SPELL_PHASE_HIT | 2 | 0x0000002 |
PROC_SPELL_PHASE_FINISH | 4 | 0x0000004 |
### ppmRate
Proc per minute. If 0 the value will be taken from DBC.
ppmRate is a rate and therefore will not be guaranteed to prox X amount of times per minute. ppm is calculated by this formula
```
((WeaponSpeed * PPM) / 600.0f); // result is chance in percents (probability = Speed_in_sec * (PPM / 60))
```
### CustomChance
If non-zero, chance for spell to trigger.
### Cooldown
Internal Cooldown (ICD) in milliseconds.
|