[8317] Implement 48801 and ranks work as expected in 3.1.x

Original patch writed by QAston.
Original patch prepared to mangos by KAPATEJIb.
This commit is contained in:
VladimirMangos 2009-08-05 17:49:44 +04:00
parent ba170f92f2
commit dc8bf0f7e7
4 changed files with 13 additions and 3 deletions

View file

@ -1781,6 +1781,7 @@ enum CreatureType
CREATURE_TYPE_GAS_CLOUD = 13 CREATURE_TYPE_GAS_CLOUD = 13
}; };
uint32 const CREATURE_TYPEMASK_DEMON_OR_UNDEAD = (1 << (CREATURE_TYPE_DEMON-1)) | (1 << (CREATURE_TYPE_UNDEAD-1));
uint32 const CREATURE_TYPEMASK_HUMANOID_OR_UNDEAD = (1 << (CREATURE_TYPE_HUMANOID-1)) | (1 << (CREATURE_TYPE_UNDEAD-1)); uint32 const CREATURE_TYPEMASK_HUMANOID_OR_UNDEAD = (1 << (CREATURE_TYPE_HUMANOID-1)) | (1 << (CREATURE_TYPE_UNDEAD-1));
uint32 const CREATURE_TYPEMASK_MECHANICAL_OR_ELEMENTAL = (1 << (CREATURE_TYPE_MECHANICAL-1)) | (1 << (CREATURE_TYPE_ELEMENTAL-1)); uint32 const CREATURE_TYPEMASK_MECHANICAL_OR_ELEMENTAL = (1 << (CREATURE_TYPE_MECHANICAL-1)) | (1 << (CREATURE_TYPE_ELEMENTAL-1));

View file

@ -5448,8 +5448,10 @@ bool Spell::CheckTargetCreatureType(Unit* target) const
{ {
uint32 spellCreatureTargetMask = m_spellInfo->TargetCreatureType; uint32 spellCreatureTargetMask = m_spellInfo->TargetCreatureType;
// Curse of Doom : not find another way to fix spell target check :/ // Curse of Doom & Exorcism: not find another way to fix spell target check :/
if(m_spellInfo->SpellFamilyName==SPELLFAMILY_WARLOCK && m_spellInfo->SpellFamilyFlags == UI64LIT(0x0200000000)) if (m_spellInfo->SpellFamilyName==SPELLFAMILY_WARLOCK && m_spellInfo->Category == 1179 ||
// TODO: will be removed in 3.2.x
m_spellInfo->SpellFamilyName==SPELLFAMILY_PALADIN && m_spellInfo->Category == 19)
{ {
// not allow cast at player // not allow cast at player
if(target->GetTypeId()==TYPEID_PLAYER) if(target->GetTypeId()==TYPEID_PLAYER)

View file

@ -8277,6 +8277,13 @@ bool Unit::isSpellCrit(Unit *pVictim, SpellEntry const *spellProto, SpellSchoolM
crit_chance+=aura->GetModifier()->m_amount; crit_chance+=aura->GetModifier()->m_amount;
break; break;
} }
// Exorcism
else if (spellProto->Category == 19)
{
if (pVictim->GetCreatureTypeMask() & CREATURE_TYPEMASK_DEMON_OR_UNDEAD)
return true;
break;
}
break; break;
case SPELLFAMILY_SHAMAN: case SPELLFAMILY_SHAMAN:
// Lava Burst // Lava Burst

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__ #ifndef __REVISION_NR_H__
#define __REVISION_NR_H__ #define __REVISION_NR_H__
#define REVISION_NR "8316" #define REVISION_NR "8317"
#endif // __REVISION_NR_H__ #endif // __REVISION_NR_H__