Index: src/game/Corpse.cpp =================================================================== --- src/game/Corpse.cpp (revision 4175) +++ src/game/Corpse.cpp (working copy) @@ -219,19 +219,17 @@ CorpsePtr bones = CorpsePtr(new Corpse(this)); bones->Create(GetGUIDLow()); - for (int i = 0; i < CORPSE_END; i++) + for (int i = 3; i < CORPSE_END; i++) // not overwrite guid and object type { bones->SetUInt32Value(i, GetUInt32Value(i)); } bones->m_grid = m_grid; - bones->m_time = m_time; - bones->m_inWorld = m_inWorld; + // bones->m_time = m_time; // not overwrite time + // bones->m_inWorld = m_inWorld; // not overwrite world state + // bones->m_type = m_type; // not overwrite type bones->Relocate(GetPositionX(), GetPositionY(), GetPositionZ(), GetOrientation()); bones->SetMapId(GetMapId()); - // update data to bone state - bones->m_type = CORPSE_BONES; - uint32 flags = 0x05; { Player* player = ObjectAccessor::Instance().FindPlayer(GetOwnerGUID()); @@ -255,7 +253,7 @@ // add bones in grid store if grid loaded where corpse placed if(!MapManager::Instance().GetMap(bones->GetMapId(), &*bones)->IsRemovalGrid(bones->GetPositionX(),bones->GetPositionY())) { - MapManager::Instance().GetMap(GetMapId(), &*bones)->Add(bones); + MapManager::Instance().GetMap(bones->GetMapId(), &*bones)->Add(bones); } // or prepare to delete at next tick if grid not loaded else