[8207] Allow show combat log for healing done by totems.

(cherry picked from commit 62436f324461648b3b0c3a1a9dee896fc1220343)

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
This commit is contained in:
Itch 2009-07-16 17:08:26 +06:00 committed by VladimirMangos
parent 9b2b2b09ec
commit 454b9a06a8
2 changed files with 12 additions and 7 deletions

View file

@ -7640,19 +7640,24 @@ int32 Unit::DealHeal(Unit *pVictim, uint32 addhealth, SpellEntry const *spellPro
{ {
int32 gain = pVictim->ModifyHealth(int32(addhealth)); int32 gain = pVictim->ModifyHealth(int32(addhealth));
if (GetTypeId()==TYPEID_PLAYER) Unit* unit = this;
if( GetTypeId()==TYPEID_UNIT && ((Creature*)this)->isTotem() && ((Totem*)this)->GetTotemType()!=TOTEM_STATUE)
unit = GetOwner();
if (unit->GetTypeId()==TYPEID_PLAYER)
{ {
// overheal = addhealth - gain // overheal = addhealth - gain
SendHealSpellLog(pVictim, spellProto->Id, addhealth, addhealth - gain, critical); unit->SendHealSpellLog(pVictim, spellProto->Id, addhealth, addhealth - gain, critical);
if (BattleGround *bg = ((Player*)this)->GetBattleGround()) if (BattleGround *bg = ((Player*)unit)->GetBattleGround())
bg->UpdatePlayerScore((Player*)this, SCORE_HEALING_DONE, gain); bg->UpdatePlayerScore((Player*)unit, SCORE_HEALING_DONE, gain);
// use the actual gain, as the overheal shall not be counted, skip gain 0 (it ignored anyway in to criteria) // use the actual gain, as the overheal shall not be counted, skip gain 0 (it ignored anyway in to criteria)
if (gain) if (gain)
((Player*)this)->GetAchievementMgr().UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_HEALING_DONE, gain, 0, pVictim); ((Player*)unit)->GetAchievementMgr().UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_HEALING_DONE, gain, 0, pVictim);
((Player*)this)->GetAchievementMgr().UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HEAL_CASTED, addhealth); ((Player*)unit)->GetAchievementMgr().UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HEAL_CASTED, addhealth);
} }
if (pVictim->GetTypeId()==TYPEID_PLAYER) if (pVictim->GetTypeId()==TYPEID_PLAYER)

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 "8206" #define REVISION_NR "8207"
#endif // __REVISION_NR_H__ #endif // __REVISION_NR_H__