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); } }