//=================================================================== //野外分线相关处理 //=================================================================== internal void RequestSceneRoomInfo(ulong guid) { UserProcessScheduler dataProcess = LobbyServer.Instance.UserProcessScheduler; UserInfo user = dataProcess.GetUserInfo(guid); if (null != user) { if (user.CurrentState == UserState.Room) { RoomInfo room = user.Room; if (null != room) { SceneRoomInfo info = m_LobbyInfo.GetSceneRoomInfo(room.SceneType, room.RoomId); if (null != info) { string chapterName; TableConfig.Level cfg = TableConfig.LevelProvider.Instance.GetLevel(info.m_SceneId); if (null != cfg) { chapterName = "unknown"; } else { chapterName = "unknown"; } LobbyServer.Instance.SendStoryMessage(user, "onroominfo", info.m_RoomIndex, info.m_UserCount, info.m_TotalUserCount, info.m_RoomId, info.m_SceneId, chapterName); } } } } }
internal void HandleBuyLife(ulong guid) { UserProcessScheduler scheduler = LobbyServer.Instance.UserProcessScheduler; if (null == scheduler) { return; } // 响应玩家要求复活 UserInfo user = scheduler.GetUserInfo(guid); if (null != user) { RoomInfo room = user.Room; if (null != room) { Msg_LR_UserReLive resultBuilder = new Msg_LR_UserReLive(); resultBuilder.UserGuid = guid; resultBuilder.RoomId = user.CurrentRoomID; LobbyServer.Instance.RoomSvrChannel.Send(room.RoomServerName, resultBuilder); LogSys.Log(LOG_TYPE.INFO, "BuyLife Guid {0}", guid); } } }
internal void RequestSceneRoomList(ulong guid) { UserProcessScheduler dataProcess = LobbyServer.Instance.UserProcessScheduler; UserInfo user = dataProcess.GetUserInfo(guid); if (null != user) { if (user.CurrentState == UserState.Room) { RoomInfo room = user.Room; if (null != room) { List <SceneRoomInfo> list = m_LobbyInfo.GetSceneRoomList(room.SceneType); JsonData jsonList = new JsonData(); int ct = list.Count; for (int i = 0; i < ct; ++i) { JsonData json = new JsonData(); json.Add(list[i].m_RoomIndex); json.Add(list[i].m_UserCount); json.Add(list[i].m_TotalUserCount); json.Add(list[i].m_RoomId); json.Add(list[i].m_SceneId); jsonList.Add(json); } if (ct > 0) { LobbyServer.Instance.SendStoryMessage(user, "onroomlist", JsonMapper.ToJson(jsonList)); } } } } }
internal void AddUsers(int camp, params ulong[] users) { UserProcessScheduler dataProcess = LobbyServer.Instance.UserProcessScheduler; foreach (ulong user in users) { UserInfo info = dataProcess.GetUserInfo(user); if (info != null) { info.LeftLife = UserInfo.c_LifeTimeWaitStartGame; info.Room = this; info.CampId = camp; if (m_Users.ContainsKey(user)) { m_Users[user] = new WeakReference(info); } else { m_Users.Add(user, new WeakReference(info)); } } } UpdateUserCount(); }
internal void OnPickItem(Msg_RL_PickItem msg) { UserProcessScheduler dataProcess = LobbyServer.Instance.UserProcessScheduler; UserInfo user = dataProcess.GetUserInfo(msg.UserGuid); if (user != null && null != user.Room) { RoomInfo room = user.Room; if (room.RoomId == msg.RoomId) { msg.RoomSvrName = room.RoomServerName; LobbyServer.Instance.ForwardToWorld(user.UserSvrName, msg); } } }
internal void HandleRoomStoryMessage(Msg_LRL_StoryMessage msg_) { UserProcessScheduler dataProcess = LobbyServer.Instance.UserProcessScheduler; UserInfo user = dataProcess.GetUserInfo(msg_.UserGuid); if (null != user) { RoomInfo info = m_LobbyInfo.GetRoomByID(user.CurrentRoomID); if (null != info) { msg_.RoomId = user.CurrentRoomID; LobbyServer.Instance.RoomSvrChannel.Send(info.RoomServerName, msg_); } } }
internal void DelUsers(params ulong[] users) { UserProcessScheduler dataProcess = LobbyServer.Instance.UserProcessScheduler; foreach (ulong user in users) { UserInfo info = dataProcess.GetUserInfo(user); if (null != info) { info.ResetRoomInfo(); LogSys.Log(LOG_TYPE.DEBUG, "LeaveRoom:{0}", user); } m_Users.Remove(user); } UpdateUserCount(); }
private void HandleRequestEnterScene(Msg_LB_RequestEnterScene msg_, PBChannel channel, int src, uint session) { UserProcessScheduler dataProcess = m_UserProcessScheduler; dataProcess.DispatchAction(dataProcess.RequestEnterScene, msg_); }