“spell_proc_event” table¶
The spell_proc_event
table holds informations, under which
conditions spells will be triggered.
This applies to all spells that have a SPELL_AURA_PROC_TRIGGER_SPELL aura in their definition, and includes e.g. spells such as shaman shields.
Table structure¶
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
entry | mediumint(8) unsigned | NO | PRI | 0 | |
SchoolMask | tinyint(4) unsigned | NO | 0 | ||
SpellFamilyName | smallint(5) unsigned | NO | 0 | ||
SpellFamilyMask0 | bigint(40) unsigned | NO | 0 | ||
SpellFamilyMask1 | bigint(40) unsigned | NO | 0 | ||
SpellFamilyMask2 | bigint(40) unsigned | NO | 0 | ||
procFlags | int(10) unsigned | NO | 0 | ||
procEx | int(10) unsigned | NO | 0 | ||
ppmRate | float | NO | 0 | ||
CustomChance | float | NO | 0 | ||
Cooldown | int(10) unsigned | NO | 0 |
Fields¶
SchoolMask¶
This field contains a bit-mask that controls on what types of spell damages the proc can be triggered. The following table lists spell schools and matching bit masks.
School ID | Bit | School name |
---|---|---|
0 | 1 | Physical |
1 | 2 | Holy |
2 | 4 | Fire |
3 | 8 | Nature |
4 | 16 | Frost |
5 | 32 | Shadow |
6 | 64 | Arcane |
Note
Multiple school masks can be combined to have spell trigger on more than one spell school.
SpellFamilyName¶
A spell class identifier. The value has to match with a spell class
identifier from Spell.dbc, and references the
spellClassSet
field in that file.
SpellFamilyMask0¶
A spell class mask. The value has to match with a spell class mask from
Spell.dbc, and references the spellClassMask1
or spellClassMask2
field in that file.
SpellFamilyMask1¶
A spell class mask. The value has to match with a spell class mask from
Spell.dbc, and references the spellClassMask1
or spellClassMask2
field in that file.
SpellFamilyMask2¶
A spell class mask. The value has to match with a spell class mask from
Spell.dbc, and references the spellClassMask1
or spellClassMask2
field in that file.
procFlags¶
A bit-mask controlling what events trigger the spell. To combine possible events, add the proc bits together. The following table lists available events.
Event | Bit-mask | Description |
---|---|---|
PROC_FLAG_NONE | 0x00000000 | |
PROC_FLAG_KILLED | 0x00000001 | Killed by aggressor |
PROC_FLAG_KILL | 0x00000002 | Kill target (in most cases need XP/Honor reward, see Unit::IsTriggeredAtSpellProcEvent for additinoal check) |
PROC_FLAG_SUCCESSFUL_MELEE_HIT | 0x00000004 | Successful melee auto attack |
PROC_FLAG_TAKEN_MELEE_HIT | 0x00000008 | Taken damage from melee auto attack hit |
PROC_FLAG_SUCCESSFUL_MELEE_SPELL_HIT | 0x00000010 | Successful attack by Spell that use melee weapon |
PROC_FLAG_TAKEN_MELEE_SPELL_HIT | 0x00000020 | Taken damage by Spell that use melee weapon |
PROC_FLAG_SUCCESSFUL_RANGED_HIT | 0x00000040 | Successful Ranged auto attack |
PROC_FLAG_TAKEN_RANGED_HIT | 0x00000080 | Taken damage from ranged auto attack |
PROC_FLAG_SUCCESSFUL_RANGED_SPELL_HIT | 0x00000100 | Successful Ranged attack by Spell that use ranged weapon |
PROC_FLAG_TAKEN_RANGED_SPELL_HIT | 0x00000200 | Taken damage by Spell that use ranged weapon |
PROC_FLAG_SUCCESSFUL_POSITIVE_AOE_HIT | 0x00000400 | Successful AoE (not 100% sure unused) |
PROC_FLAG_TAKEN_POSITIVE_AOE | 0x00000800 | Taken AoE (not 100% sure unused) |
PROC_FLAG_SUCCESSFUL_AOE_SPELL_HIT | 0x00001000 | Successful AoE damage spell hit (not 100% sure unused) |
PROC_FLAG_TAKEN_AOE_SPELL_HIT | 0x00002000 | Taken AoE damage spell hit (not 100% sure unused) |
PROC_FLAG_SUCCESSFUL_POSITIVE_SPELL | 0x00004000 | Successful cast positive spell (by default only on healing) |
PROC_FLAG_TAKEN_POSITIVE_SPELL | 0x00008000 | Taken positive spell hit (by default only on healing) |
PROC_FLAG_SUCCESSFUL_NEGATIVE_SPELL_HIT | 0x00010000 | Successful negative spell cast (by default only on damage) |
PROC_FLAG_TAKEN_NEGATIVE_SPELL_HIT | 0x00020000 | Taken negative spell (by default only on damage) |
PROC_FLAG_ON_DO_PERIODIC | 0x00040000 | Successful do periodic (damage / healing, determined by PROC_EX_PERIODIC_POSITIVE or negative if no procEx) |
PROC_FLAG_ON_TAKE_PERIODIC | 0x00080000 | Taken spell periodic (damage / healing, determined by PROC_EX_PERIODIC_POSITIVE or negative if no procEx) |
PROC_FLAG_TAKEN_ANY_DAMAGE | 0x00100000 | Taken any damage |
PROC_FLAG_ON_TRAP_ACTIVATION | 0x00200000 | On trap activation |
PROC_FLAG_TAKEN_OFFHAND_HIT | 0x00400000 | Taken off-hand melee attacks(not used) |
PROC_FLAG_SUCCESSFUL_OFFHAND_HIT | 0x00800000 | Successful off-hand melee attacks |
procEx¶
A bit-mask controlling events for melee based triggers. The following tables contains available flags.
Name | Bit-mask | Description |
---|---|---|
PROC_EX_NONE | 0x0000000 | If none can trigger on Hit/Crit only (passive spells MUST defined by SpellFamily flag) |
PROC_EX_NORMAL_HIT | 0x0000001 | If set only from normal hit (only damage spells) |
PROC_EX_CRITICAL_HIT | 0x0000002 | |
PROC_EX_MISS | 0x0000004 | |
PROC_EX_RESIST | 0x0000008 | |
PROC_EX_DODGE | 0x0000010 | |
PROC_EX_PARRY | 0x0000020 | |
PROC_EX_BLOCK | 0x0000040 | |
PROC_EX_EVADE | 0x0000080 | |
PROC_EX_IMMUNE | 0x0000100 | |
PROC_EX_DEFLECT | 0x0000200 | |
PROC_EX_ABSORB | 0x0000400 | |
PROC_EX_REFLECT | 0x0000800 | |
PROC_EX_INTERRUPT | 0x0001000 | Melee hit result can be Interrupt (not used) |
PROC_EX_RESERVED1 | 0x0002000 | |
PROC_EX_RESERVED2 | 0x0004000 | |
PROC_EX_RESERVED3 | 0x0008000 | |
PROC_EX_EX_TRIGGER_ALWAYS | 0x0010000 | If set trigger always ( no matter another flags) used for drop charges |
PROC_EX_EX_ONE_TIME_TRIGGER | 0x0020000 | If set trigger always but only one time (not used) |
PROC_EX_PERIODIC_POSITIVE | 0x0040000 | For periodic heal |
ppmRate¶
This field controls the times per minute that the spell should proc. If zero, then the value is taken from the DBC entry.
CustomChance¶
Custom chance for triggering, given in percentage.
Cooldown¶
Define hidden cooldowns on the spell, given in seconds. Also known as the proc’s internal cooldown, or ICD.