コード例 #1
0
        public void NotifyInDisConnectClient(ServerPacketData requestData)
        {
            var user = UserMgr.GetUserByNetSessionID(requestData.SessionID);

            if (user != null)
            {
                var lobbyNum = user.RoomNumber;

                if (lobbyNum != PacketDef.INVALID_LOBBY_NUMBER)
                {
                    var packet = new PKTInternalNtfRoomLeave()
                    {
                        RoomNumber = lobbyNum,
                        UserID     = user.ID,
                    };

                    var packetBodyData = packet.Encode();
                    var internalPacket = new ServerPacketData();
                    internalPacket.Assign(requestData.SessionID, (UInt16)SYS_PACKET_ID.NTF_IN_ROOM_LEAVE, packetBodyData);

                    ServerNetwork.Distribute(internalPacket);
                }

                UserMgr.RemoveUser(requestData.SessionID);
            }

            GameServer.MainLogger.Debug($"Current Connected Session Count: {ServerNetwork.SessionCount}");
        }
コード例 #2
0
ファイル: PKHCommon.cs プロジェクト: dngur807/CSharpStudy
        public void NotifyInDisConnectClient(ServerPacketData requestData)
        {
            var sessionIndex = requestData.SessionIndex;
            var user         = UserMgr.GetUser(sessionIndex);

            if (user != null)
            {
                var roomNum = user.RoomNumber;

                if (roomNum != PacketDef.INVALID_ROOM_NUMBER)
                {
                    var packet = new PKTInternalNtfRoomLeave()
                    {
                        RoomNumber = roomNum,
                        UserID     = user.ID(),
                    };

                    var packetBodyData = MessagePackSerializer.Serialize(packet);
                    var internalPacket = new ServerPacketData();
                    internalPacket.Assign("", sessionIndex, (Int16)PACKETID.NTF_IN_ROOM_LEAVE, packetBodyData);

                    ServerNetwork.Distribute(internalPacket);
                }

                UserMgr.RemoveUser(sessionIndex);
            }
            MainServer.MainLogger.Debug($"Current Connected Session Count: {ServerNetwork.SessionCount}");
        }