aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Unit
diff options
context:
space:
mode:
authorMrSmite <mrsmite@att.net>2012-02-21 10:26:14 +0100
committerMachiavelli <machiavelli.trinity@gmail.com>2012-02-21 10:26:14 +0100
commitfb39566f1f75838e944cf02a3be36707547a12ae (patch)
treecf991465cf5d43a7c4ddf2fd02d0af5e8e205dbc /src/server/game/Entities/Unit
parent44195689b9da3cace087e5e3eb01c4fc8bafc85a (diff)
Core/Pets: Fix bugged reactstate behaviour after spline system implementation.
Signed-off-by: Machiavelli <machiavelli.trinity@gmail.com>
Diffstat (limited to 'src/server/game/Entities/Unit')
-rwxr-xr-xsrc/server/game/Entities/Unit/Unit.cpp18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 6c566fe9ed8..9c1ed4bdaa5 100755
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -15328,14 +15328,6 @@ void Unit::Kill(Unit* victim, bool durabilityLoss)
if (!victim->GetHealth())
return;
- // Inform pets (if any) when player kills target)
- if (Player* player = ToPlayer())
- {
- Pet* pet = player->GetPet();
- if (pet && pet->isAlive() && pet->isControlled())
- pet->AI()->KilledUnit(victim);
- }
-
// find player: owner of controlled `this` or `this` itself maybe
Player* player = GetCharmerOrOwnerPlayerOrPlayerItself();
Creature* creature = victim->ToCreature();
@@ -15464,6 +15456,16 @@ void Unit::Kill(Unit* victim, bool durabilityLoss)
victim->setDeathState(JUST_DIED);
}
+ // Inform pets (if any) when player kills target)
+ // MUST come after victim->setDeathState(JUST_DIED); or pet next target
+ // selection will get stuck on same target and break pet react state
+ if (Player* player = ToPlayer())
+ {
+ Pet* pet = player->GetPet();
+ if (pet && pet->isAlive() && pet->isControlled())
+ pet->AI()->KilledUnit(victim);
+ }
+
// 10% durability loss on death
// clean InHateListOf
if (Player* plrVictim = victim->ToPlayer())