* Remove some old checks in aura stacking and change default stack rule to true

* Add stacking rules for Mark/Gift of the Wild, Power Word/Prayer of Fortitude, Prayer of/Shadow protection
NOTE: Although highly unlikely, this *might* cause some stacking problems until we properly define rest of the stacking rules in spell_group, so report any stacking issues
* Some missing lads from THANKS file

--HG--
branch : trunk
This commit is contained in:
Shocker
2010-08-24 14:38:00 +03:00
parent eedce26148
commit c728681422
5 changed files with 26 additions and 31 deletions
+2 -2
View File
@@ -64,5 +64,5 @@ footman, elron103, make_the_king, destros, MetaphysicalDrama, disassebler,
Malcrom, Vladmimír Lipták, retriman, hyriuu, Smakapotatis, PainKiller,
bkhorizon, n0n4m3, Chesterfield, Frankir, Wowka321, Morpheux, p0wer,
Ouden, toshik, laise, yavi, Splinter, Syntec, Arthas, denyde, unholy,
Vaughner, blackmanos, edrinn, Supabad, click, silverice, SupaBad, Xanadu,
Socolin, Toni.Shocker, Silinoron, 0xFuture, xK1
Vaughner, blackmanos, edrinn, Liberate, Shauren, dr.tenma, click, silverice,
SupaBad, Xanadu, Socolin, Shocker, Silinoron, 0xFuture, xK1
+10 -1
View File
@@ -6008,7 +6008,16 @@ INSERT INTO `spell_group` (`id`, `spell_id`) VALUES
-- mage freezing spells
(1107, 122), -- Frost Nova
(1107, 33395), -- Freeze
(1107, 55080); -- Shattered Barrier
(1107, 55080), -- Shattered Barrier
-- Mark/Gift of the Wild
(1108, 1126),
(1108, 21849),
-- Power Word/Prayer of Fortitude
(1109, 1243),
(1109, 21562),
-- Prayer of/Shadow Protection
(1110, 976),
(1110, 27683);
/*!40000 ALTER TABLE `spell_group` ENABLE KEYS */;
UNLOCK TABLES;
+8
View File
@@ -0,0 +1,8 @@
DELETE FROM `spell_group` WHERE `id` IN (1108, 1109, 1110);
INSERT INTO `spell_group` (`id`, `spell_id`) VALUES
(1108, 1126), -- Mark of the Wild
(1108, 21849), -- Gift of the Wild
(1109, 1243), -- Power Word: Fortitude
(1109, 21562), -- Prayer of Fortitude
(1110, 976), -- Shadow Protection
(1110, 27683); -- Prayer of Shadow Protection
@@ -0,0 +1,5 @@
DELETE FROM `spell_group_stack_rules` WHERE `group_id` IN (1108, 1109, 1110);
INSERT INTO `spell_group_stack_rules` (`group_id`, `stack_rule`) VALUES
(1108, 1), -- Mark/Gift of the Wild
(1109, 1), -- Power Word/Prayer of Fortitude
(1110, 1); -- Prayer of/Shadow protection
-27
View File
@@ -3168,35 +3168,8 @@ bool SpellMgr::CanAurasStack(SpellEntry const *spellInfo_1, SpellEntry const *sp
return false;
}
// use icon to check generic spells
if (!spellInfo_1->SpellFamilyName)
{
if (!spellInfo_1->SpellIconID || spellInfo_1->SpellIconID == 1
|| spellInfo_1->SpellIconID != spellInfo_2->SpellIconID)
return true;
}
// use familyflag to check class spells
else
{
if (!spellInfo_1->SpellFamilyFlags
|| spellInfo_1->SpellFamilyFlags != spellInfo_2->SpellFamilyFlags)
return true;
}
//use data of highest rank spell(needed for spells which ranks have different effects)
spellInfo_1 = sSpellStore.LookupEntry(spellId_1);
spellInfo_2 = sSpellStore.LookupEntry(spellId_2);
//if spells do not have the same effect or aura or miscvalue, they will stack
for (uint32 i = 0; i < MAX_SPELL_EFFECTS; ++i)
if (spellInfo_1->Effect[i] != spellInfo_2->Effect[i]
|| spellInfo_1->EffectApplyAuraName[i] != spellInfo_2->EffectApplyAuraName[i]
|| spellInfo_1->EffectMiscValue[i] != spellInfo_2->EffectMiscValue[i]) // paladin resist aura
return true; // need itemtype check? need an example to add that check
// different spells with same effect
return false;
}
bool CanSpellDispelAura(SpellEntry const * dispelSpell, SpellEntry const * aura)
{