Example #1
0
    void responseJoin(C_BasePacket eventData)
    {
#if DEBUGMODE
#endif
        if (eventData.m_basicType != BasePacketType.basePacketTypeLogin)
        {
            return;
        }

        C_LoginPacket data = (C_LoginPacket)eventData;
        if (data.m_loginType != LoginPacketType.loginPacketTypeSignupResponse)
        {
            return;
        }

        C_SignupResponsePacket curData = (C_SignupResponsePacket)data;

        stopWaiting();
        if (curData.m_bResult)
        {
            ((tryJoinUI)m_uiList[(int)INDEX_JOIN_UI.TRY_JOIN]).setSuccess(curData.m_bResult);
        }
        else
        {
            ((tryJoinUI)m_uiList[(int)INDEX_JOIN_UI.TRY_JOIN]).setSuccess(curData.m_bResult, "다시 시도해 주세요");
        }
        openUI((int)INDEX_JOIN_UI.TRY_JOIN);
    }
Example #2
0
    void responseRoomInfo(C_BasePacket eventData)
    {
        if (eventData.m_basicType != BasePacketType.basePacketTypeRoom)
        {
            return;
        }

        C_BaseRoomPacket data = (C_BaseRoomPacket)eventData;

        if (data.m_roomType != RoomPacketType.packetTypeRoomRoomInfoResponse)
        {
            return;
        }
        C_RoomPacketRoomInfoResponse curData = (C_RoomPacketRoomInfoResponse)data;

        if (m_bNeedInfo)
        {
            stopWaiting();
            m_bNeedInfo = false;
        }

        for (int i = 0; i < m_userInfoList.Count; ++i)
        {
            m_userInfoList[i].exitUser();
        }
        for (int i = 0; i < curData.m_listCount; ++i)
        {
            setUserInfo(curData.m_userList[i]);
        }
    }
Example #3
0
 public virtual void update(C_BasePacket eventData)
 {
     if (m_bWaiting)
     {
         // 만약 이벤트 데이터 타입이 response라면
     }
 }
Example #4
0
    void responseChannelList(C_BasePacket curEventData)
    {
#if DEBUGMODE
        //try
        //{
        //    if (GameManager.m_Instance.connect_mainServer())
        //    {
        //        GameManager.m_Instance.disconnect_loginServer();
        //        // openMainMenu
        //        openMainMenuUI();
        //    }
        //}
        //catch (Exception ex)
        //{
        //    GameManager.m_Instance.writeErrorLog("can not connect main server");
        //}
        //return;
#endif
        if (curEventData.m_basicType != BasePacketType.basePacketTypeLogin)
        {
            return;
        }
        C_LoginPacket data = (C_LoginPacket)curEventData;
        if (data.m_loginType != LoginPacketType.loginPacketTypeShowChannelResponse)
        {
            return;
        }
        stopWaiting();

        C_ChannelListResponsePacket curData = (C_ChannelListResponsePacket)data;

        ((selectChannelUI)m_uiList[(int)INDEX_LOGIN_UI.SELECT_CHANNEL]).setChannel(curData.m_channelList);

        openUI((int)INDEX_LOGIN_UI.SELECT_CHANNEL);
    }
    protected void onAnomalyEvnet(C_BasePacket curevent)
    {
        C_Anomaly data = (C_Anomaly)curevent;

        switch (data.m_type)
        {
        case AnomalyType.loginServer_Reconnect:
            m_waitReconnectUI.SetActive(false);
            break;

        case AnomalyType.loginServer_Disconnect:
#if NOTLOGINSERVER
            return;
#endif
            m_waitReconnectUI.SetActive(true);
            //m_uiList[m_uiIndexStack.Peek()].stopWaitingUI();
            m_uiList[m_uiIndexStack.Peek()].releaseUI();
            m_uiList[m_uiIndexStack.Peek()].closeUI(1);
            break;

        case AnomalyType.mainServer_Reconnect:
            break;

        case AnomalyType.mainServer_Disconnect:
            while (m_uiIndexStack.Count > 1)
            {
                closeUI(1);
            }
            //openUI((int)INDEX_OF_CONTROLLER_UI.LOGIN_UI);
            m_uiList[m_uiIndexStack.Peek()].releaseUI();

            GameManager.m_Instance.connect_loginServer();
            break;
        }
    }
