private void HandleQueryUserStateResult(Msg_BL_QueryUserStateResult msg_, PBChannel channel, int src, uint session) { UserProcessScheduler dataProcess = UserServer.Instance.UserProcessScheduler; UserInfo user = dataProcess.GetUserInfo(msg_.Guid); if (user != null && user.CurrentState == UserState.Room) { user.CurrentState = UserState.Online; } }
private void HandleQueryUserState(Msg_LB_QueryUserState msg_, PBChannel channel, int src, uint session) { Msg_BL_QueryUserStateResult builder = new Msg_BL_QueryUserStateResult(); builder.Guid = msg_.Guid; UserInfo info = m_UserProcessScheduler.GetUserInfo(msg_.Guid); if (null == info) { builder.State = (int)UserState.DropOrOffline; } else { builder.State = (int)info.CurrentState; } m_UserChannel.Send(src, builder); }
internal void UserRelogin(ulong guid, int srcHandle) { UserInfo user = LobbyServer.Instance.UserProcessScheduler.GetUserInfo(guid); if (user != null) { if (user.CurrentState == UserState.Room) { RoomInfo room = m_LobbyInfo.GetRoomByID(user.CurrentRoomID); if (room != null) { //向RoomServer发送消息,重新进入房间 Msg_LR_ReconnectUser urBuilder = new Msg_LR_ReconnectUser(); urBuilder.UserGuid = guid; urBuilder.RoomID = user.CurrentRoomID; LobbyServer.Instance.RoomSvrChannel.Send(room.RoomServerName, urBuilder); LogSys.Log(LOG_TYPE.INFO, "User Restart GameClient , guid:{0}", guid); } else { //房间已经关闭 user.ResetRoomInfo(); user.CurrentState = UserState.Online; Msg_BL_QueryUserStateResult builder = new Msg_BL_QueryUserStateResult(); builder.Guid = guid; builder.State = (int)UserState.Online; LobbyServer.Instance.UserChannel.Send(srcHandle, builder); } } } else { Msg_BL_QueryUserStateResult builder = new Msg_BL_QueryUserStateResult(); builder.Guid = guid; builder.State = (int)UserState.DropOrOffline; LobbyServer.Instance.UserChannel.Send(srcHandle, builder); } }
internal void QuitRoom(ulong guid, bool is_quit_room, int srcHandle) { UserInfo user = LobbyServer.Instance.UserProcessScheduler.GetUserInfo(guid); if (user != null) { if (user.CurrentState == UserState.Room) { RoomInfo room = user.Room; if (null != room) { Msg_LR_UserQuit msg = new Msg_LR_UserQuit(); msg.UserGuid = guid; msg.RoomID = room.RoomId; LobbyServer.Instance.RoomSvrChannel.Send(room.RoomServerName, msg); } } else if (null != user.Room) { user.Room.DelUsers(guid); user.ResetRoomInfo(); user.CurrentState = UserState.Online; user.LeftLife = UserInfo.c_LifeTimeWaitOffline; } LogSys.Log(LOG_TYPE.INFO, "QuitRoom Guid {0} state {1}", guid, user.CurrentState); } else { Msg_BL_QueryUserStateResult builder = new Msg_BL_QueryUserStateResult(); builder.Guid = guid; builder.State = (int)UserState.DropOrOffline; LobbyServer.Instance.UserChannel.Send(srcHandle, builder); } }