diff options
-rw-r--r-- | sql/base/world_database.sql | 5 | ||||
-rw-r--r-- | sql/updates/world/2011_05_11_06_world_spell_bonus_data.sql | 3 | ||||
-rwxr-xr-x | src/server/game/Entities/Unit/Unit.cpp | 6 |
3 files changed, 10 insertions, 4 deletions
diff --git a/sql/base/world_database.sql b/sql/base/world_database.sql index 5ed9b63e391..a0807ae6e19 100644 --- a/sql/base/world_database.sql +++ b/sql/base/world_database.sql @@ -17135,7 +17135,8 @@ INSERT INTO `spell_bonus_data` (`entry`,`direct_bonus`,`dot_bonus`,`ap_bonus`,`a (29722, 0.7139, -1, -1, -1, 'Warlock - Incinerate'), (42223, 0.286, -1, -1, -1, 'Warlock - Rain of Fire Triggered Rank 1'), (5676, 0.4293, -1, -1, -1, 'Warlock - Searing Pain'), -(27243, 0.2129, 0.25, -1, -1, 'Warlock - Seed of Corruption'), +(27243, -1, 0.25, -1, -1, 'Warlock - Seed of Corruption'), +(27285, 0.2129, -1, -1, -1, 'Seed of Corruption Proc'), (686, 0.8569, -1, -1, -1, 'Warlock - Shadow Bolt'), (6229, 0.3, -1, -1, -1, 'Warlock - Shadow Ward'), (17877, 0.4293, -1, -1, -1, 'Warlock - Shadowburn'), @@ -25806,7 +25807,7 @@ INSERT INTO spell_ranks (`first_spell_id`, `spell_id`, `rank`) VALUES -- Safeguard (46946, 46946, 1), (46946, 46947, 2), - -- Seed of Corruption + -- Seed of Corruption Proc (27285, 27285, 1), (27285, 47833, 2), (27285, 47834, 3), diff --git a/sql/updates/world/2011_05_11_06_world_spell_bonus_data.sql b/sql/updates/world/2011_05_11_06_world_spell_bonus_data.sql new file mode 100644 index 00000000000..de95bdd5524 --- /dev/null +++ b/sql/updates/world/2011_05_11_06_world_spell_bonus_data.sql @@ -0,0 +1,3 @@ +UPDATE `spell_bonus_data` SET `direct_bonus` = -1 WHERE `entry` = 27243; +DELETE FROM `spell_bonus_data` WHERE `entry` = 27285; +INSERT INTO `spell_bonus_data` VALUES (27285, 0.2129, -1, -1, -1,'Warlock - Seed of Corruption Proc'); diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index b87d665fb99..9c0303f93b2 100755 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -5855,7 +5855,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger // Seed of Corruption if (dummySpell->SpellFamilyFlags[1] & 0x00000010) { - if (procSpell && procSpell->Id == 27285) + if (procSpell && procSpell->SpellFamilyFlags[1] & 0x8000) return false; // if damage is more than need or target die from damage deal finish spell if (triggeredByAura->GetAmount() <= int32(damage) || GetHealth() <= damage) @@ -5866,9 +5866,11 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger // Remove aura (before cast for prevent infinite loop handlers) RemoveAurasDueToSpell(triggeredByAura->GetId()); + uint32 spell = sSpellMgr->GetSpellWithRank(27285, sSpellMgr->GetSpellRank(dummySpell->Id)); + // Cast finish spell (triggeredByAura already not exist!) if (Unit* caster = GetUnit(*this, casterGuid)) - caster->CastSpell(this, 27285, true, castItem); + caster->CastSpell(this, spell, true, castItem); return true; // no hidden cooldown } |