aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent-Michael <Vincent_Michael@gmx.de>2013-08-02 20:07:43 +0200
committerVincent-Michael <Vincent_Michael@gmx.de>2013-08-02 20:07:43 +0200
commit8b85fa2454e2dd9978b50c0790ecbada9e80f164 (patch)
treef85a1803c09228a1b687ffbb18884f9297af3521
parent39cce3344c43d183ac855d9acfad83341d4d6335 (diff)
parent20a61b6400b17d09f7fc78bc75783aff16e7a029 (diff)
Merge branch 'master' of github.com:TrinityCore/TrinityCore into 4.3.4
-rw-r--r--src/server/game/AI/CreatureAI.cpp3
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp10
2 files changed, 6 insertions, 7 deletions
diff --git a/src/server/game/AI/CreatureAI.cpp b/src/server/game/AI/CreatureAI.cpp
index 09a6725485a..a494507919a 100644
--- a/src/server/game/AI/CreatureAI.cpp
+++ b/src/server/game/AI/CreatureAI.cpp
@@ -165,8 +165,6 @@ void CreatureAI::EnterEvadeMode()
if (me->IsVehicle()) // use the same sequence of addtoworld, aireset may remove all summons!
me->GetVehicleKit()->Reset(true);
-
- me->SetLastDamagedTime(0);
}
/*void CreatureAI::AttackedBy(Unit* attacker)
@@ -236,6 +234,7 @@ bool CreatureAI::_EnterEvadeMode()
me->LoadCreaturesAddon();
me->SetLootRecipient(NULL);
me->ResetPlayerDamageReq();
+ me->SetLastDamagedTime(0);
if (me->IsInEvadeMode())
return false;
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 04bd4f8a17e..1b19142e366 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -720,10 +720,14 @@ uint32 Unit::DealDamage(Unit* victim, uint32 damage, CleanDamage const* cleanDam
if (victim->GetTypeId() == TYPEID_PLAYER)
victim->ToPlayer()->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_TOTAL_DAMAGE_RECEIVED, damage);
- victim->ModifyHealth(- (int32)damage);
+ victim->ModifyHealth(-(int32)damage);
if (damagetype == DIRECT_DAMAGE || damagetype == SPELL_DIRECT_DAMAGE)
+ {
victim->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_DIRECT_DAMAGE, spellProto ? spellProto->Id : 0);
+ if (victim->GetTypeId() == TYPEID_UNIT && !victim->IsPet())
+ victim->SetLastDamagedTime(time(NULL));
+ }
if (victim->GetTypeId() != TYPEID_PLAYER)
victim->AddThreat(this, float(damage), damageSchoolMask, spellProto);
@@ -10268,10 +10272,6 @@ int32 Unit::ModifyHealth(int32 dVal)
if (dVal == 0)
return 0;
- // Part of Evade mechanics. Only track health lost, not gained.
- if (dVal < 0 && GetTypeId() != TYPEID_PLAYER && !IsPet())
- SetLastDamagedTime(time(NULL));
-
int32 curHealth = (int32)GetHealth();
int32 val = dVal + curHealth;