From d58a670d5e561192c39222712e5e6742521c4a92 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Fri, 22 May 2020 22:34:39 +0800 Subject: [PATCH] 1 --- server/gameserver/android.cc | 3 +++ server/gameserver/app.cc | 4 ++-- server/gameserver/player.cc | 3 +++ server/gameserver/room.cc | 8 ++------ server/gameserver/room.h | 3 ++- server/gameserver/roommgr.cc | 6 +++++- 6 files changed, 17 insertions(+), 10 deletions(-) diff --git a/server/gameserver/android.cc b/server/gameserver/android.cc index 251d1b6..f9f101b 100644 --- a/server/gameserver/android.cc +++ b/server/gameserver/android.cc @@ -45,6 +45,9 @@ void Android::Update(int delta_time) if (room->frame_no % 2 == 0) { SendUpdateMsg(); } + if (!real_dead) { + room->IncRealAliveCount(); + } ++updated_times_; } diff --git a/server/gameserver/app.cc b/server/gameserver/app.cc index a5b0413..f995156 100755 --- a/server/gameserver/app.cc +++ b/server/gameserver/app.cc @@ -56,7 +56,7 @@ static void SavePerfLog() { a8::UdpLog::Instance()->Info ("mainloop_rundelay:%d room_num:%d player_num:%d online_num:%d alive_count:%d " - "sys_request_delay:%d user_request_delay:%d http_pending_num:%d active_count:%d", + "sys_request_delay:%d user_request_delay:%d http_pending_num:%d real_alive_count:%d", { App::Instance()->perf.max_run_delay_time, RoomMgr::Instance()->RoomNum(), @@ -66,7 +66,7 @@ static void SavePerfLog() f8::HttpClientPool::Instance()->max_sys_request_delay, f8::HttpClientPool::Instance()->max_user_request_delay, f8::HttpClientPool::Instance()->GetPendingNum(), - App::Instance()->perf.active_count + App::Instance()->perf.real_alive_count }); App::Instance()->perf.max_run_delay_time = 0; App::Instance()->perf.max_dispatchmsg_time = 0; diff --git a/server/gameserver/player.cc b/server/gameserver/player.cc index 11f0eca..c77e82f 100644 --- a/server/gameserver/player.cc +++ b/server/gameserver/player.cc @@ -48,6 +48,9 @@ void Player::Update(int delta_time) if (room->frame_no % 2 == 0) { SendUpdateMsg(); } + if (!real_dead) { + room->IncRealAliveCount(); + } ++updated_times_; } diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index 6ea7dae..e51bfbc 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -120,7 +120,8 @@ Player* Room::GetPlayerByAccountId(const std::string& accountid) Player* Room::GetPlayerByUniId(int uniid) { Entity* entity = GetEntityByUniId(uniid); - return entity && entity->entity_type == ET_Player && entity->entity_subtype == EST_Player ? (Player*)entity : nullptr; + return entity && entity->entity_type == ET_Player && entity->entity_subtype == EST_Player ? + (Player*)entity : nullptr; } Entity* Room::GetEntityByUniId(int uniid) @@ -134,11 +135,6 @@ int Room::AliveCount() return alive_count_; } -int Room::RealAliveCount() -{ - return real_alive_count_; -} - int Room::ActiveCount() { return active_count_; diff --git a/server/gameserver/room.h b/server/gameserver/room.h index 672cc4f..9af7727 100644 --- a/server/gameserver/room.h +++ b/server/gameserver/room.h @@ -73,7 +73,8 @@ public: void Update(int delta_time); int GetPlayerNum(); int AliveCount(); - inline int RealAliveCount(); + inline int RealAliveCount() { return real_alive_count_; } + inline void IncRealAliveCount() { ++real_alive_count_; } int ActiveCount(); Player* GetPlayerByAccountId(const std::string& accountid); Player* GetPlayerByUniId(int uniid); diff --git a/server/gameserver/roommgr.cc b/server/gameserver/roommgr.cc index 39cc728..dc5b645 100644 --- a/server/gameserver/roommgr.cc +++ b/server/gameserver/roommgr.cc @@ -62,9 +62,13 @@ void RoomMgr::UnInit() void RoomMgr::Update(int delta_time) { + long long real_alive_count = 0; for (auto& pair : room_hash_) { - pair.second->Update(delta_time); + Room* room = pair.second; + room->Update(delta_time); + real_alive_count += room->RealAliveCount(); } + App::Instance()->perf.real_alive_count = real_alive_count; } void RoomMgr::_CMJoin(f8::MsgHdr& hdr, const cs::CMJoin& msg)