aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/FULL/world_spell_full.sql12
-rw-r--r--sql/updates/4394_world_spell_proc_event.sql12
-rw-r--r--src/game/Spell.cpp17
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())
{