diff --git a/src/game/Entities/Creature.cpp b/src/game/Entities/Creature.cpp index da0cabfefc6..1969df0b69f 100644 --- a/src/game/Entities/Creature.cpp +++ b/src/game/Entities/Creature.cpp @@ -571,8 +571,14 @@ bool Creature::UpdateEntry(uint32 Entry, const CreatureData* data /*=nullptr*/, if (m_movementInfo.HasMovementFlag(MOVEFLAG_SWIMMING)) unitFlags |= UNIT_FLAG_SWIMMING; + uint32 unitFlags2 = GetCreatureInfo()->UnitFlags2; + if (HasFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH)) + unitFlags2 |= UNIT_FLAG2_FEIGN_DEATH; + if (HasFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_CLONED)) + unitFlags2 |= UNIT_FLAG2_CLONED; + SetUInt32Value(UNIT_FIELD_FLAGS, unitFlags); - SetUInt32Value(UNIT_FIELD_FLAGS_2, GetCreatureInfo()->UnitFlags2); + SetUInt32Value(UNIT_FIELD_FLAGS_2, unitFlags2); // preserve all current dynamic flags if exist uint32 dynFlags = GetUInt32Value(UNIT_DYNAMIC_FLAGS);