*Fix Crypt Fever and Ebon Plague disease damage mod.

--HG--
branch : trunk
This commit is contained in:
QAston
2009-08-27 22:39:06 +02:00
parent 685dee5593
commit 629420b54b
4 changed files with 53 additions and 4 deletions
+3 -2
View File
@@ -1850,8 +1850,9 @@ INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`
-- -------- -- --------
TRUNCATE TABLE `spell_dbc`; TRUNCATE TABLE `spell_dbc`;
INSERT INTO `spell_dbc` (`Id`, `DurationIndex`, `Effect1`, `EffectImplicitTargetA1`, `EffectApplyAuraName1`, `Comment`) VALUES INSERT INTO `spell_dbc` (`Id`, `Dispel`, `Mechanic`, `AttributesEx3`, `DurationIndex`, `RangeIndex`, `Effect1`, `EffectImplicitTargetA1`, `EffectApplyAuraName1`, `EffectMiscValue1`, `SpellFamilyName`, `SchoolMask`, `Comment`) VALUES
(62388, 21, 6, 1, 4, 'Demonic Circle: Teleport(48020) - casterAuraSpell'); (62388, 0, 0, 0x00000000, 21, 1, 6, 1, 4, 0, 0, 0, 'Demonic Circle: Teleport(48020) - casterAuraSpell'),
(65142, 3, 22, 0x00000080, 21, 13, 6, 6, 255, 22, 15, 8, 'Crypt Fever - SPELL_AURA_LINKED');
-- -------- -- --------
-- SPELL ELIXIR -- SPELL ELIXIR
+3
View File
@@ -0,0 +1,3 @@
DELETE FROM `spell_dbc` WHERE `Id` IN(65142);
INSERT INTO `spell_dbc` (`Id`, `Dispel`, `Mechanic`, `AttributesEx3`, `DurationIndex`, `RangeIndex`, `Effect1`, `EffectImplicitTargetA1`, `EffectApplyAuraName1`, `EffectMiscValue1`, `SpellFamilyName`, `SchoolMask`, `Comment`) VALUES
(65142, 3, 22, 0x00000080, 21, 13, 6, 6, 255, 22, 15, 8, 'Crypt Fever - SPELL_AURA_LINKED');
+1 -1
View File
@@ -2840,7 +2840,7 @@ CREATE TABLE `spell_dbc` (
`AreaGroupId` INT NOT NULL DEFAULT 0, `AreaGroupId` INT NOT NULL DEFAULT 0,
`SchoolMask` INT UNSIGNED NOT NULL DEFAULT 0, `SchoolMask` INT UNSIGNED NOT NULL DEFAULT 0,
`Comment` TEXT NOT NULL, `Comment` TEXT NOT NULL,
PRIMARY KEY (`id`) PRIMARY KEY (`Id`)
)ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Custom spell.dbc entries'; )ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Custom spell.dbc entries';
-- --
+46 -1
View File
@@ -1006,14 +1006,59 @@ void Aura::HandleAuraSpecificMods(bool apply)
} }
} }
} }
// Sprint (skip non player casted spells by category)
else if (GetSpellProto()->SpellFamilyName == SPELLFAMILY_ROGUE) else if (GetSpellProto()->SpellFamilyName == SPELLFAMILY_ROGUE)
{ {
// Sprint (skip non player casted spells by category)
if(GetSpellProto()->SpellFamilyFlags[0] & 0x40 && GetSpellProto()->Category == 44) if(GetSpellProto()->SpellFamilyFlags[0] & 0x40 && GetSpellProto()->Category == 44)
// in official maybe there is only one icon? // in official maybe there is only one icon?
if(m_target->HasAura(58039)) // Glyph of Blurred Speed if(m_target->HasAura(58039)) // Glyph of Blurred Speed
m_target->CastSpell(m_target, 61922, true); // Sprint (waterwalk) m_target->CastSpell(m_target, 61922, true); // Sprint (waterwalk)
} }
else if (GetSpellProto()->SpellFamilyName == SPELLFAMILY_DEATHKNIGHT)
{
// Frost Fever and Blood Plague
if(GetSpellProto()->SpellFamilyFlags[2] & 0x2)
{
// Can't proc on self
if (GetCasterGUID() == m_target->GetGUID())
return;
Unit * caster = GetCaster();
if (!caster)
return;
AuraEffect * aurEff = NULL;
// Ebon Plaguebringer / Crypt Fever
Unit::AuraEffectList const& TalentAuras = caster->GetAurasByType(SPELL_AURA_OVERRIDE_CLASS_SCRIPTS);
for(Unit::AuraEffectList::const_iterator itr = TalentAuras.begin(); itr != TalentAuras.end(); ++itr)
{
if ((*itr)->GetMiscValue() == 7282)
{
aurEff = *itr;
// Ebon Plaguebringer - end search if found
if ((*itr)->GetSpellProto()->SpellIconID == 1766)
break;
}
}
if (aurEff)
{
uint32 spellId = 0;
switch (aurEff->GetId())
{
// Ebon Plague
case 51161: spellId = 51735; break;
case 51160: spellId = 51734; break;
case 51099: spellId = 51726; break;
// Crypt Fever
case 49632: spellId = 50510; break;
case 49631: spellId = 50509; break;
case 49032: spellId = 50508; break;
default:
sLog.outError("Unknown rank of Crypt Fever/Ebon Plague %d", aurEff->GetId());
}
caster->CastSpell(m_target, spellId, true, 0, GetPartAura(0));
}
}
}
else else
{ {
switch(GetId()) switch(GetId())