Inheritance: global::ProtoBuf.IExtensible
 private void HandleUserQuit(Msg_RL_UserQuit msg_, PBChannel channel, int src, uint session)
 {
 }
 internal void HandleUserQuit(Msg_LR_UserQuit msg, PBChannel channel)
 {
     Room room = GetRoomByID(msg.RoomID);
     if (null != room) {
         User user = room.GetUserByGuid(msg.UserGuid);
         if (null != user) {
             room.DeleteUser(user);
         }
     }
     Msg_RL_UserQuit replyBuilder = new Msg_RL_UserQuit();
     replyBuilder.UserGuid = msg.UserGuid;
     replyBuilder.RoomID = msg.RoomID;
     channel.Send(replyBuilder);
 }
 private void HandleUserQuit(Msg_LR_UserQuit msg, PBChannel channel, int handle, uint seq)
 {
     bool isFieldThread;
     int ix = GetActiveRoomThreadIndex(msg.RoomID, out isFieldThread);
     if (ix >= 0) {
         if (isFieldThread) {
             RoomThread roomThread = field_roomthread_list_[ix];
             roomThread.QueueAction(roomThread.HandleUserQuit, msg, channel);
         } else {
             RoomThread roomThread = roomthread_list_[ix];
             roomThread.QueueAction(roomThread.HandleUserQuit, msg, channel);
         }
     } else {
         Msg_RL_UserQuit replyBuilder = new Msg_RL_UserQuit();
         replyBuilder.UserGuid = msg.UserGuid;
         replyBuilder.RoomID = msg.RoomID;
         channel.Send(replyBuilder);
     }
 }
 private void HandleUserQuit(Msg_RL_UserQuit msg, PBChannel channel, int src, uint session)
 {
     //响应RoomServer回复lobby Msg_LR_UserQuit的消息
     m_RoomProcessThread.OnRoomUserQuit(msg.RoomID, msg.UserGuid, msg);
 }
        internal void OnRoomUserQuit(int roomid, ulong guid, Msg_RL_UserQuit originalMsg)
        {
            UserInfo user = LobbyServer.Instance.UserProcessScheduler.GetUserInfo(guid);
            if (user != null) {
                RoomInfo room = user.Room;
                if (null != room) {
                    if (room.RoomId == roomid) {
                        room.DelUsers(guid);
                        user.ResetRoomInfo();
                        user.CurrentRoomID = 0;
                        user.CurrentState = UserState.Room == user.CurrentState ? UserState.Online : user.CurrentState;
                    }
                } else {
                    user.CurrentRoomID = 0;
                    user.CurrentState = UserState.Room == user.CurrentState ? UserState.Online : user.CurrentState;
                }

                LobbyServer.Instance.ForwardToWorld(user.UserSvrName, originalMsg);

                LogSys.Log(LOG_TYPE.INFO, "RoomServer User Quit Guid {0} State {1}", guid, user.CurrentState);
            }
        }