Example #6
0
    void responseDeleteUser(C_BasePacket curEventData)
    {
        if (curEventData.m_basicType != BasePacketType.basePacketTypeLogin)
        {
            return;
        }
        C_LoginPacket data = (C_LoginPacket)curEventData;

        if (data.m_loginType != LoginPacketType.loginPacketTypeDeleteResponse)
        {
            return;
        }
        stopWaiting();

        C_DeleteResponsePacket curData = (C_DeleteResponsePacket)data;

        string msg = "";

        if (curData.m_bResult)
        {
            msg = "탈퇴 성공";
            setLogout();
        }
        else
        {
            msg = "탈퇴 실패";
        }
        ((ResultUI)m_uiList[(int)INDEX_LOGIN_UI.RESULT_DELETE_USER_UI]).setResultMSG(msg);
        openUI((int)INDEX_LOGIN_UI.RESULT_DELETE_USER_UI);
    }
Example #7
0
    void responseLogin(C_BasePacket eventData)
    {
#if DEBUGMODE
#endif
        if (eventData.m_basicType != BasePacketType.basePacketTypeLogin)
        {
            return;
        }
        C_LoginPacket data = (C_LoginPacket)eventData;
        if (data.m_loginType != LoginPacketType.loginPacketTypeLoginResponse)
        {
            return;
        }
        stopWaiting();

        C_LoginResponsePacket curData = (C_LoginResponsePacket)data;

        if (curData.m_bFlag == true) // 로그인 성공
        {
            S_UserAccessData accessData = new S_UserAccessData();
            accessData.m_accessID = m_idInputfield.text;
            accessData.m_accessPW = m_pwInputfield.text;
            GameManager.m_Instance.setAccessData(accessData);
            clearUserInfo(true);
            m_userNickNameText.text = curData.m_nickname;
        }
        else
        {
            openFailUI("<Size=40>로그인 실패!</Size>\n<size=30>아이디와 비밀번호를 다시 입력해주세요</size>");
            openUI((int)INDEX_LOGIN_UI.RESULT_UI);
        }

        m_idInputfield.text = "";
        m_pwInputfield.text = "";
    }
Example #8
0
    void responseExitGameroom(C_BasePacket eventData)
    {
        if (eventData.m_basicType != BasePacketType.basePacketTypeRoom)
        {
            return;
        }
        C_BaseRoomPacket data = (C_BaseRoomPacket)eventData;

        if (data.m_roomType != RoomPacketType.roomPacketTypeLeaveRoomResponse)
        {
            return;
        }

        C_RoomPacketLeaveRoomResponse curData = (C_RoomPacketLeaveRoomResponse)data;

        if (curData.m_bIsSuccess)
        {
            m_uiManager.closeUI(1);
        }
        else
        {
            ((ResultUI)m_uiList[(int)INDEX_OF_GAMEROOM_UI.RESULT_UI]).setResultMSG("<Size= 50>방 나가기 실패!</Size>\n<size=40>다시 시도해주세요.</size>");
            openUI((int)INDEX_OF_GAMEROOM_UI.RESULT_UI);
        }
    }
