aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Creature
diff options
context:
space:
mode:
authorWyrserth <wyrserth@protonmail.com>2019-06-26 18:03:03 +0200
committerGitHub <noreply@github.com>2019-06-26 18:03:03 +0200
commit8967cc96df4c1c5c7465e9fd1fa66400f3e992b3 (patch)
tree4cbd800a9a06c9c5238a65ccb18504feb5c11cd1 /src/server/game/Entities/Creature
parent079b77b5fc466f806cb64206881f0034cce61670 (diff)
Core/SAI: do not pass old creatureData to UpdateEntry() and keep current health when changing a NPC's entry. (#23493)
Diffstat (limited to 'src/server/game/Entities/Creature')
-rw-r--r--src/server/game/Entities/Creature/Creature.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp
index 0b1c340f9f2..bb6c9e19aab 100644
--- a/src/server/game/Entities/Creature/Creature.cpp
+++ b/src/server/game/Entities/Creature/Creature.cpp
@@ -568,7 +568,10 @@ bool Creature::UpdateEntry(uint32 entry, CreatureData const* data /*= nullptr*/,
if (updateLevel)
SelectLevel();
+ uint32 previousHealth = GetHealth();
UpdateLevelDependantStats();
+ if (previousHealth > 0)
+ SetHealth(previousHealth);
SetMeleeDamageSchool(SpellSchools(cInfo->dmgschool));
SetStatFlatModifier(UNIT_MOD_RESISTANCE_HOLY, BASE_VALUE, float(cInfo->resistance[SPELL_SCHOOL_HOLY]));