Tabla `spell_proc`
Esta tabla contiene informaci贸n sobre en qu茅 eventos (o procs) se activan ciertos hechizos. Todos los hechizos de esta tabla deben aplicar un aura SPELL_AURA_PROC_TRIGGER_SPELL (42). Cualquier entrada de esta tabla sobrescribir谩 la configuraci贸n de proc existente en la entrada DBC del hechizo.
Estructura
| Field | Type | Attributes | Key | Null | Default | Extra | Comment |
|---|---|---|---|---|---|---|---|
| SpellId | INT | SIGNED | PRI | NO | 0 | Unique | |
| SchoolMask | TINYINT | UNSIGNED | NO | 0 | |||
| SpellFamilyName | SMALLINT | UNSIGNED | NO | 0 | |||
| SpellFamilyMask0 | INT | UNSIGNED | NO | 0 | |||
| SpellFamilyMask1 | INT | UNSIGNED | NO | 0 | |||
| SpellFamilyMask2 | INT | UNSIGNED | NO | 0 | |||
| ProcFlags | INT | UNSIGNED | NO | 0 | |||
| SpellTypeMask | INT | UNSIGNED | NO | 0 | |||
| SpellPhaseMask | INT | UNSIGNED | NO | 0 | |||
| HitMask | INT | UNSIGNED | NO | 0 | |||
| AttributesMask | INT | UNSIGNED | NO | 0 | |||
| DisableEffectsMask | INT | UNSIGNED | NO | 0 | |||
| ProcsPerMinute | FLOAT | NO | 0 | ||||
| Chance | FLOAT | NO | 0 | ||||
| Cooldown | INT | UNSIGNED | NO | 0 | |||
| Charges | TINYINT | UNSIGNED | NO | 0 |
Descripci贸n de los campos
El ID del hechizo que es capaz de procear en un evento. (Puede usarse un spellId negativo para hechizos con rango)
Este campo contiene un bitmask que controla sobre qu茅 tipos de hechizos puede activarse el proc. Por ejemplo, si un aura procea solo cuando la unidad sobre la que se lanza es impactada por hechizos de sombra (hechizo 34914). Para combinar escuelas de hechizo, simplemente suma los valores de bit.
| School ID | Bit | Name |
|---|---|---|
| 0 | 1 | Physical |
| 1 | 2 | Holy |
| 2 | 4 | Fire |
| 3 | 8 | Nature |
| 4 | 16 | Frost |
| 5 | 32 | Shadow |
| 6 | 64 | Arcane |
Este campo controla qu茅 hechizos de un family name pueden procear el hechizo activado.
| 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 |
| 53 | Monk |
| 107 | Demon Hunter |
Este campo controla qu茅 family flags de hechizos pueden procear el hechizo activado.
campo-sin-descripci贸n|5
campo-sin-descripci贸n|6
Si es distinto de cero, se usa para sobrescribir los ProcFlags originales del hechizo en el DBC.
Un bitmask que controla qu茅 eventos activan el hechizo. Para combinar los eventos posibles, suma los bits de proc.
Ejemplo: 32+64=96 (PROC_FLAG_TAKEN_MELEE_SPELL_HIT + PROC_FLAG_SUCCESSFUL_RANGED_HIT)
| Event | Flag | Bit value | Comment |
|---|---|---|---|
| PROC_FLAG_NONE | 0 | 0x00000000 | |
| PROC_FLAG_KILLED | 1 | 0x00000001 | Matado por el agresor |
| PROC_FLAG_KILL_AND_GET_XP | 2 | 0x00000002 | Muerte que otorga experiencia u honor |
| PROC_FLAG_SUCCESSFUL_MELEE_HIT | 4 | 0x00000004 | Ataque cuerpo a cuerpo impactado con 茅xito |
| PROC_FLAG_TAKEN_MELEE_HIT | 8 | 0x00000008 | Da帽o recibido de un impacto cuerpo a cuerpo |
| PROC_FLAG_SUCCESSFUL_MELEE_SPELL_HIT | 16 | 0x00000010 | Ataque exitoso de hechizos que usan un arma cuerpo a cuerpo |
| PROC_FLAG_TAKEN_MELEE_SPELL_HIT | 32 | 0x00000020 | Da帽o recibido de hechizos que usan un arma cuerpo a cuerpo |
| PROC_FLAG_SUCCESSFUL_RANGED_HIT | 64 | 0x00000040 | Ataque a distancia impactado con 茅xito |
| PROC_FLAG_TAKEN_RANGED_HIT | 128 | 0x00000080 | Da帽o recibido de un impacto de ataque a distancia |
| PROC_FLAG_SUCCESSFUL_RANGED_SPELL_HIT | 256 | 0x00000100 | Ataque a distancia exitoso de hechizos que usan un arma a distancia |
| PROC_FLAG_TAKEN_RANGED_SPELL_HIT | 512 | 0x00000200 | Da帽o recibido de hechizos que usan un arma a distancia |
| PROC_FLAG_SUCCESSFUL_POSITIVE_AOE_HIT | 1024 | 0x00000400 | Hechizo de 谩rea impactado con 茅xito (no 100% seguro de si no se usa) |
| PROC_FLAG_TAKEN_POSITIVE_AOE | 2048 | 0x00000800 | Hechizo de 谩rea positivo recibido (no 100% seguro de si no se usa) |
| PROC_FLAG_SUCCESSFUL_AOE_SPELL_HIT | 4096 | 0x00001000 | Hechizo de da帽o en 谩rea impactado con 茅xito (no 100% seguro de si no se usa) |
| PROC_FLAG_TAKEN_AOE_SPELL_HIT | 8192 | 0x00002000 | Hechizo de da帽o en 谩rea recibido (no 100% seguro de si no se usa) |
| PROC_FLAG_SUCCESSFUL_POSITIVE_SPELL | 16384 | 0x00004000 | Hechizo positivo lanzado con 茅xito (por defecto solo en curaci贸n) |
| PROC_FLAG_TAKEN_POSITIVE_SPELL | 32768 | 0x00008000 | Hechizo positivo recibido (por defecto solo en curaci贸n) |
| PROC_FLAG_SUCCESSFUL_NEGATIVE_SPELL_HIT | 65536 | 0x00010000 | Hechizo negativo lanzado con 茅xito (por defecto solo en da帽o) |
| PROC_FLAG_TAKEN_NEGATIVE_SPELL_HIT | 131072 | 0x00020000 | Hechizo negativo recibido (por defecto solo en da帽o) |
| PROC_FLAG_DONE_PERIODIC | 262144 | 0x00040000 | Da帽o / curaci贸n peri贸dica hecha, determinado por los flags 14-17 |
| PROC_FLAG_TAKEN_PERIODIC | 524288 | 0x00080000 | Da帽o / curaci贸n peri贸dica recibida, determinado por los flags 14-17 |
| PROC_FLAG_TAKEN_ANY_DAMAGE | 1048576 | 0x00100000 | Cualquier da帽o recibido |
| PROC_FLAG_ON_TRAP_ACTIVATION | 2097152 | 0x00200000 | Al activar una trampa |
| PROC_FLAG_TAKEN_OFFHAND_HIT | 4194304 | 0x00400000 | Ataques cuerpo a cuerpo de mano secundaria recibidos (sin usar) |
| PROC_FLAG_SUCCESSFUL_OFFHAND_HIT | 8388608 | 0x00800000 | Ataques cuerpo a cuerpo de mano secundaria exitosos |
| PROC_FLAG_DEATH | 16777216 | 0x01000000 | Muerto de cualquier forma |
Se usa para elegir qu茅 tipos de hechizos pueden activar el proc; para combinar, simplemente suma los valores de bit.
| Event | Flag | Bit | Comment |
|---|---|---|---|
| PROC_SPELL_TYPE_NONE | 0 | 0x00000000 | |
| PROC_SPELL_TYPE_DAMAGE | 1 | 0x00000001 | solo hechizos de da帽o |
| PROC_SPELL_TYPE_HEAL | 2 | 0x00000002 | solo hechizos de curaci贸n |
| PROC_SPELL_TYPE_NO_DMG_HEAL | 4 | 0x00000004 | todos los dem谩s hechizos |
| PROC_SPELL_TYPE_MASK_ALL | 7 | 0x00000007 | Todas las m谩scaras combinadas |
En qu茅 fase puede el hechizo activar el proc. Normalmente se usa una de ellas a la vez, pero tambi茅n pueden combinarse.
| Event | Flag | Bit | Comment |
|---|---|---|---|
| PROC_SPELL_PHASE_NONE | 0 | 0x00000000 | |
| PROC_SPELL_PHASE_CAST | 1 | 0x00000001 | se activa cuando el hechizo acaba de terminar de lanzarse |
| PROC_SPELL_PHASE_HIT | 2 | 0x00000002 | se activa cuando el hechizo impacta a su objetivo |
| PROC_SPELL_PHASE_FINISH | 4 | 0x00000004 | se activa despu茅s de que el hechizo ha hecho todos sus efectos sobre todos los objetivos |
| PROC_SPELL_PHASE_MASK_ALL | 7 | 0x00000007 | Todas las m谩scaras combinadas |
Se usa para a帽adir condiciones especiales a los hechizos; algunos hechizos podr铆an activarse solo en golpes cr铆ticos, por ejemplo.
| Event | Flag | Bit | Comment |
|---|---|---|---|
| PROC_HIT_NONE | 0 | 0x00000000 | (especial, ver nota al pie) |
| PROC_HIT_NORMAL | 1 | 0x00000001 | solo golpes no cr铆ticos |
| PROC_HIT_CRITICAL | 2 | 0x00000002 | solo golpes cr铆ticos |
| PROC_HIT_MISS | 4 | 0x00000004 | autoexplicativo |
| PROC_HIT_FULL_RESIST | 8 | 0x00000008 | solo en resistencia total (sin parcial) |
| PROC_HIT_DODGE | 16 | 0x00000010 | autoexplicativo |
| PROC_HIT_PARRY | 32 | 0x00000020 | autoexplicativo |
| PROC_HIT_BLOCK | 64 | 0x00000040 | bloqueo parcial o total |
| PROC_HIT_EVADE | 128 | 0x00000080 | autoexplicativo |
| PROC_HIT_IMMUNE | 256 | 0x00000100 | autoexplicativo |
| PROC_HIT_DEFLECT | 512 | 0x00000200 | autoexplicativo |
| PROC_HIT_ABSORB | 1024 | 0x00000400 | absorci贸n parcial o total |
| PROC_HIT_REFLECT | 2048 | 0x00000800 | autoexplicativo |
| PROC_HIT_INTERRUPT | 4096 | 0x00001000 | (sin usar por ahora) |
| PROC_HIT_FULL_BLOCK | 8192 | 0x00002000 | solo en bloqueo total |
| PROC_HIT_MASK_ALL | 12287 | 0x00002FFF | Todas las m谩scaras combinadas |
PROC_HIT_NONE se activar谩 en:
A帽ade comportamiento especial al proc; el hechizo podr铆a activar el proc solo si se cumplen estas condiciones.
| Event | Flag | Bit | Comment |
|---|---|---|---|
| PROC_ATTR_REQ_EXP_OR_HONOR | 1 | 0x0000001 | requiere que el objetivo del proc d茅 exp u honor para que el aura procee |
| PROC_ATTR_TRIGGERED_CAN_PROC | 2 | 0x0000002 | el aura puede procear incluso con hechizos activados (triggered) |
| PROC_ATTR_REQ_MANA_COST | 4 | 0x0000004 | requiere que el hechizo activador tenga un coste de man谩 para que el aura procee |
| PROC_ATTR_REQ_SPELLMOD | 8 | 0x0000008 | requiere que el hechizo activador est茅 afectado por el aura que procea para gastar cargas |
| PROC_ATTR_USE_STACKS_FOR_CHARGES | 16 | 0x0000010 | el proc consumido quita una acumulaci贸n (stack) del aura que procea en lugar de una carga |
| PROC_ATTR_REDUCE_PROC_60 | 128 | 0x0000080 | el aura deber铆a tener una probabilidad reducida de procear si el nivel del actor del proc > 60 |
| PROC_ATTR_CANT_PROC_FROM_ITEM_CAST | 256 | 0x0000100 | no permite que el aura procee si el proc lo causa un hechizo lanzado por un objeto |
Bitmask para deshabilitar expl铆citamente que efectos de aura espec铆ficos activen el proc. Esto permite un control preciso sobre qu茅 efectos de un aura multi-efecto pueden procear.
| Effect | Flag | Comment |
|---|---|---|
| 0 | 1 | Deshabilita el efecto de proc de aura 0 |
| 1 | 2 | Deshabilita el efecto de proc de aura 1 |
| 2 | 4 | Deshabilita el efecto de proc de aura 2 |
Si es distinto de cero, este campo controla las veces por minuto que el hechizo deber铆a procear. No deber铆as establecer a la vez ProcsPerMinute y Chance; en ese caso ProcsPerMinute tiene prioridad.
Si es distinto de cero, probabilidad de que el hechizo se active. Si tanto ProcsPerMinute como Chance se dejan en cero, se toma ProcChance del DBC.
Define cooldowns ocultos en el hechizo, en milisegundos. Tambi茅n conocido como el cooldown interno del proc, o ICD.
El valor debe ser >=0. Si el valor no cumple la condici贸n, el SQL fallar谩 en spell_proc_chk_1.
Si es distinto de cero, sobrescribe la cantidad de cargas de aura disponibles para procear. Si no, este valor se toma del DBC.