Example #9
0
    /// <summary>
    /// 길드 검색 responce 처리 함수
    /// </summary>
    /// <param name="curEventData"></param>
    public void responseSearchGuild(C_BasePacket curEventData)
    {
        //stopWaiting();
        //socialData curSocialData = (socialData)curEventData;
        //if (curSocialData.m_type != SOCIAL_TYPE.GUILD_SEARCH_RESPONSE) return; // 현재 이벤트에 맞는 타입이 아니면 return

        //guildSearchResponse data = (guildSearchResponse)curSocialData; // 실제 데이터
        //onFocusIF();

        //if (data.m_eventData == null)
        //{
        //    // 기존 랜덤 리스트는 유지
        //    ((ResultUI)m_uiList[(int)INDEX_OF_GUILD_UI.RESULT_UI]).setResultMSG("해당 길드를 찾을 수 없습니다!");
        //    openUI((int)INDEX_OF_GUILD_UI.RESULT_UI);       // 해당 길드 없다고 팝업
        //}
        //else
        //{
        //    clearSearchList();      // 기존 랜덤 리스트 clear
        //    // 검색된 길드 slot 생성
        //    guildInfoSlot newSlot = Instantiate(m_guildInfoSlotPrefab, m_parentOfGuildSearchList).GetComponent<guildInfoSlot>();
        //    S_GUILD_INFO newInfo = (S_GUILD_INFO)data.m_eventData;
        //    newSlot.setSlot(newInfo, showGuildInfo);
        //    m_searchSlotList.Add(newSlot);
        //}
    }
Example #10
0
    void responseTryMakeGuild(C_BasePacket curEventData)
    {
        stopWaiting();
        // 현재 이벤트에 맞는 타입이 아니면 return

        // 실패 recv 시 실패 팝업
        // 성공 recv 시 성공 팝업
    }
Example #11
0
 public override void update(C_BasePacket eventData)
 {
     //// 만약 서브 ui가 열려있다면 그쪽으로 throw
     //if (isExistSubUI(eventData) == true)
     //    return;
     //else if (m_listener != null)
     //    m_listener(eventData);
 }
Example #12
0
 public override void update(C_BasePacket eventData)
 {
     // type check . if preData Type => setData
     if (eventData.m_basicType == BasePacketType.basePacketTypePreLoad)
     {
         recvLoadingData(eventData);
     }
 }
Example #13
0
 public override void update(C_BasePacket eventData)
 {
     if (eventData.m_basicType == BasePacketType.basePacketTypeSize)
     {
         onAnomalyEvnet(eventData);
         return;
     }
     isExistSubUI(eventData);
 }
 public override void update(C_BasePacket eventData)
 {
     base.update(eventData);
     // 만약 서브 ui가 열려있다면 그쪽으로 throw
     if (isExistSubUI(eventData) == true)
         return;
     // 아니면 여기서 처리
     if(m_listener!=null)
         m_listener(eventData);
 }
Example #15
0
    void responseAddFriend(C_BasePacket curEventData)
    {
        C_BaseSocialPacket data = (C_BaseSocialPacket)curEventData;

        if (data.m_socialType != SocialPacketType.packetTypeSocialAddFriendResponse)
        {
            return;
        }

        C_SocialPacketAddFriendResponse curData = (C_SocialPacketAddFriendResponse)data;

        stopWaiting();

        if (curData.m_success) // 신청 성공
        {
            clearSearchZone();
            ((ResultUI)m_uiList[(int)INDEX_OF_FRIEND_UI.RESULT_UI]).setResultMSG("친구 추가 신청 완료!");
            openUI((int)INDEX_OF_FRIEND_UI.RESULT_UI);
        }
        else        // 실패 recv 시 실패 팝업
        {
            string errorMSG = "";

            switch (curData.m_errorCode)
            {
            case ErrorTypeAddFriend.none:
                errorMSG = "알수 없는 이유로 친구 추가 실패";
                break;

            case ErrorTypeAddFriend.notExistPlayer:
                break;

            case ErrorTypeAddFriend.srcFriendListIsFull:
                break;

            case ErrorTypeAddFriend.destFriendListIsFull:
                break;

            case ErrorTypeAddFriend.destFriendRequestListIsFull:
                break;

            case ErrorTypeAddFriend.alreadySendRequest:
                break;

            case ErrorTypeAddFriend.count:
                break;
            }



            ((ResultUI)m_uiList[(int)INDEX_OF_FRIEND_UI.RESULT_UI]).setResultMSG(errorMSG);  // 실패 recv 시 실패 팝업 return
            openUI((int)INDEX_OF_FRIEND_UI.RESULT_UI);
        }
    }
