Spell.dbc/procFlags: Difference between revisions

From wowdev
Jump to navigation Jump to search
(Format Update, Added Master table w/ other related info. Todo:Format/Page)
No edit summary
Line 6: Line 6:
! Flag !! Attribute String !! Bitmask !! Comments
! Flag !! Attribute String !! Bitmask !! Comments
|-
|-
| 1 || PROC_FLAG_NONE || 0x00000000 || - N/A
| 0 || PROC_FLAG_NONE || 0x00000000 || - N/A
|-
|-
| 1 || PROC_FLAG_KILLED || 0x00000001 || - 00 Killed by aggressor - not sure about this flag.
| 1 || PROC_FLAG_HEARTBEAT || 0x00000001 || - 00 Occurs when a spell "heartbeat" checks to see if the aura breaks, used in spells with that attribute at 25/50/75% duration to see if the spell breaks based on resistances.
|-
|-
| 2 || PROC_FLAG_KILL || 0x00000002 || - 01 Kill target (in most cases need XP/Honor reward).
| 2 || PROC_FLAG_KILL || 0x00000002 || - 01 Kill target (in most cases need XP/Honor reward).

Revision as of 20:54, 23 May 2023

This information is located in the source file of "..src\server\game\Spell\SpellMgr.h".

Version - 3.3.5.12340 - ProcFlags (Wrath)

Flag Attribute String Bitmask Comments
0 PROC_FLAG_NONE 0x00000000 - N/A
1 PROC_FLAG_HEARTBEAT 0x00000001 - 00 Occurs when a spell "heartbeat" checks to see if the aura breaks, used in spells with that attribute at 25/50/75% duration to see if the spell breaks based on resistances.
2 PROC_FLAG_KILL 0x00000002 - 01 Kill target (in most cases need XP/Honor reward).
4 PROC_FLAG_DONE_MELEE_AUTO_ATTACK 0x00000004 - 02 Done melee auto attack.
8 PROC_FLAG_TAKEN_MELEE_AUTO_ATTACK 0x00000008 - 03 Taken melee auto attack.
16 PROC_FLAG_DONE_SPELL_MELEE_DMG_CLASS 0x00000010 - 04 Done attack by Spell that has dmg class melee.
32 PROC_FLAG_TAKEN_SPELL_MELEE_DMG_CLASS 0x00000020 - 05 Taken attack by Spell that has dmg class melee.
64 PROC_FLAG_DONE_RANGED_AUTO_ATTACK 0x00000040 - 06 Done ranged auto attack.
128 PROC_FLAG_TAKEN_RANGED_AUTO_ATTACK 0x00000080 - 07 Taken ranged auto attack.
256 PROC_FLAG_DONE_SPELL_RANGED_DMG_CLASS 0x00000100 - 08 Done attack by Spell that has dmg class ranged.
512 PROC_FLAG_TAKEN_SPELL_RANGED_DMG_CLASS 0x00000200 - 09 Taken attack by Spell that has dmg class ranged.
1,024 PROC_FLAG_DONE_SPELL_NONE_DMG_CLASS_POS 0x00000400 - 10 Done positive spell that has dmg class none.
2,048 PROC_FLAG_TAKEN_SPELL_NONE_DMG_CLASS_POS 0x00000800 - 11 Taken positive spell that has dmg class none.
4,096 PROC_FLAG_DONE_SPELL_NONE_DMG_CLASS_NEG 0x00001000 - 12 Done negative spell that has dmg class none.
8,192 PROC_FLAG_TAKEN_SPELL_NONE_DMG_CLASS_NEG 0x00002000 - 13 Taken negative spell that has dmg class none.
16,384 PROC_FLAG_DONE_SPELL_MAGIC_DMG_CLASS_POS 0x00004000 - 14 Done positive spell that has dmg class magic.
32,768 PROC_FLAG_TAKEN_SPELL_MAGIC_DMG_CLASS_POS 0x00008000 - 15 Taken positive spell that has dmg class magic.
65,536 PROC_FLAG_DONE_SPELL_MAGIC_DMG_CLASS_NEG 0x00010000 - 16 Done negative spell that has dmg class magic.
131,072 PROC_FLAG_TAKEN_SPELL_MAGIC_DMG_CLASS_NEG 0x00020000 - 17 Taken negative spell that has dmg class magic.
262,144 PROC_FLAG_DONE_PERIODIC 0x00040000 - 18 Successful do periodic (damage / healing).
524,288 PROC_FLAG_TAKEN_PERIODIC 0x00080000 - 19 Taken spell periodic (damage / healing).
1,048,576 PROC_FLAG_TAKEN_DAMAGE 0x00100000 - 20 Taken any damage.
2,097,152 PROC_FLAG_DONE_TRAP_ACTIVATION 0x00200000 - 21 On trap activation (possibly needs name change to ON_GAMEOBJECT_CAST or USE).
4,194,304 PROC_FLAG_DONE_MAINHAND_ATTACK 0x00400000 - 22 Done main-hand melee attacks (spell and autoattack).
8,388,608 PROC_FLAG_DONE_OFFHAND_ATTACK 0x00800000 - 23 Done off-hand melee attacks (spell and autoattack).
16,777,216 PROC_FLAG_DEATH 0x01000000 - 24 Died in any way.


