diff options
Diffstat (limited to 'src/game/Unit.cpp')
-rw-r--r-- | src/game/Unit.cpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 58fe17783bc..5c666f3778f 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -9806,11 +9806,10 @@ bool Unit::isSpellCrit(Unit *pVictim, SpellEntry const *spellProto, SpellSchoolM crit_chance+=aura->GetAmount(); break; } - // Exorcism - "If the target is Undead or Demon, it will always critically hit" - else if(spellProto->SpellFamilyFlags[1]&0x2) + // Exorcism + else if (spellProto->Category == 19) { - if(pVictim->GetCreatureType() == CREATURE_TYPE_DEMON - || pVictim->GetCreatureType() == CREATURE_TYPE_UNDEAD) + if (pVictim->GetCreatureTypeMask() & CREATURE_TYPEMASK_DEMON_OR_UNDEAD) return true; break; } @@ -14016,10 +14015,10 @@ void Unit::Kill(Unit *pVictim, bool durabilityLoss) ((Player*)pVictim)->SetPvPDeath(player!=NULL); // only if not player and not controlled by player pet. And not at BG - if (durabilityLoss && !player && !((Player*)pVictim)->InBattleGround()) + if ( (durabilityLoss && !player && !((Player*)pVictim)->InBattleGround()) || ( player && sWorld.getConfig(CONFIG_DURABILITY_LOSS_IN_PVP) ) ) { - DEBUG_LOG("We are dead, loosing 10 percents durability"); - ((Player*)pVictim)->DurabilityLossAll(0.10f,false); + DEBUG_LOG("We are dead, losing %u percent durability", sWorld.getRate(RATE_DURABILITY_LOSS_ON_DEATH)); + ((Player*)pVictim)->DurabilityLossAll(sWorld.getRate(RATE_DURABILITY_LOSS_ON_DEATH),false); // durability lost message WorldPacket data(SMSG_DURABILITY_DAMAGE_DEATH, 0); ((Player*)pVictim)->GetSession()->SendPacket(&data); |