Example #16
0
    protected bool isExistSubUI(C_BasePacket eventData)
    {
        if (m_uiIndexStack.Count <= 0)
        {
            return(false);
        }

        m_uiList[m_uiIndexStack.Peek()].update(eventData);

        return(true);
    }
Example #17
0
    public override void update(C_BasePacket eventData)
    {
        // 만약 서브 ui가 열려있다면 그쪽으로 throw
        if (isExistSubUI(eventData) == true)
        {
            return;
        }

        if (m_listener != null)
        {
            m_listener(eventData);
        }
    }
Example #18
0
    /// <summary>
    /// 길드 정보 responce 처리 함수
    /// </summary>
    /// <param name="curEventData"></param>
    public void responseGuildInfo(C_BasePacket curEventData)
    {
        //stopWaiting();
        //socialData curSocialData = (socialData)curEventData;
        //if (curSocialData.m_type != SOCIAL_TYPE.GUILD_INFO_RESPONSE) return; // 현재 이벤트에 맞는 타입이 아니면 return

        //guildInfoResponse data = (guildInfoResponse)curSocialData; // 실제 데이터

        //if( data.m_eventData == null)
        //    openGuildSearchZone();          // 길드 없을 시(data == null), 길드 search zone 활성화
        //else
        //    openGuildInfoZone((S_GUILD_INFO)data.m_eventData);            // 길드 존재 시, 길드 info zone 활성화
    }
Example #19
0
    void responseRoomList(C_BasePacket eventData)
    {
        if (eventData.m_basicType != BasePacketType.basePacketTypeRoom)
        {
            return;
        }
        C_BaseRoomPacket data = (C_BaseRoomPacket)eventData;

        if (data.m_roomType != RoomPacketType.roomPacketTypeRoomListResponse)
        {
            return;
        }
        C_RoomPacketRoomListResponse curData = (C_RoomPacketRoomListResponse)data;


        m_nCurPageNUM   += m_nOffsetPageNUM;
        m_nOffsetPageNUM = 0;
        if (curData.m_listCount <= 0)
        {
            if (m_nCurPageNUM != 1)
            {
                m_nCurPageNUM -= 1;
                requestRoomList(m_nCurPageNUM);
            }
            else
            {
                clearRoomList();
                m_roomListParent.gameObject.SetActive(false);
                m_emptyRoomText.SetActive(true);
            }
        }
        else
        {
            m_nPrePageNUM      = m_nCurPageNUM;
            m_pageNumText.text = m_nCurPageNUM + "";
            clearRoomList();
            for (int i = 0; i < curData.m_listCount; ++i)
            {
                GameObject   roomInfoObject = Instantiate(m_roomInfoPrefabs, m_roomListParent);
                roomInfoSlot curRoomInfo    = roomInfoObject.GetComponent <roomInfoSlot>();
                curRoomInfo.setRoomInfo(i,
                                        curData.m_roomList[i],
                                        "대충 모드",
                                        new roomInfoSlot.d_onClickEvent(roomInfoOnClickEvent));
                m_roomInfoList.Add(curRoomInfo);
            }
            m_roomListParent.gameObject.SetActive(true);
            m_emptyRoomText.SetActive(false);
        }
    }
Example #20
0
 public override void update(C_BasePacket eventData)
 {
     if (eventData.m_basicType == BasePacketType.basePacketTypeSocial)
     {
         responseChat(eventData);
     }
     // 만약 서브 ui가 열려있다면 그쪽으로 throw
     isExistSubUI(eventData);
     m_listener?.Invoke(eventData);
     if (m_bNeedInfo == false)
     {
         responseRoomInfo(eventData);
     }
 }