I will properly format/page the following information in the near future but want to go ahead and make it readily available for the time being. Some of this information may also very well deserve its own page with another title that more accurately reflects the data. Xiberion (talk) 11:09, 9 May 2023 (CEST)


Version - 10.1.0+ (Master Branch 5/9/23) - ProcFlags + ProcFlags2 (DF)

   PROC_FLAG_NONE                              = 0x00000000,
   PROC_FLAG_HEARTBEAT                         = 0x00000001,    // 00 Killed by aggressor - not sure about this flag
   PROC_FLAG_KILL                              = 0x00000002,    // 01 Kill target (in most cases need XP/Honor reward)
   PROC_FLAG_DEAL_MELEE_SWING                  = 0x00000004,    // 02 Done melee auto attack
   PROC_FLAG_TAKE_MELEE_SWING                  = 0x00000008,    // 03 Taken melee auto attack
   PROC_FLAG_DEAL_MELEE_ABILITY                = 0x00000010,    // 04 Done attack by Spell that has dmg class melee
   PROC_FLAG_TAKE_MELEE_ABILITY                = 0x00000020,    // 05 Taken attack by Spell that has dmg class melee
   PROC_FLAG_DEAL_RANGED_ATTACK                = 0x00000040,    // 06 Done ranged auto attack
   PROC_FLAG_TAKE_RANGED_ATTACK                = 0x00000080,    // 07 Taken ranged auto attack
   PROC_FLAG_DEAL_RANGED_ABILITY               = 0x00000100,    // 08 Done attack by Spell that has dmg class ranged
   PROC_FLAG_TAKE_RANGED_ABILITY               = 0x00000200,    // 09 Taken attack by Spell that has dmg class ranged
   PROC_FLAG_DEAL_HELPFUL_ABILITY              = 0x00000400,    // 10 Done positive spell that has dmg class none
   PROC_FLAG_TAKE_HELPFUL_ABILITY              = 0x00000800,    // 11 Taken positive spell that has dmg class none
   PROC_FLAG_DEAL_HARMFUL_ABILITY              = 0x00001000,    // 12 Done negative spell that has dmg class none
   PROC_FLAG_TAKE_HARMFUL_ABILITY              = 0x00002000,    // 13 Taken negative spell that has dmg class none
   PROC_FLAG_DEAL_HELPFUL_SPELL                = 0x00004000,    // 14 Done positive spell that has dmg class magic
   PROC_FLAG_TAKE_HELPFUL_SPELL                = 0x00008000,    // 15 Taken positive spell that has dmg class magic
   PROC_FLAG_DEAL_HARMFUL_SPELL                = 0x00010000,    // 16 Done negative spell that has dmg class magic
   PROC_FLAG_TAKE_HARMFUL_SPELL                = 0x00020000,    // 17 Taken negative spell that has dmg class magic
   PROC_FLAG_DEAL_HARMFUL_PERIODIC             = 0x00040000,    // 18 Successful do periodic (damage)
   PROC_FLAG_TAKE_HARMFUL_PERIODIC             = 0x00080000,    // 19 Taken spell periodic (damage)
   PROC_FLAG_TAKE_ANY_DAMAGE                   = 0x00100000,    // 20 Taken any damage
   PROC_FLAG_DEAL_HELPFUL_PERIODIC             = 0x00200000,    // 21 Successful do periodic (healing)
   PROC_FLAG_MAIN_HAND_WEAPON_SWING            = 0x00400000,    // 22 Done main-hand melee attacks (spell and autoattack)
   PROC_FLAG_OFF_HAND_WEAPON_SWING             = 0x00800000,    // 23 Done off-hand melee attacks (spell and autoattack)
   PROC_FLAG_DEATH                             = 0x01000000,    // 24 Died in any way
   PROC_FLAG_JUMP                              = 0x02000000,    // 25 Jumped
   PROC_FLAG_PROC_CLONE_SPELL                  = 0x04000000,    // 26 Proc Clone Spell
   PROC_FLAG_ENTER_COMBAT                      = 0x08000000,    // 27 Entered combat
   PROC_FLAG_ENCOUNTER_START                   = 0x10000000,    // 28 Encounter started
   PROC_FLAG_CAST_ENDED                        = 0x20000000,    // 29 Cast Ended
   PROC_FLAG_LOOTED                            = 0x40000000,    // 30 Looted (took from loot, not opened loot window)
   PROC_FLAG_TAKE_HELPFUL_PERIODIC             = 0x80000000,    // 31 Take Helpful Periodic

