From e1b05b6dee4f451b973fa35c268fc743e8ac72f0 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 1 Jun 2020 20:13:10 +0800 Subject: [PATCH] 1 --- server/gameserver/framemaker.cc | 11 ++++------- server/gameserver/human.cc | 17 ++++++++++------- server/gameserver/room.cc | 10 ++++++++++ 3 files changed, 24 insertions(+), 14 deletions(-) diff --git a/server/gameserver/framemaker.cc b/server/gameserver/framemaker.cc index 724094a..a5ec268 100644 --- a/server/gameserver/framemaker.cc +++ b/server/gameserver/framemaker.cc @@ -18,15 +18,12 @@ cs::SMUpdate* FrameMaker::MakeUpdateMsg(const Human* hum) } #endif for (auto& itr : hum->new_objects) { -#if 0 - if (itr != hum && - itr->entity_type == ET_Player && - a8::HasBitFlag(((Human*) - ) { - continue; +#ifdef DEBUG + if (hum->del_objects.find(itr->GetEntityUniId()) != hum->del_objects.end()) { + abort(); } #endif - itr->FillMFObjectFull(room, msg->add_full_objects()); + itr->FillMFObjectFull(room, msg->add_full_objects()); } for (auto& itr : hum->part_objects) { Entity* entity = itr; diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 742fea0..5dc45e3 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -667,8 +667,9 @@ void Human::SyncAroundPlayers(const char* file, int line, const char* func) } #ifdef DEBUG room->CheckPartObjects(); - a8::UdpLog::Instance()->Debug("syncaround begin %s %d %s", + a8::UdpLog::Instance()->Debug("room_idx:%d syncaround begin %s %d %s", { + room->GetRoomIdx(), file, line, func @@ -702,12 +703,14 @@ void Human::SyncAroundPlayers(const char* file, int line, const char* func) static long long last_debugout_tick = 0; if (a8::XGetTickCount() - last_debugout_tick > 1000 * 10) { last_debugout_tick = a8::XGetTickCount(); - a8::UdpLog::Instance()->Warning("SyncAroundPlayers error file:%s line:%d func:%s", - { - file, - line, - func - }); + a8::UdpLog::Instance()->Warning + ("SyncAroundPlayers error room_idx:%d, file:%s line:%d func:%s", + { + room->GetRoomIdx(), + file, + line, + func + }); } } }); diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index 7958ea1..f135c1d 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -483,6 +483,16 @@ void Room::RemoveObjectLater(RoomEntity* entity) break; } entity->room->RemoveFromEntityHash(entity); +#ifdef DEBUG + a8::UdpLog::Instance()->Debug + ( + "remove object pointer:%d uniid:%d", + { + (long long)entity, + entity->GetEntityUniId() + } + ); +#endif delete entity; }; xtimer.AddDeadLineTimerAndAttach(0,