*Redefine procflags:
PROC_FLAG_SUCCESSFUL_POSITIVE_MAGIC_SPELL = 0x00004000 PROC_FLAG_TAKEN_POSITIVE_MAGIC_SPELL = 0x00008000 PROC_FLAG_SUCCESSFUL_NEGATIVE_MAGIC_SPELL = 0x00010000 PROC_FLAG_TAKEN_NEGATIVE_MAGIC_SPELL = 0x00020000 *Add procEx flag: PROC_EX_NOT_ACTIVE_SPELL = 0x0008000 for spells which proc on spells not doing damage and not specified by familyflags. --HG-- branch : trunk
This commit is contained in:
@@ -782,7 +782,7 @@ INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `Spell
|
|||||||
( 27816, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Blessed Recovery (Rank 3)
|
( 27816, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Blessed Recovery (Rank 3)
|
||||||
( 28592, 0x10, 3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Winter's Chill (Rank 2)
|
( 28592, 0x10, 3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Winter's Chill (Rank 2)
|
||||||
( 28593, 0x10, 3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Winter's Chill (Rank 3)
|
( 28593, 0x10, 3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Winter's Chill (Rank 3)
|
||||||
( 28716, 0x00, 7, 0x00000010, 0x00000000, 0x00000000, 0x00044000, 0x00000000, 0, 0, 0), -- Rejuvenation
|
( 28716, 0x00, 7, 0x00000010, 0x00000000, 0x00000000, 0x00040000, 0x00000000, 0, 0, 0), -- Rejuvenation
|
||||||
( 28719, 0x00, 7, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Healing Touch
|
( 28719, 0x00, 7, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Healing Touch
|
||||||
( 28744, 0x00, 7, 0x00000040, 0x00000000, 0x00000000, 0x00044000, 0x00000000, 0, 0, 0), -- Regrowth
|
( 28744, 0x00, 7, 0x00000040, 0x00000000, 0x00000000, 0x00044000, 0x00000000, 0, 0, 0), -- Regrowth
|
||||||
( 28752, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Adrenaline Rush
|
( 28752, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Adrenaline Rush
|
||||||
@@ -856,15 +856,15 @@ INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `Spell
|
|||||||
( 31394, 0x20, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Mark of Shadow
|
( 31394, 0x20, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Mark of Shadow
|
||||||
( 31569, 0x00, 3, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Improved Blink (Rank 1)
|
( 31569, 0x00, 3, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Improved Blink (Rank 1)
|
||||||
( 31570, 0x00, 3, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Improved Blink (Rank 2)
|
( 31570, 0x00, 3, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Improved Blink (Rank 2)
|
||||||
( 31571, 0x00, 3, 0x00000000, 0x00000022, 0x00000000, 0x00000400, 0x00000000, 0, 0, 0), -- Arcane Potency (Rank 1)
|
( 31571, 0x00, 3, 0x00000000, 0x00000022, 0x00000000, 0x00004000, 0x00000000, 0, 0, 0), -- Arcane Potency (Rank 1)
|
||||||
( 31572, 0x00, 3, 0x00000000, 0x00000022, 0x00000000, 0x00000400, 0x00000000, 0, 0, 0), -- Arcane Potency (Rank 2)
|
( 31572, 0x00, 3, 0x00000000, 0x00000022, 0x00000000, 0x00004000, 0x00000000, 0, 0, 0), -- Arcane Potency (Rank 2)
|
||||||
( 31794, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0, 0, 0), -- Focused Mind
|
( 31794, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0, 0, 0), -- Focused Mind
|
||||||
( 31801, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 20, 0, 0), -- Seal of Vengeance
|
( 31801, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 20, 0, 0), -- Seal of Vengeance
|
||||||
( 31833, 0x00, 10, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Light's Grace (Rank 1)
|
( 31833, 0x00, 10, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Light's Grace (Rank 1)
|
||||||
( 31835, 0x00, 10, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Light's Grace (Rank 2)
|
( 31835, 0x00, 10, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Light's Grace (Rank 2)
|
||||||
( 31836, 0x00, 10, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Light's Grace (Rank 3)
|
( 31836, 0x00, 10, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Light's Grace (Rank 3)
|
||||||
( 31871, 0x00, 10, 0x00000010, 0x00000000, 0x00000000, 0x00000400, 0x00000000, 0, 0, 0), -- Divine Purpose (Rank 1)
|
( 31871, 0x00, 10, 0x00000010, 0x00000000, 0x00000000, 0x00004000, 0x00000000, 0, 0, 0), -- Divine Purpose (Rank 1)
|
||||||
( 31872, 0x00, 10, 0x00000010, 0x00000000, 0x00000000, 0x00000400, 0x00000000, 0, 0, 0), -- Divine Purpose (Rank 2)
|
( 31872, 0x00, 10, 0x00000010, 0x00000000, 0x00000000, 0x00004000, 0x00000000, 0, 0, 0), -- Divine Purpose (Rank 2)
|
||||||
( 31876, 0x00, 10, 0x00800000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Judgements of the Wise (Rank 1)
|
( 31876, 0x00, 10, 0x00800000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Judgements of the Wise (Rank 1)
|
||||||
( 31877, 0x00, 10, 0x00800000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Judgements of the Wise (Rank 2)
|
( 31877, 0x00, 10, 0x00800000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Judgements of the Wise (Rank 2)
|
||||||
( 31878, 0x00, 10, 0x00800000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Judgements of the Wise (Rank 3)
|
( 31878, 0x00, 10, 0x00800000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Judgements of the Wise (Rank 3)
|
||||||
@@ -886,7 +886,7 @@ INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `Spell
|
|||||||
( 32837, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0, 0, 45), -- Spell Focus Trigger
|
( 32837, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0, 0, 45), -- Spell Focus Trigger
|
||||||
( 32844, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 2, 0, 0), -- Lesser Heroism
|
( 32844, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 2, 0, 0), -- Lesser Heroism
|
||||||
( 32885, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Infuriate
|
( 32885, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Infuriate
|
||||||
( 33076, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x000A02A8, 0x00000000, 0, 0, 0), -- Prayer of Mending (Rank 1)
|
( 33076, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x000A22A8, 0x00000000, 0, 0, 0), -- Prayer of Mending (Rank 1)
|
||||||
( 33089, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0, 0, 0), -- Vigilance of the Colossus
|
( 33089, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0, 0, 0), -- Vigilance of the Colossus
|
||||||
( 33127, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 7, 0, 0), -- Seal of Command
|
( 33127, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 7, 0, 0), -- Seal of Command
|
||||||
( 33142, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Blessed Resilience (Rank 1)
|
( 33142, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Blessed Resilience (Rank 1)
|
||||||
@@ -912,7 +912,7 @@ INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `Spell
|
|||||||
( 33881, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Natural Perfection (Rank 1)
|
( 33881, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Natural Perfection (Rank 1)
|
||||||
( 33882, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Natural Perfection (Rank 2)
|
( 33882, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Natural Perfection (Rank 2)
|
||||||
( 33883, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Natural Perfection (Rank 3)
|
( 33883, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Natural Perfection (Rank 3)
|
||||||
( 33953, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00004000, 0x00000000, 0, 0, 45), -- Essence of Life
|
( 33953, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00044000, 0x00000000, 0, 0, 45), -- Essence of Life
|
||||||
( 34074, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0, 0, 0), -- Aspect of the Viper
|
( 34074, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0, 0, 0), -- Aspect of the Viper
|
||||||
( 34080, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000008, 0, 0, 0), -- Riposte Stance
|
( 34080, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000008, 0, 0, 0), -- Riposte Stance
|
||||||
( 34138, 0x00, 11, 0x00000080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Totem of the Third Wind
|
( 34138, 0x00, 11, 0x00000080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Totem of the Third Wind
|
||||||
@@ -1029,7 +1029,7 @@ INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `Spell
|
|||||||
( 41393, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000020, 0, 0, 0), -- Riposte
|
( 41393, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000020, 0, 0, 0), -- Riposte
|
||||||
( 41434, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 2, 0, 45), -- The Twin Blades of Azzinoth
|
( 41434, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 2, 0, 45), -- The Twin Blades of Azzinoth
|
||||||
( 41469, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 7, 0, 0), -- Seal of Command
|
( 41469, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 7, 0, 0), -- Seal of Command
|
||||||
( 41635, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x000A02A8, 0x00000000, 0, 0, 0), -- Prayer of Mending (Rank 1)
|
( 41635, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x000A22A8, 0x00000000, 0, 0, 0), -- Prayer of Mending (Rank 1)
|
||||||
( 41989, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.5, 0, 0), -- Fists of Fury
|
( 41989, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.5, 0, 0), -- Fists of Fury
|
||||||
( 42083, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 45), -- Fury of the Crashing Waves
|
( 42083, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 45), -- Fury of the Crashing Waves
|
||||||
( 42135, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 90), -- Lesser Rune of Warding
|
( 42135, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 90), -- Lesser Rune of Warding
|
||||||
@@ -1070,7 +1070,7 @@ INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `Spell
|
|||||||
( 44546, 0x00, 3, 0x020002A0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Brain Freeze (Rank 1)
|
( 44546, 0x00, 3, 0x020002A0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Brain Freeze (Rank 1)
|
||||||
( 44548, 0x00, 3, 0x020002A0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Brain Freeze (Rank 2)
|
( 44548, 0x00, 3, 0x020002A0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Brain Freeze (Rank 2)
|
||||||
( 44549, 0x00, 3, 0x020002A0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Brain Freeze (Rank 3)
|
( 44549, 0x00, 3, 0x020002A0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Brain Freeze (Rank 3)
|
||||||
( 44745, 0x00, 3, 0x00000000, 0x00000001, 0x00000000, 0x00000400, 0x00002000, 0, 0, 0), -- Shattered Barrier (Rank 1)
|
( 44745, 0x00, 3, 0x00000000, 0x00000001, 0x00000000, 0x00004000, 0x00002000, 0, 0, 0), -- Shattered Barrier (Rank 1)
|
||||||
( 44835, 0x00, 7, 0x00000000, 0x00000080, 0x00000000, 0x00000010, 0x00000000, 0, 0, 0), -- Maim Interrupt
|
( 44835, 0x00, 7, 0x00000000, 0x00000080, 0x00000000, 0x00000010, 0x00000000, 0, 0, 0), -- Maim Interrupt
|
||||||
( 45054, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 15), -- Augment Pain
|
( 45054, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 15), -- Augment Pain
|
||||||
( 45057, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 30), -- Evasive Maneuvers
|
( 45057, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 30), -- Evasive Maneuvers
|
||||||
@@ -1123,18 +1123,18 @@ INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `Spell
|
|||||||
( 47515, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Divine Aegis (Rank 3)
|
( 47515, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Divine Aegis (Rank 3)
|
||||||
( 47516, 0x00, 6, 0x00001800, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Grace (Rank 1)
|
( 47516, 0x00, 6, 0x00001800, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Grace (Rank 1)
|
||||||
( 47517, 0x00, 6, 0x00001800, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Grace (Rank 2)
|
( 47517, 0x00, 6, 0x00001800, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Grace (Rank 2)
|
||||||
( 47535, 0x00, 6, 0x00000001, 0x00000000, 0x00000000, 0x00000400, 0x00002000, 0, 0, 12), -- Rapture (Rank 1)
|
( 47535, 0x00, 6, 0x00000001, 0x00000000, 0x00000000, 0x00004000, 0x00002000, 0, 0, 12), -- Rapture (Rank 1)
|
||||||
( 47536, 0x00, 6, 0x00000001, 0x00000000, 0x00000000, 0x00000400, 0x00002000, 0, 0, 12), -- Rapture (Rank 2)
|
( 47536, 0x00, 6, 0x00000001, 0x00000000, 0x00000000, 0x00004000, 0x00002000, 0, 0, 12), -- Rapture (Rank 2)
|
||||||
( 47537, 0x00, 6, 0x00000001, 0x00000000, 0x00000000, 0x00000400, 0x00002000, 0, 0, 12), -- Rapture (Rank 3)
|
( 47537, 0x00, 6, 0x00000001, 0x00000000, 0x00000000, 0x00004000, 0x00002000, 0, 0, 12), -- Rapture (Rank 3)
|
||||||
( 47569, 0x00, 6, 0x00004000, 0x00000000, 0x00000000, 0x00000400, 0x00000000, 0, 50, 0), -- Improved Shadowform (Rank 1)
|
( 47569, 0x00, 6, 0x00004000, 0x00000000, 0x00000000, 0x00000400, 0x00000000, 0, 50, 0), -- Improved Shadowform (Rank 1)
|
||||||
( 47570, 0x00, 6, 0x00004000, 0x00000000, 0x00000000, 0x00000400, 0x00000000, 0, 100, 0), -- Improved Shadowform (Rank 2)
|
( 47570, 0x00, 6, 0x00004000, 0x00000000, 0x00000000, 0x00000400, 0x00000000, 0, 100, 0), -- Improved Shadowform (Rank 2)
|
||||||
( 47580, 0x00, 6, 0x00000000, 0x00000000, 0x00000040, 0x00000000, 0x00010000, 0, 0, 0), -- Pain and Suffering (Rank 1)
|
( 47580, 0x00, 6, 0x00000000, 0x00000000, 0x00000040, 0x00000000, 0x00010000, 0, 0, 0), -- Pain and Suffering (Rank 1)
|
||||||
( 47581, 0x00, 6, 0x00000000, 0x00000000, 0x00000040, 0x00000000, 0x00010000, 0, 0, 0), -- Pain and Suffering (Rank 2)
|
( 47581, 0x00, 6, 0x00000000, 0x00000000, 0x00000040, 0x00000000, 0x00010000, 0, 0, 0), -- Pain and Suffering (Rank 2)
|
||||||
( 47582, 0x00, 6, 0x00000000, 0x00000000, 0x00000040, 0x00000000, 0x00010000, 0, 0, 0), -- Pain and Suffering (Rank 3)
|
( 47582, 0x00, 6, 0x00000000, 0x00000000, 0x00000040, 0x00000000, 0x00010000, 0, 0, 0), -- Pain and Suffering (Rank 3)
|
||||||
( 48110, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x000A02A8, 0x00000000, 0, 0, 0), -- Prayer of Mending (Rank 2)
|
( 48110, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x000A22A8, 0x00000000, 0, 0, 0), -- Prayer of Mending (Rank 2)
|
||||||
( 48111, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x000A02A8, 0x00000000, 0, 0, 0), -- Prayer of Mending (Rank 3)
|
( 48111, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x000A22A8, 0x00000000, 0, 0, 0), -- Prayer of Mending (Rank 3)
|
||||||
( 48112, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x000A02A8, 0x00000000, 0, 0, 0), -- Prayer of Mending (Rank 2)
|
( 48112, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x000A22A8, 0x00000000, 0, 0, 0), -- Prayer of Mending (Rank 2)
|
||||||
( 48113, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x000A02A8, 0x00000000, 0, 0, 0), -- Prayer of Mending (Rank 3)
|
( 48113, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x000A22A8, 0x00000000, 0, 0, 0), -- Prayer of Mending (Rank 3)
|
||||||
( 48159, 0x00, 6, 0x00002000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Vampiric Touch (Rank 4)
|
( 48159, 0x00, 6, 0x00002000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Vampiric Touch (Rank 4)
|
||||||
( 48160, 0x00, 6, 0x00002000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Vampiric Touch (Rank 5)
|
( 48160, 0x00, 6, 0x00002000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Vampiric Touch (Rank 5)
|
||||||
( 48483, 0x00, 7, 0x00008800, 0x00000440, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Infected Wounds (Rank 1)
|
( 48483, 0x00, 7, 0x00008800, 0x00000440, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Infected Wounds (Rank 1)
|
||||||
@@ -1308,7 +1308,7 @@ INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `Spell
|
|||||||
( 54747, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0, 0, 0), -- Burning Determination (Rank 1)
|
( 54747, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0, 0, 0), -- Burning Determination (Rank 1)
|
||||||
( 54749, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0, 0, 0), -- Burning Determination (Rank 2)
|
( 54749, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0, 0, 0), -- Burning Determination (Rank 2)
|
||||||
( 54754, 0x00, 7, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Glyph of Rejuvenation
|
( 54754, 0x00, 7, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Glyph of Rejuvenation
|
||||||
( 54787, 0x00, 3, 0x00000000, 0x00000001, 0x00000000, 0x00000400, 0x00002000, 0, 0, 0), -- Shattered Barrier (Rank 2)
|
( 54787, 0x00, 3, 0x00000000, 0x00000001, 0x00000000, 0x00004000, 0x00002000, 0, 0, 0), -- Shattered Barrier (Rank 2)
|
||||||
( 54808, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 60), -- Sonic Shield
|
( 54808, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 60), -- Sonic Shield
|
||||||
( 54838, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 45), -- Purified Spirit
|
( 54838, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 45), -- Purified Spirit
|
||||||
( 54841, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 3), -- Thunder Capacitor
|
( 54841, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 3), -- Thunder Capacitor
|
||||||
@@ -1326,7 +1326,6 @@ INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `Spell
|
|||||||
( 55668, 0x00, 15, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Desecration (Rank 3)
|
( 55668, 0x00, 15, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Desecration (Rank 3)
|
||||||
( 55669, 0x00, 15, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Desecration (Rank 4)
|
( 55669, 0x00, 15, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Desecration (Rank 4)
|
||||||
( 55670, 0x00, 15, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Desecration (Rank 5)
|
( 55670, 0x00, 15, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Desecration (Rank 5)
|
||||||
( 55672, 0x00, 6, 0x00000001, 0x00000000, 0x00000000, 0x00004000, 0x00000000, 0, 0, 0), -- Glyph of Power Word: Shield
|
|
||||||
( 55677, 0x00, 6, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Glyph of Dispel Magic
|
( 55677, 0x00, 6, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Glyph of Dispel Magic
|
||||||
( 55680, 0x00, 6, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Glyph of Prayer of Healing
|
( 55680, 0x00, 6, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Glyph of Prayer of Healing
|
||||||
( 55689, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Glyph of Shadow
|
( 55689, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Glyph of Shadow
|
||||||
@@ -1340,8 +1339,8 @@ INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `Spell
|
|||||||
( 56344, 0x00, 9, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Lock and Load (Rank 3)
|
( 56344, 0x00, 9, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Lock and Load (Rank 3)
|
||||||
( 56355, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0, 0, 0), -- Titanium Shield Spike
|
( 56355, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0, 0, 0), -- Titanium Shield Spike
|
||||||
( 56364, 0x00, 3, 0x00000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Glyph of Remove Curse
|
( 56364, 0x00, 3, 0x00000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Glyph of Remove Curse
|
||||||
( 56372, 0x00, 3, 0x00000000, 0x00000080, 0x00000000, 0x00000400, 0x00000000, 0, 0, 0), -- Glyph of Ice Block
|
( 56372, 0x00, 3, 0x00000000, 0x00000080, 0x00000000, 0x00004000, 0x00000000, 0, 0, 0), -- Glyph of Ice Block
|
||||||
( 56374, 0x00, 3, 0x00000000, 0x00004000, 0x00000000, 0x00000400, 0x00000000, 0, 0, 0), -- Glyph of Icy Veins
|
( 56374, 0x00, 3, 0x00000000, 0x00004000, 0x00000000, 0x00004000, 0x00000000, 0, 0, 0), -- Glyph of Icy Veins
|
||||||
( 56451, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 3), -- Earth Shield
|
( 56451, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 3), -- Earth Shield
|
||||||
( 56611, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Wrecking Crew (Rank 2)
|
( 56611, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Wrecking Crew (Rank 2)
|
||||||
( 56612, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Wrecking Crew (Rank 3)
|
( 56612, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Wrecking Crew (Rank 3)
|
||||||
@@ -1430,7 +1429,7 @@ INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `Spell
|
|||||||
( 61324, 0x00, 10, 0x00000000, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Justice
|
( 61324, 0x00, 10, 0x00000000, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Justice
|
||||||
( 61345, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Nature's Grace
|
( 61345, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Nature's Grace
|
||||||
( 61346, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Nature's Grace
|
( 61346, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Nature's Grace
|
||||||
( 61356, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x000002A8, 0x00000002, 0, 0, 90), -- Invigorating Earthsiege Diamond Passive
|
( 61356, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 90), -- Invigorating Earthsiege Diamond Passive
|
||||||
( 61618, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 45), -- Tentacles
|
( 61618, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 45), -- Tentacles
|
||||||
( 61848, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0, 0, 0), -- Aspect of the Dragonhawk
|
( 61848, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0, 0, 0), -- Aspect of the Dragonhawk
|
||||||
( 62147, 0x00, 15, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Icy Touch Defense Increase
|
( 62147, 0x00, 15, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Icy Touch Defense Increase
|
||||||
|
|||||||
@@ -0,0 +1,26 @@
|
|||||||
|
DELETE FROM `spell_proc_event` WHERE `entry` IN (28716, 31571, 31572, 55672, 31871, 31872, 33076, 33953, 48110, 48111, 48112, 48113, 33076, 44745, 54787, 47535, 47536, 47537, 51483, 51485, 51486, 56372, 56374, 61356, 41635);
|
||||||
|
INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown`) VALUES
|
||||||
|
( 28716, 0x00, 7, 0x00000010, 0x00000000, 0x00000000, 0x00040000, 0x00000000, 0, 0, 0), -- Rejuvenation
|
||||||
|
( 31571, 0x00, 3, 0x00000000, 0x00000022, 0x00000000, 0x00004000, 0x00000000, 0, 0, 0), -- Arcane Potency (Rank 1)
|
||||||
|
( 31572, 0x00, 3, 0x00000000, 0x00000022, 0x00000000, 0x00004000, 0x00000000, 0, 0, 0), -- Arcane Potency (Rank 2)
|
||||||
|
( 31871, 0x00, 10, 0x00000010, 0x00000000, 0x00000000, 0x00004000, 0x00000000, 0, 0, 0), -- Divine Purpose (Rank 1)
|
||||||
|
( 31872, 0x00, 10, 0x00000010, 0x00000000, 0x00000000, 0x00004000, 0x00000000, 0, 0, 0), -- Divine Purpose (Rank 2)
|
||||||
|
( 33076, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x000A22A8, 0x00000000, 0, 0, 0), -- Prayer of Mending (Rank 1)
|
||||||
|
( 33953, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00044000, 0x00000000, 0, 0, 45), -- Essence of Life
|
||||||
|
( 48110, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x000A22A8, 0x00000000, 0, 0, 0), -- Prayer of Mending (Rank 2)
|
||||||
|
( 48111, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x000A22A8, 0x00000000, 0, 0, 0), -- Prayer of Mending (Rank 3)
|
||||||
|
( 48112, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x000A22A8, 0x00000000, 0, 0, 0), -- Prayer of Mending (Rank 2)
|
||||||
|
( 48113, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x000A22A8, 0x00000000, 0, 0, 0), -- Prayer of Mending (Rank 3)
|
||||||
|
( 41635, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x000A22A8, 0x00000000, 0, 0, 0), -- Prayer of Mending (Rank 1)
|
||||||
|
( 44745, 0x00, 3, 0x00000000, 0x00000001, 0x00000000, 0x00004000, 0x00002000, 0, 0, 0), -- Shattered Barrier (Rank 1)
|
||||||
|
( 54787, 0x00, 3, 0x00000000, 0x00000001, 0x00000000, 0x00004000, 0x00002000, 0, 0, 0), -- Shattered Barrier (Rank 2)
|
||||||
|
( 47535, 0x00, 6, 0x00000001, 0x00000000, 0x00000000, 0x00004000, 0x00002000, 0, 0, 12), -- Rapture (Rank 1)
|
||||||
|
( 47536, 0x00, 6, 0x00000001, 0x00000000, 0x00000000, 0x00004000, 0x00002000, 0, 0, 12), -- Rapture (Rank 2)
|
||||||
|
( 47537, 0x00, 6, 0x00000001, 0x00000000, 0x00000000, 0x00004000, 0x00002000, 0, 0, 12), -- Rapture (Rank 3)
|
||||||
|
(51483, 0x00000001, 11, 0x20000000, 0x00000000, 0x00000000, 0x00004000, 0x00000000, 0.000000, 0.000000, 0),
|
||||||
|
(51485, 0x00000001, 11, 0x20000000, 0x00000000, 0x00000000, 0x00004000, 0x00000000, 0.000000, 0.000000, 0),
|
||||||
|
(51486, 0x00000001, 11, 0x20000000, 0x00000000, 0x00000000, 0x00004000, 0x00000000, 0.000000, 0.000000, 0),
|
||||||
|
( 56372, 0x00, 3, 0x00000000, 0x00000080, 0x00000000, 0x00004000, 0x00000000, 0, 0, 0), -- Glyph of Ice Block
|
||||||
|
( 56374, 0x00, 3, 0x00000000, 0x00004000, 0x00000000, 0x00004000, 0x00000000, 0, 0, 0), -- Glyph of Icy Veins
|
||||||
|
( 61356, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 90); -- Invigorating Earthsiege Diamond Passive
|
||||||
|
|
||||||
+44
-37
@@ -1084,16 +1084,54 @@ void Spell::DoAllEffectOnTarget(TargetInfo *target)
|
|||||||
if( missInfo != SPELL_MISS_NONE && missInfo != SPELL_MISS_MISS)
|
if( missInfo != SPELL_MISS_NONE && missInfo != SPELL_MISS_MISS)
|
||||||
m_needComboPoints = false;
|
m_needComboPoints = false;
|
||||||
|
|
||||||
|
// Trigger info was not filled in spell::preparedatafortriggersystem - we do it now
|
||||||
|
if (canEffectTrigger && !procAttacker && !procVictim)
|
||||||
|
{
|
||||||
|
bool positive = true;
|
||||||
|
if (m_damage > 0)
|
||||||
|
positive = false;
|
||||||
|
else if (!m_healing)
|
||||||
|
{
|
||||||
|
for (uint8 i = 0; i< MAX_SPELL_EFFECTS; ++i)
|
||||||
|
// If at least one effect negative spell is negative hit
|
||||||
|
if (mask & (1<<i) && !IsPositiveEffect(m_spellInfo->Id, i))
|
||||||
|
{
|
||||||
|
positive = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
switch(m_spellInfo->DmgClass)
|
||||||
|
{
|
||||||
|
case SPELL_DAMAGE_CLASS_MAGIC:
|
||||||
|
if (positive)
|
||||||
|
{
|
||||||
|
procAttacker |= PROC_FLAG_SUCCESSFUL_POSITIVE_MAGIC_SPELL;
|
||||||
|
procVictim |= PROC_FLAG_TAKEN_POSITIVE_MAGIC_SPELL;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
procAttacker |= PROC_FLAG_SUCCESSFUL_NEGATIVE_MAGIC_SPELL;
|
||||||
|
procVictim |= PROC_FLAG_TAKEN_NEGATIVE_MAGIC_SPELL;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case SPELL_DAMAGE_CLASS_NONE:
|
||||||
|
if (positive)
|
||||||
|
{
|
||||||
|
procAttacker |= PROC_FLAG_SUCCESSFUL_POSITIVE_SPELL_HIT;
|
||||||
|
procVictim |= PROC_FLAG_TAKEN_POSITIVE_SPELL;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
procAttacker |= PROC_FLAG_SUCCESSFUL_NEGATIVE_SPELL_HIT;
|
||||||
|
procVictim |= PROC_FLAG_TAKEN_NEGATIVE_SPELL_HIT;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
// All calculated do it!
|
// All calculated do it!
|
||||||
// Do healing and triggers
|
// Do healing and triggers
|
||||||
if (m_healing > 0)
|
if (m_healing > 0)
|
||||||
{
|
{
|
||||||
// Trigger info was not filled in spell::preparedatafortriggersystem - we do it now
|
|
||||||
if (canEffectTrigger && !procAttacker && !procVictim)
|
|
||||||
{
|
|
||||||
procAttacker |= PROC_FLAG_SUCCESSFUL_HEALING_SPELL;
|
|
||||||
procVictim |= PROC_FLAG_TAKEN_HEALING_SPELL;
|
|
||||||
}
|
|
||||||
bool crit = caster->isSpellCrit(unitTarget, m_spellInfo, m_spellSchoolMask);
|
bool crit = caster->isSpellCrit(unitTarget, m_spellInfo, m_spellSchoolMask);
|
||||||
uint32 addhealth = m_healing;
|
uint32 addhealth = m_healing;
|
||||||
if (crit)
|
if (crit)
|
||||||
@@ -1117,13 +1155,6 @@ void Spell::DoAllEffectOnTarget(TargetInfo *target)
|
|||||||
// Do damage and triggers
|
// Do damage and triggers
|
||||||
else if (m_damage > 0)
|
else if (m_damage > 0)
|
||||||
{
|
{
|
||||||
// Trigger info was not filled in spell::preparedatafortriggersystem - we do it now
|
|
||||||
if (canEffectTrigger && !procAttacker && !procVictim)
|
|
||||||
{
|
|
||||||
procAttacker |= PROC_FLAG_SUCCESSFUL_DAMAGING_SPELL_HIT;
|
|
||||||
procVictim |= PROC_FLAG_TAKEN_DAMAGING_SPELL_HIT;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Fill base damage struct (unitTarget - is real spell target)
|
// Fill base damage struct (unitTarget - is real spell target)
|
||||||
SpellNonMeleeDamage damageInfo(caster, unitTarget, m_spellInfo->Id, m_spellSchoolMask);
|
SpellNonMeleeDamage damageInfo(caster, unitTarget, m_spellInfo->Id, m_spellSchoolMask);
|
||||||
|
|
||||||
@@ -1160,30 +1191,6 @@ void Spell::DoAllEffectOnTarget(TargetInfo *target)
|
|||||||
// Passive spell hits/misses or active spells only misses (only triggers)
|
// Passive spell hits/misses or active spells only misses (only triggers)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Trigger info was not filled in spell::preparedatafortriggersystem - we do it now
|
|
||||||
if (canEffectTrigger && !procAttacker && !procVictim)
|
|
||||||
{
|
|
||||||
// Check spell positivity on target
|
|
||||||
bool positive = true;
|
|
||||||
for (uint8 i = 0; i< MAX_SPELL_EFFECTS; ++i)
|
|
||||||
// If at least one effect negative spell is negative hit
|
|
||||||
if (mask & (1<<i) && !IsPositiveEffect(m_spellInfo->Id, i))
|
|
||||||
{
|
|
||||||
positive = false;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (positive)
|
|
||||||
{
|
|
||||||
procAttacker |= PROC_FLAG_SUCCESSFUL_POSITIVE_SPELL;
|
|
||||||
procVictim |= PROC_FLAG_TAKEN_POSITIVE_SPELL;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
procAttacker |= PROC_FLAG_SUCCESSFUL_NEGATIVE_SPELL_HIT;
|
|
||||||
procVictim |= PROC_FLAG_TAKEN_NEGATIVE_SPELL_HIT;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Fill base damage struct (unitTarget - is real spell target)
|
// Fill base damage struct (unitTarget - is real spell target)
|
||||||
SpellNonMeleeDamage damageInfo(caster, unitTarget, m_spellInfo->Id, m_spellSchoolMask);
|
SpellNonMeleeDamage damageInfo(caster, unitTarget, m_spellInfo->Id, m_spellSchoolMask);
|
||||||
procEx |= createProcExtendMask(&damageInfo, missInfo);
|
procEx |= createProcExtendMask(&damageInfo, missInfo);
|
||||||
|
|||||||
@@ -1264,13 +1264,13 @@ void Aura::_RemoveAura()
|
|||||||
uint32 ProcCaster, ProcVictim;
|
uint32 ProcCaster, ProcVictim;
|
||||||
if (IsPositiveSpell(GetId()))
|
if (IsPositiveSpell(GetId()))
|
||||||
{
|
{
|
||||||
ProcCaster = PROC_FLAG_SUCCESSFUL_POSITIVE_SPELL;
|
ProcCaster = PROC_FLAG_SUCCESSFUL_POSITIVE_MAGIC_SPELL | PROC_FLAG_SUCCESSFUL_POSITIVE_SPELL_HIT;
|
||||||
ProcVictim = PROC_FLAG_TAKEN_POSITIVE_SPELL;
|
ProcVictim = PROC_FLAG_TAKEN_POSITIVE_MAGIC_SPELL | PROC_FLAG_TAKEN_POSITIVE_SPELL;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ProcCaster = PROC_FLAG_SUCCESSFUL_NEGATIVE_SPELL_HIT;
|
ProcCaster = PROC_FLAG_SUCCESSFUL_NEGATIVE_MAGIC_SPELL | PROC_FLAG_SUCCESSFUL_NEGATIVE_SPELL_HIT;
|
||||||
ProcVictim = PROC_FLAG_TAKEN_NEGATIVE_SPELL_HIT;
|
ProcVictim = PROC_FLAG_TAKEN_NEGATIVE_MAGIC_SPELL | PROC_FLAG_TAKEN_NEGATIVE_SPELL_HIT;
|
||||||
}
|
}
|
||||||
caster->ProcDamageAndSpell(m_target,ProcCaster, ProcVictim, procEx, m_procDamage, BASE_ATTACK, m_spellProto);
|
caster->ProcDamageAndSpell(m_target,ProcCaster, ProcVictim, procEx, m_procDamage, BASE_ATTACK, m_spellProto);
|
||||||
}
|
}
|
||||||
|
|||||||
+13
-18
@@ -1273,17 +1273,6 @@ bool SpellMgr::IsSpellProcEventCanTriggeredBy(SpellProcEventEntry const* spellPr
|
|||||||
// No extra req need
|
// No extra req need
|
||||||
uint32 procEvent_procEx = PROC_EX_NONE;
|
uint32 procEvent_procEx = PROC_EX_NONE;
|
||||||
|
|
||||||
// Some of not damaging spells have on damage procflags
|
|
||||||
// And all of them are specified by spellfamilymask in proc entry
|
|
||||||
// so, lets allow non dmg spells to proc on dmg auras if they have correct spellfamily
|
|
||||||
if (spellProcEvent && spellProcEvent->spellFamilyMask)
|
|
||||||
{
|
|
||||||
if (EventProcFlag & PROC_FLAG_SUCCESSFUL_DAMAGING_SPELL_HIT && procFlags & PROC_FLAG_SUCCESSFUL_NEGATIVE_SPELL_HIT)
|
|
||||||
procFlags |= PROC_FLAG_SUCCESSFUL_DAMAGING_SPELL_HIT;
|
|
||||||
if (EventProcFlag & PROC_FLAG_SUCCESSFUL_HEALING_SPELL && procFlags & PROC_FLAG_SUCCESSFUL_POSITIVE_SPELL)
|
|
||||||
procFlags |= PROC_FLAG_SUCCESSFUL_HEALING_SPELL;
|
|
||||||
}
|
|
||||||
|
|
||||||
// check prockFlags for condition
|
// check prockFlags for condition
|
||||||
if((procFlags & EventProcFlag) == 0)
|
if((procFlags & EventProcFlag) == 0)
|
||||||
return false;
|
return false;
|
||||||
@@ -1303,24 +1292,24 @@ bool SpellMgr::IsSpellProcEventCanTriggeredBy(SpellProcEventEntry const* spellPr
|
|||||||
|
|
||||||
if (procFlags & PROC_FLAG_ON_DO_PERIODIC)
|
if (procFlags & PROC_FLAG_ON_DO_PERIODIC)
|
||||||
{
|
{
|
||||||
if (EventProcFlag & PROC_FLAG_SUCCESSFUL_DAMAGING_SPELL_HIT)
|
if (EventProcFlag & PROC_FLAG_SUCCESSFUL_NEGATIVE_MAGIC_SPELL)
|
||||||
{
|
{
|
||||||
if (!(procExtra & PROC_EX_INTERNAL_DOT))
|
if (!(procExtra & PROC_EX_INTERNAL_DOT))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
else if (EventProcFlag & PROC_FLAG_SUCCESSFUL_HEALING_SPELL
|
else if (EventProcFlag & PROC_FLAG_TAKEN_POSITIVE_MAGIC_SPELL
|
||||||
&& !(procExtra & PROC_EX_INTERNAL_HOT))
|
&& !(procExtra & PROC_EX_INTERNAL_HOT))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (procFlags & PROC_FLAG_ON_TAKE_PERIODIC)
|
if (procFlags & PROC_FLAG_ON_TAKE_PERIODIC)
|
||||||
{
|
{
|
||||||
if (EventProcFlag & PROC_FLAG_TAKEN_DAMAGING_SPELL_HIT)
|
if (EventProcFlag & PROC_FLAG_TAKEN_NEGATIVE_MAGIC_SPELL)
|
||||||
{
|
{
|
||||||
if (!(procExtra & PROC_EX_INTERNAL_DOT))
|
if (!(procExtra & PROC_EX_INTERNAL_DOT))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
else if (EventProcFlag & PROC_FLAG_TAKEN_HEALING_SPELL
|
else if (EventProcFlag & PROC_FLAG_TAKEN_POSITIVE_MAGIC_SPELL
|
||||||
&& !(procExtra & PROC_EX_INTERNAL_HOT))
|
&& !(procExtra & PROC_EX_INTERNAL_HOT))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -1370,19 +1359,25 @@ bool SpellMgr::IsSpellProcEventCanTriggeredBy(SpellProcEventEntry const* spellPr
|
|||||||
// Check for extra req (if none) and hit/crit
|
// Check for extra req (if none) and hit/crit
|
||||||
if (procEvent_procEx == PROC_EX_NONE)
|
if (procEvent_procEx == PROC_EX_NONE)
|
||||||
{
|
{
|
||||||
// No extra req, so can trigger only for hit/crit - spell has to be active or to have PROC_FLAG_TAKEN_NEGATIVE_SPELL_HIT
|
// No extra req, so can trigger only for hit/crit - spell has to be active
|
||||||
if((procExtra & (PROC_EX_NORMAL_HIT|PROC_EX_CRITICAL_HIT)) && (active || procFlags & PROC_FLAG_TAKEN_NEGATIVE_SPELL_HIT))
|
if((procExtra & (PROC_EX_NORMAL_HIT|PROC_EX_CRITICAL_HIT)) && active)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else // Passive spells hits here only if resist/reflect/immune/evade
|
else // Passive spells hits here only if resist/reflect/immune/evade
|
||||||
|
{
|
||||||
|
if (procExtra & AURA_SPELL_PROC_EX_MASK)
|
||||||
{
|
{
|
||||||
// Exist req for PROC_EX_EX_TRIGGER_ALWAYS
|
// Exist req for PROC_EX_EX_TRIGGER_ALWAYS
|
||||||
if ((procExtra & AURA_SPELL_PROC_EX_MASK) && (procEvent_procEx & PROC_EX_EX_TRIGGER_ALWAYS))
|
if (procEvent_procEx & PROC_EX_EX_TRIGGER_ALWAYS)
|
||||||
return true;
|
return true;
|
||||||
// Check Extra Requirement like (hit/crit/miss/resist/parry/dodge/block/immune/reflect/absorb and other)
|
// Check Extra Requirement like (hit/crit/miss/resist/parry/dodge/block/immune/reflect/absorb and other)
|
||||||
if (procEvent_procEx & procExtra)
|
if (procEvent_procEx & procExtra)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
// if spell marked as procing from not active spells it can proc from normal or critical hit
|
||||||
|
if (procEvent_procEx & PROC_EX_NOT_ACTIVE_SPELL && (procExtra & (PROC_EX_NORMAL_HIT|PROC_EX_CRITICAL_HIT)))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+13
-10
@@ -405,17 +405,17 @@ enum ProcFlags
|
|||||||
PROC_FLAG_SUCCESSFUL_RANGED_SPELL_HIT = 0x00000100, // 08 Successful Ranged attack by Spell that use ranged weapon
|
PROC_FLAG_SUCCESSFUL_RANGED_SPELL_HIT = 0x00000100, // 08 Successful Ranged attack by Spell that use ranged weapon
|
||||||
PROC_FLAG_TAKEN_RANGED_SPELL_HIT = 0x00000200, // 09 Taken damage by Spell that use ranged weapon
|
PROC_FLAG_TAKEN_RANGED_SPELL_HIT = 0x00000200, // 09 Taken damage by Spell that use ranged weapon
|
||||||
|
|
||||||
PROC_FLAG_SUCCESSFUL_POSITIVE_SPELL = 0x00000400, // 10 Successful Positive spell hit
|
PROC_FLAG_SUCCESSFUL_POSITIVE_SPELL_HIT = 0x00000400, // 10 Successful Positive spell hit
|
||||||
PROC_FLAG_TAKEN_POSITIVE_SPELL = 0x00000800, // 11 Taken Positive spell hit
|
PROC_FLAG_TAKEN_POSITIVE_SPELL = 0x00000800, // 11 Taken Positive spell hit
|
||||||
|
|
||||||
PROC_FLAG_SUCCESSFUL_NEGATIVE_SPELL_HIT = 0x00001000, // 12 Successful Negative spell hit
|
PROC_FLAG_SUCCESSFUL_NEGATIVE_SPELL_HIT = 0x00001000, // 12 Successful Negative spell hit
|
||||||
PROC_FLAG_TAKEN_NEGATIVE_SPELL_HIT = 0x00002000, // 13 Taken Negative spell hit
|
PROC_FLAG_TAKEN_NEGATIVE_SPELL_HIT = 0x00002000, // 13 Taken Negative spell hit
|
||||||
|
|
||||||
PROC_FLAG_SUCCESSFUL_HEALING_SPELL = 0x00004000, // 14 Successful Direct Heal spell hit
|
PROC_FLAG_SUCCESSFUL_POSITIVE_MAGIC_SPELL = 0x00004000, // 14 Successful Positive Magic spell hit
|
||||||
PROC_FLAG_TAKEN_HEALING_SPELL = 0x00008000, // 15 Taken Direct Heal spell hit
|
PROC_FLAG_TAKEN_POSITIVE_MAGIC_SPELL = 0x00008000, // 15 Taken Positive Magic spell hit
|
||||||
|
|
||||||
PROC_FLAG_SUCCESSFUL_DAMAGING_SPELL_HIT = 0x00010000, // 16 Successful Direct Damage spell hit
|
PROC_FLAG_SUCCESSFUL_NEGATIVE_MAGIC_SPELL = 0x00010000, // 16 Successful Negative Magic spell hit
|
||||||
PROC_FLAG_TAKEN_DAMAGING_SPELL_HIT = 0x00020000, // 17 Taken Direct Damage spell hit
|
PROC_FLAG_TAKEN_NEGATIVE_MAGIC_SPELL = 0x00020000, // 17 Taken Negative Magic spell hit
|
||||||
|
|
||||||
PROC_FLAG_ON_DO_PERIODIC = 0x00040000, // 18 Successful do periodic (damage / healing, determined from 14,16 flags)
|
PROC_FLAG_ON_DO_PERIODIC = 0x00040000, // 18 Successful do periodic (damage / healing, determined from 14,16 flags)
|
||||||
PROC_FLAG_ON_TAKE_PERIODIC = 0x00080000, // 19 Taken spell periodic (damage / healing, determined from 15,17 flags)
|
PROC_FLAG_ON_TAKE_PERIODIC = 0x00080000, // 19 Taken spell periodic (damage / healing, determined from 15,17 flags)
|
||||||
@@ -456,13 +456,16 @@ enum ProcFlagsEx
|
|||||||
PROC_EX_INTERRUPT = 0x0001000, // Melee hit result can be Interrupt (not used)
|
PROC_EX_INTERRUPT = 0x0001000, // Melee hit result can be Interrupt (not used)
|
||||||
PROC_EX_AURA_REMOVE_DESTROY = 0x0002000, // aura absorb destroy or dispel
|
PROC_EX_AURA_REMOVE_DESTROY = 0x0002000, // aura absorb destroy or dispel
|
||||||
PROC_EX_AURA_REMOVE_EXPIRE = 0x0004000, // aura remove by default and by cancel
|
PROC_EX_AURA_REMOVE_EXPIRE = 0x0004000, // aura remove by default and by cancel
|
||||||
|
PROC_EX_NOT_ACTIVE_SPELL = 0x0008000, // to mark spells which can proc without damage, but not specified with spellfamilyflags
|
||||||
PROC_EX_EX_TRIGGER_ALWAYS = 0x0010000, // If set trigger always ( no matter another flags) used for drop charges
|
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_EX_ONE_TIME_TRIGGER = 0x0020000, // If set trigger always but only one time (not used)
|
||||||
PROC_EX_INTERNAL_CANT_PROC = 0x0800000, // Only for internal use
|
|
||||||
PROC_EX_INTERNAL_DOT = 0x1000000, // Only for internal use
|
// Flags for internal use - do not use these in db!
|
||||||
PROC_EX_INTERNAL_HOT = 0x2000000, // Only for internal use
|
PROC_EX_INTERNAL_CANT_PROC = 0x0800000,
|
||||||
PROC_EX_INTERNAL_TRIGGERED = 0x4000000, // Only for internal use
|
PROC_EX_INTERNAL_DOT = 0x1000000,
|
||||||
PROC_EX_INTERNAL_REQ_FAMILY = 0x8000000 // Only for internal use
|
PROC_EX_INTERNAL_HOT = 0x2000000,
|
||||||
|
PROC_EX_INTERNAL_TRIGGERED = 0x4000000,
|
||||||
|
PROC_EX_INTERNAL_REQ_FAMILY = 0x8000000
|
||||||
};
|
};
|
||||||
#define AURA_REMOVE_PROC_EX_MASK \
|
#define AURA_REMOVE_PROC_EX_MASK \
|
||||||
(PROC_EX_AURA_REMOVE_DESTROY | PROC_EX_AURA_REMOVE_EXPIRE)
|
(PROC_EX_AURA_REMOVE_DESTROY | PROC_EX_AURA_REMOVE_EXPIRE)
|
||||||
|
|||||||
+2
-2
@@ -2982,7 +2982,7 @@ SpellMissInfo Unit::SpellHitResult(Unit *pVictim, SpellEntry const *spell, bool
|
|||||||
if (reflectchance > 0 && roll_chance_i(reflectchance))
|
if (reflectchance > 0 && roll_chance_i(reflectchance))
|
||||||
{
|
{
|
||||||
// Start triggers for remove charges if need (trigger only for victim, and mark as active spell)
|
// Start triggers for remove charges if need (trigger only for victim, and mark as active spell)
|
||||||
ProcDamageAndSpell(pVictim, PROC_FLAG_NONE, PROC_FLAG_SUCCESSFUL_DAMAGING_SPELL_HIT, PROC_EX_REFLECT, 1, BASE_ATTACK, spell);
|
ProcDamageAndSpell(pVictim, PROC_FLAG_NONE, PROC_FLAG_SUCCESSFUL_NEGATIVE_MAGIC_SPELL, PROC_EX_REFLECT, 1, BASE_ATTACK, spell);
|
||||||
return SPELL_MISS_REFLECT;
|
return SPELL_MISS_REFLECT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7897,7 +7897,7 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, AuraEffect* trig
|
|||||||
|
|
||||||
// try detect target manually if not set
|
// try detect target manually if not set
|
||||||
if ( target == NULL )
|
if ( target == NULL )
|
||||||
target = !(procFlags & (PROC_FLAG_SUCCESSFUL_POSITIVE_SPELL | PROC_FLAG_SUCCESSFUL_HEALING_SPELL)) && IsPositiveSpell(trigger_spell_id) ? this : pVictim;
|
target = !(procFlags & (PROC_FLAG_SUCCESSFUL_POSITIVE_MAGIC_SPELL | PROC_FLAG_SUCCESSFUL_POSITIVE_SPELL_HIT)) && IsPositiveSpell(trigger_spell_id) ? this : pVictim;
|
||||||
|
|
||||||
// default case
|
// default case
|
||||||
if(!target || target!=this && !target->isAlive())
|
if(!target || target!=this && !target->isAlive())
|
||||||
|
|||||||
Reference in New Issue
Block a user