Example #21
0
    void recvLoadingData(C_BasePacket eventData)
    {
        C_BasePreLoadPacket data = (C_BasePreLoadPacket)eventData;

        if (data.m_preLoadType != PreLoadType.preLoadPlayerInfo)
        {
            return;
        }

        C_PreLoadPacketLoadPlayerInfo curData = (C_PreLoadPacketLoadPlayerInfo)data;

        GameManager.m_Instance.setUserData(curData);
        // 일단은 1개만 받으면 되니 완료 시킴
        m_fCurLoadingState = 1;
    }
Example #22
0
    public void sendMessage(C_BasePacket eventData)
    {
        C_Buffer curBuf = eventData.serialize();

        if (eventData.m_basicType == BasePacketType.basePacketTypeLogin && m_bConnected_loginServer)
        {
            m_stream_loginServer.Write(curBuf.m_buf, 0, curBuf.m_length);
            m_stream_loginServer.Flush();
        }
        else if (m_tcp_mainServer != null && m_bConnected_mainServer)
        {
            m_stream_mainServer.Write(curBuf.m_buf, 0, curBuf.m_length);
            m_stream_mainServer.Flush();
        }
    }
Example #23
0
    void responseAcceptFriendResponse(C_BasePacket eventData)
    {
        if (eventData.m_basicType != BasePacketType.basePacketTypeSocial)
        {
            return;
        }
        C_BaseSocialPacket data = (C_BaseSocialPacket)eventData;

        if (data.m_socialType != SocialPacketType.packetTypeSocialAcceptFriendResponse)
        {
            return;
        }
        C_SocialPacketAcceptFriendResponse curData = (C_SocialPacketAcceptFriendResponse)data;

        stopWaiting();
        Debug.Log("수락 응답 처리");
    }
Example #24
0
 public override void update(C_BasePacket eventData)
 {
     // 만약 서브 ui가 열려있다면 그쪽으로 throw
     if (isExistSubUI(eventData) == true)
     {
         return;
     }
     else if (m_listener != null)
     {
         m_listener(eventData);
     }
     if (eventData.m_basicType == BasePacketType.basePacketTypeSocial)
     {
         responseFriendList(eventData);
         responseConfirmFriend(eventData);
     }
 }
Example #25
0
    void responseDeleteFriend(C_BasePacket curEventData)
    {
        //stopWaiting();
        //socialData curSocialData = (socialData)curEventData;
        //if (curSocialData.m_type != SOCIAL_TYPE.DELETE_FRIEND_RESPONSE) return; // 현재 이벤트에 맞는 타입이 아니면 return

        //deleteFriendResponse data = (deleteFriendResponse)curSocialData; // 실제 데이터

        if (false)    // 성공 recv 시 성공 팝업 및 현재 친구 리스트에서 제거
        {
            //removeSlot_list((byte)data.m_eventData);
        }
        else        // 실패 recv 시 실패 팝업
        {
            ((ResultUI)m_uiList[(int)INDEX_OF_FRIEND_UI.RESULT_UI]).setResultMSG("삭제 실패");
            openUI((int)INDEX_OF_FRIEND_UI.RESULT_UI);
        }
    }
Example #26
0
    void responseChat(C_BasePacket data)
    {
#if DEBUGMODE
        m_chatBox.updateChat(data);
        C_BaseSocialPacket curData = (C_BaseSocialPacket)data;
        if (curData.m_socialType != SocialPacketType.packetTypeSocialChatNormalResponse)
        {
            return;
        }
        C_SocialPacketChatNormalResponse normalData = (C_SocialPacketChatNormalResponse)curData;

        userInfoPrefab clientUser = m_userInfoList.Find((x) => { return(x.getNickName() == normalData.m_nickname); });
        if (clientUser)
        {
            clientUser.chating(normalData.m_message);
        }
#endif
    }