Begin Proc Flag 2 --

   PROC_FLAG_2_NONE                            = 0x00000000,
   PROC_FLAG_2_TARGET_DIES                     = 0x00000001,
   PROC_FLAG_2_KNOCKBACK                       = 0x00000002,
   PROC_FLAG_2_CAST_SUCCESSFUL                 = 0x00000004

-- End Proc Flag 2


Version - 10.1.0+ (Master Branch 5/9/23) - ProcFlagMasks (DF)

   AUTO_ATTACK_PROC_FLAG_MASK                  = PROC_FLAG_DEAL_MELEE_SWING | PROC_FLAG_TAKE_MELEE_SWING
                                               | PROC_FLAG_DEAL_RANGED_ATTACK | PROC_FLAG_TAKE_RANGED_ATTACK,
   MELEE_PROC_FLAG_MASK                        = PROC_FLAG_DEAL_MELEE_SWING | PROC_FLAG_TAKE_MELEE_SWING
                                               | PROC_FLAG_DEAL_MELEE_ABILITY | PROC_FLAG_TAKE_MELEE_ABILITY
                                               | PROC_FLAG_MAIN_HAND_WEAPON_SWING | PROC_FLAG_OFF_HAND_WEAPON_SWING,
   RANGED_PROC_FLAG_MASK                       = PROC_FLAG_DEAL_RANGED_ATTACK | PROC_FLAG_TAKE_RANGED_ATTACK
                                               | PROC_FLAG_DEAL_RANGED_ABILITY | PROC_FLAG_TAKE_RANGED_ABILITY,
   SPELL_PROC_FLAG_MASK                        = PROC_FLAG_DEAL_MELEE_ABILITY | PROC_FLAG_TAKE_MELEE_ABILITY
                                               | PROC_FLAG_DEAL_RANGED_ATTACK | PROC_FLAG_TAKE_RANGED_ATTACK
                                               | PROC_FLAG_DEAL_RANGED_ABILITY | PROC_FLAG_TAKE_RANGED_ABILITY
                                               | PROC_FLAG_DEAL_HELPFUL_ABILITY | PROC_FLAG_TAKE_HELPFUL_ABILITY
                                               | PROC_FLAG_DEAL_HARMFUL_ABILITY | PROC_FLAG_TAKE_HARMFUL_ABILITY
                                               | PROC_FLAG_DEAL_HELPFUL_SPELL | PROC_FLAG_TAKE_HELPFUL_SPELL
                                               | PROC_FLAG_DEAL_HARMFUL_SPELL | PROC_FLAG_TAKE_HARMFUL_SPELL
                                               | PROC_FLAG_DEAL_HARMFUL_PERIODIC | PROC_FLAG_TAKE_HARMFUL_PERIODIC
                                               | PROC_FLAG_DEAL_HELPFUL_PERIODIC | PROC_FLAG_TAKE_HELPFUL_PERIODIC,
   DONE_HIT_PROC_FLAG_MASK                     = PROC_FLAG_DEAL_MELEE_SWING | PROC_FLAG_DEAL_RANGED_ATTACK
                                               | PROC_FLAG_DEAL_MELEE_ABILITY | PROC_FLAG_DEAL_RANGED_ABILITY
                                               | PROC_FLAG_DEAL_HELPFUL_ABILITY | PROC_FLAG_DEAL_HARMFUL_ABILITY
                                               | PROC_FLAG_DEAL_HELPFUL_SPELL | PROC_FLAG_DEAL_HARMFUL_SPELL
                                               | PROC_FLAG_DEAL_HARMFUL_PERIODIC | PROC_FLAG_DEAL_HELPFUL_PERIODIC
                                               | PROC_FLAG_MAIN_HAND_WEAPON_SWING | PROC_FLAG_OFF_HAND_WEAPON_SWING,
   TAKEN_HIT_PROC_FLAG_MASK                    = PROC_FLAG_TAKE_MELEE_SWING | PROC_FLAG_TAKE_RANGED_ATTACK
                                               | PROC_FLAG_TAKE_MELEE_ABILITY | PROC_FLAG_TAKE_RANGED_ABILITY
                                               | PROC_FLAG_TAKE_HELPFUL_ABILITY | PROC_FLAG_TAKE_HARMFUL_ABILITY
                                               | PROC_FLAG_TAKE_HELPFUL_SPELL | PROC_FLAG_TAKE_HARMFUL_SPELL
                                               | PROC_FLAG_TAKE_HARMFUL_PERIODIC | PROC_FLAG_TAKE_HELPFUL_PERIODIC
                                               | PROC_FLAG_TAKE_ANY_DAMAGE,
   REQ_SPELL_PHASE_PROC_FLAG_MASK              = SPELL_PROC_FLAG_MASK & DONE_HIT_PROC_FLAG_MASK


