diff options
-rw-r--r-- | sql/FULL/world_spell_full.sql | 12 | ||||
-rw-r--r-- | sql/updates/4394_world_spell_proc_event.sql | 12 | ||||
-rw-r--r-- | src/game/Spell.cpp | 17 |
3 files changed, 33 insertions, 8 deletions
diff --git a/sql/FULL/world_spell_full.sql b/sql/FULL/world_spell_full.sql index 51a85d7443c..e3794783b4b 100644 --- a/sql/FULL/world_spell_full.sql +++ b/sql/FULL/world_spell_full.sql @@ -1492,7 +1492,17 @@ INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `Spell ( 35100, 0x00, 9, 0x00001000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0, 0, 0), -- Concussive Barrage ( 35102, 0x00, 9, 0x00001000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0, 0, 0), -- Concussive Barrage ( 18119, 0x00, 5, 0x00000000, 0x00800000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Aftermath -( 18120, 0x00, 5, 0x00000000, 0x00800000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0); -- Aftermath +( 18120, 0x00, 5, 0x00000000, 0x00800000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Aftermath +( 13165, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0x00000000, 0, 0, 0), -- Aspect of the Hawk +( 14318, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0x00000000, 0, 0, 0), -- Aspect of the Hawk +( 14319, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0x00000000, 0, 0, 0), -- Aspect of the Hawk +( 14320, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0x00000000, 0, 0, 0), -- Aspect of the Hawk +( 14321, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0x00000000, 0, 0, 0), -- Aspect of the Hawk +( 14322, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0x00000000, 0, 0, 0), -- Aspect of the Hawk +( 25296, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0x00000000, 0, 0, 0), -- Aspect of the Hawk +( 27044, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0x00000000, 0, 0, 0), -- Aspect of the Hawk +( 61846, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0x00000000, 0, 0, 0), -- Aspect of the Dragonhawk +( 61847, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0x00000000, 0, 0, 0); -- Aspect of the Dragonhawk -- -------- -- ENCHANT PROC diff --git a/sql/updates/4394_world_spell_proc_event.sql b/sql/updates/4394_world_spell_proc_event.sql new file mode 100644 index 00000000000..babd3782fea --- /dev/null +++ b/sql/updates/4394_world_spell_proc_event.sql @@ -0,0 +1,12 @@ +DELETE FROM `spell_proc_event` WHERE `entry` IN (13165, 14318, 14319, 14320, 14321, 14322, 25296, 27044, 61846, 61847); +INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown`) VALUES +( 13165, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0x00000000, 0, 0, 0), -- Aspect of the Hawk +( 14318, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0x00000000, 0, 0, 0), -- Aspect of the Hawk +( 14319, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0x00000000, 0, 0, 0), -- Aspect of the Hawk +( 14320, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0x00000000, 0, 0, 0), -- Aspect of the Hawk +( 14321, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0x00000000, 0, 0, 0), -- Aspect of the Hawk +( 14322, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0x00000000, 0, 0, 0), -- Aspect of the Hawk +( 25296, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0x00000000, 0, 0, 0), -- Aspect of the Hawk +( 27044, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0x00000000, 0, 0, 0), -- Aspect of the Hawk +( 61846, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0x00000000, 0, 0, 0), -- Aspect of the Dragonhawk +( 61847, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0x00000000, 0, 0, 0); -- Aspect of the Dragonhawk diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index c8b6bf6d167..cbace8757f4 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -809,13 +809,16 @@ void Spell::prepareDataForTriggerSystem(AuraEffect * triggeredByAura) m_canTrigger=false; } - if (m_IsTriggeredSpell && - (m_spellInfo->AttributesEx2 & SPELL_ATTR_EX2_TRIGGERED_CAN_TRIGGER || - m_spellInfo->AttributesEx3 & SPELL_ATTR_EX3_TRIGGERED_CAN_TRIGGER_2)) - m_procEx |= PROC_EX_INTERNAL_CANT_PROC; - else if (m_IsTriggeredSpell) - m_procEx |= PROC_EX_INTERNAL_TRIGGERED; - + // Ranged autorepeat attack is set as triggered spell - ignore it + if (!(m_procAttacker & PROC_FLAG_SUCCESSFUL_RANGED_HIT)) + { + if (m_IsTriggeredSpell && + (m_spellInfo->AttributesEx2 & SPELL_ATTR_EX2_TRIGGERED_CAN_TRIGGER || + m_spellInfo->AttributesEx3 & SPELL_ATTR_EX3_TRIGGERED_CAN_TRIGGER_2)) + m_procEx |= PROC_EX_INTERNAL_CANT_PROC; + else if (m_IsTriggeredSpell) + m_procEx |= PROC_EX_INTERNAL_TRIGGERED; + } // Totem casts require spellfamilymask defined in spell_proc_event to proc if (m_originalCaster && m_caster != m_originalCaster && m_caster->GetTypeId()==TYPEID_UNIT && ((Creature*)m_caster)->isTotem() && m_caster->IsControlledByPlayer()) { |