diff options
-rw-r--r-- | sql/base/world_database.sql | 4 | ||||
-rw-r--r-- | sql/updates/9166_world_spell_proc_event.sql | 6 | ||||
-rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 28 |
3 files changed, 24 insertions, 14 deletions
diff --git a/sql/base/world_database.sql b/sql/base/world_database.sql index 0f1afc20237..81df8987fc4 100644 --- a/sql/base/world_database.sql +++ b/sql/base/world_database.sql @@ -7307,6 +7307,10 @@ INSERT INTO `spell_proc_event` (`entry`,`SchoolMask`,`SpellFamilyName`,`SpellFam ( 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 +( 53178, 0x00, 9, 0x00000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0, 100, 0), -- Guard Dog (Rank 1) +( 53179, 0x00, 9, 0x00000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0, 100, 0), -- Guard Dog (Rank 2) +( 62764, 0x00, 9, 0x00000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0, 100, 0), -- Silverback (Rank 1) +( 62765, 0x00, 9, 0x00000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0, 100, 0), -- Silverback (Rank 2) ( 49223, 0x00, 15, 0x00000011, 0x08020000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Dirge ( 49599, 0x00, 15, 0x00000011, 0x08020000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Dirge ( 49188, 0x00, 15, 0x00000000, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Rime diff --git a/sql/updates/9166_world_spell_proc_event.sql b/sql/updates/9166_world_spell_proc_event.sql new file mode 100644 index 00000000000..f1f6056770a --- /dev/null +++ b/sql/updates/9166_world_spell_proc_event.sql @@ -0,0 +1,6 @@ +DELETE FROM `spell_proc_event` WHERE `entry` IN (53178,53179,62764,62765); +INSERT INTO `spell_proc_event` (`entry`,`SchoolMask`,`SpellFamilyName`,`SpellFamilyMask0`,`SpellFamilyMask1`,`SpellFamilyMask2`,`procFlags`,`procEx`,`ppmRate`,`CustomChance`,`Cooldown`) VALUES +(53178,0x00,9,0x00000000,0x10000000,0x00000000,0x00000000,0x00000000,0,100,0), -- GuardDog(Rank1) +(53179,0x00,9,0x00000000,0x10000000,0x00000000,0x00000000,0x00000000,0,100,0), -- GuardDog(Rank2) +(62764,0x00,9,0x00000000,0x10000000,0x00000000,0x00000000,0x00000000,0,100,0), -- Silverback(Rank1) +(62765,0x00,9,0x00000000,0x10000000,0x00000000,0x00000000,0x00000000,0,100,0); -- Silverback(Rank2) diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index c8ce0fe502c..a7226a8fb7e 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -7717,22 +7717,22 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger } break; } - case SPELLFAMILY_PET: + case SPELLFAMILY_PET: { - // improved cower - if (dummySpell->SpellIconID == 958 && procSpell->SpellIconID == 958) + switch (dummySpell->SpellIconID) { - triggered_spell_id = dummySpell->Id == 53180 ? 54200 : 54201; - target = this; - break; - } - // guard dog - if (dummySpell->SpellIconID == 201 && procSpell->SpellIconID == 201) - { - triggered_spell_id = 54445; - target = this; - pVictim->AddThreat(this,procSpell->EffectBasePoints[0]*triggerAmount/100.0f); - break; + // Guard Dog + case 201: + triggered_spell_id = 54445; + target = this; + float addThreat = SpellMgr::CalculateSpellEffectAmount(procSpell, 0, this) * triggerAmount / 100.f; + pVictim->AddThreat(this, addThreat); + break; + // Silverback + case 1582: + triggered_spell_id = dummySpell->Id == 62765 ? 62801 : 62800; + target = this; + break; } break; } |