Version - 10.1.0+ (Master Branch 5/9/23) - ProcFlagsSpellType (DF)

   PROC_SPELL_TYPE_NONE              = 0x0000000,
   PROC_SPELL_TYPE_DAMAGE            = 0x0000001, // damage type of spell
   PROC_SPELL_TYPE_HEAL              = 0x0000002, // heal type of spell
   PROC_SPELL_TYPE_NO_DMG_HEAL       = 0x0000004, // other spells
   PROC_SPELL_TYPE_MASK_ALL          = PROC_SPELL_TYPE_DAMAGE | PROC_SPELL_TYPE_HEAL | PROC_SPELL_TYPE_NO_DMG_HEAL


Version - 10.1.0+ (Master Branch 5/9/23) - ProcFlagsSpellPhase (DF)

   PROC_SPELL_PHASE_NONE             = 0x0000000,
   PROC_SPELL_PHASE_CAST             = 0x0000001,
   PROC_SPELL_PHASE_HIT              = 0x0000002,
   PROC_SPELL_PHASE_FINISH           = 0x0000004,
   PROC_SPELL_PHASE_MASK_ALL         = PROC_SPELL_PHASE_CAST | PROC_SPELL_PHASE_HIT | PROC_SPELL_PHASE_FINISH


Version - 10.1.0+ (Master Branch 5/9/23) - ProcFlagsHit (DF)

   PROC_HIT_NONE                = 0x0000000, // no value - PROC_HIT_NORMAL | PROC_HIT_CRITICAL for TAKEN proc type, PROC_HIT_NORMAL | PROC_HIT_CRITICAL | PROC_HIT_ABSORB for DONE
   PROC_HIT_NORMAL              = 0x0000001, // non-critical hits
   PROC_HIT_CRITICAL            = 0x0000002,
   PROC_HIT_MISS                = 0x0000004,
   PROC_HIT_FULL_RESIST         = 0x0000008,
   PROC_HIT_DODGE               = 0x0000010,
   PROC_HIT_PARRY               = 0x0000020,
   PROC_HIT_BLOCK               = 0x0000040, // partial or full block
   PROC_HIT_EVADE               = 0x0000080,
   PROC_HIT_IMMUNE              = 0x0000100,
   PROC_HIT_DEFLECT             = 0x0000200,
   PROC_HIT_ABSORB              = 0x0000400, // partial or full absorb
   PROC_HIT_REFLECT             = 0x0000800,
   PROC_HIT_INTERRUPT           = 0x0001000,
   PROC_HIT_FULL_BLOCK          = 0x0002000,
   PROC_HIT_MASK_ALL            = 0x0003FFF


Version - 10.1.0+ (Master Branch 5/9/23) - ProcAttributes (DF)

   PROC_ATTR_NONE                      = 0x0000000,
   PROC_ATTR_REQ_EXP_OR_HONOR          = 0x0000001, // requires proc target to give exp or honor for aura proc
   PROC_ATTR_TRIGGERED_CAN_PROC        = 0x0000002, // aura can proc even with triggered spells
   PROC_ATTR_REQ_POWER_COST            = 0x0000004, // requires triggering spell to have a power cost for aura proc
   PROC_ATTR_REQ_SPELLMOD              = 0x0000008, // requires triggering spell to be affected by proccing aura to drop charges
   PROC_ATTR_USE_STACKS_FOR_CHARGES    = 0x0000010, // consuming proc drops a stack from proccing aura instead of charge
   PROC_ATTR_REDUCE_PROC_60            = 0x0000080, // aura should have a reduced chance to proc if level of proc Actor > 60
   PROC_ATTR_CANT_PROC_FROM_ITEM_CAST  = 0x0000100, // do not allow aura proc if proc is caused by a spell casted by item