示例#1
0
        public void SystemClientDisConnected(SFNETPacket packet)
        {
            var user = UserManagerRef.GetUser(packet.SessionID());

            if (user == null)
            {
                return;
            }

            if (user.LobbyID > 0)
            {
                var jsonData = new JsonPacketRequestLeaveLobby()
                {
                    LobbyID = user.LobbyID, UserID = user.UserID
                };
                var bodyData = JsonEnDecode.Encode <JsonPacketRequestLeaveLobby>(jsonData);

                var InnerPacket = new CgsfNET64Lib.SFNETPacket();
                InnerPacket.SetData(-1, (ushort)PACKET_ID.REQUEST_LEAVE_LOBBY, bodyData);
                RelayPacketPacketProcess.RelayPacket(user.LobbyID, InnerPacket);
            }


            var result = UserManagerRef.RemoveUser(packet.SessionID());

            InnerMessageQueue.CurrentUserCount(UserManagerRef.GetConnectCount());

            DevLog.Write(string.Format("Client DisConnected. SessionID: {0}", packet.SessionID()), LOG_LEVEL.INFO);
        }
示例#2
0
        // 로비 입장/나가기
        private void btnLobbyEnterLeave_Click(object sender, EventArgs e)
        {
            if (ClientStatus == CLIENT_STATUS.LOBBY)
            {
                var request = new JsonPacketRequestLeaveLobby()
                {
                    LobbyID = textBoxLobbyID.Text.ToInt16(),
                    UserID = textBoxUserID.Text
                };

                var bodyData = JsonEnDecode.Encode<JsonPacketRequestLeaveLobby>(request);
                PostSendPacket((UInt16)PACKET_ID.REQUEST_LEAVE_LOBBY, bodyData);
                return;
            }

            if (ClientStatus == CLIENT_STATUS.LOGIN)
            {
                var request = new JsonPacketRequestEnterLobby()
                {
                    LobbyID = textBoxLobbyID.Text.ToInt16(),
                    UserID = textBoxUserID.Text
                };

                var bodyData = JsonEnDecode.Encode<JsonPacketRequestEnterLobby>(request);
                PostSendPacket((UInt16)PACKET_ID.REQUEST_ENTER_LOBBY, bodyData);
            }
            else
            {
                MessageBox.Show("로그인 상태가 아니거나 이미 로비에 입장한 상태입니다");
            }
        }