Example #27
0
    public void updateManager()
    {
        float fCurGameTime = GameManager.m_Instance.getGameTime();
        // 현재 시간 보다 낮거나 같은 이벤트만 처리
        C_BasePacket data = null;

        while (m_eventBuffer.Count > 0)
        {
            data = m_eventBuffer.Peek();
            if (fCurGameTime <= data.m_fEventTime)
            {
                break;
            }
            // 이벤트 처리
            processEvent(data);
            m_eventBuffer.Dequeue();
        }
    }
Example #28
0
    private void receive_loginServer()
    {
        try
        {
            m_stream_loginServer = m_tcp_loginServer.GetStream();
            while (m_bConnected_loginServer)
            {
                Thread.Sleep(10);

                int    nBufSize = m_tcp_loginServer.ReceiveBufferSize;
                byte[] buffer   = new byte[nBufSize];


                GameManager.m_Instance.DEBUG("\nalready Recv....");
                int nBytes = m_stream_loginServer.Read(buffer, 0, buffer.Length);
                if (nBytes > 0)
                {
                    // event Enqueue
                    C_BasePacket eventData = pakcetMaker.makePacket(new C_Buffer(buffer, nBytes));
                    m_handler_loginServer(eventData);
                }
                else
                {
                    m_bConnected_loginServer = false;
                    GameManager.m_Instance.setConnectStateLoginServer(false, true);
                    clearLoginTcpClient();
                }
            }
        }
        catch (ThreadAbortException abortex)
        {
            //Debug.Log("정상 연결 종료");
            //clearLoginTcpClient();
        }
        catch (Exception ex)
        {
            m_bConnected_loginServer = false;
            GameManager.m_Instance.setConnectStateLoginServer(false, true);
            clearLoginTcpClient();
        }
    }
Example #29
0
 public override void update(C_BasePacket eventData)
 {
     if (eventData.m_basicType == BasePacketType.basePacketTypeSocial)
     {
         responseChat(eventData);
     }
     // 만약 서브 ui가 열려있다면 그쪽으로 throw
     isExistSubUI(eventData);
     if (m_listener != null)
     {
         m_listener(eventData);
     }
     else if (eventData.m_basicType == BasePacketType.basePacketTypeRoom)
     {
         C_BaseRoomPacket data = (C_BaseRoomPacket)eventData;
         if (data.m_roomType == RoomPacketType.roomPacketTypeRoomListResponse)
         {
             responseRoomList(eventData);
         }
     }
 }
Example #30
0
    // response make room
    void responseMakeRoom(C_BasePacket eventData)
    {
        if (eventData.m_basicType != BasePacketType.basePacketTypeRoom)
        {
            return;
        }
        C_BaseRoomPacket data = (C_BaseRoomPacket)eventData;

        if (data.m_roomType != RoomPacketType.roomPacketTypeMakeRoomResponse)
        {
            return;
        }
        C_RoomPacketMakeRoomResponse curData = (C_RoomPacketMakeRoomResponse)data;

        stopWaiting();

        if (curData.m_success == true)
        {
            m_uiManager.closeUI(1);
            //// 2. setting  game room
            //// ...
            string mode = myApi.GetDescription(m_selectedModeValue);
            if (mode == null)
            {
                throw new System.Exception("makeRoom::Enum Error");
            }
            List <S_RoomUserInfo> userInfo = new List <S_RoomUserInfo>();
            userInfo.Add(new S_RoomUserInfo(1, GameManager.m_Instance.getUserNickName(), 0, false, true));
            // 부모 ui 호출 및 게임 룸 세팅
            ((mainMenuUI)m_uiManager).openGameRoom(true, 1, m_roomNameIF.text, curData.m_roomNumber,
                                                   mode, m_bPublic, m_nSelectedManCountValue, userInfo);
        }
        else
        {
            //실패
            ((failUI)m_uiList[(int)INDEX_MAKEROOM_UI.FAIL_MAKE_ROOM]).setFail();
            openUI((int)INDEX_MAKEROOM_UI.FAIL_MAKE_ROOM);
        }
    }