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); }
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]); } }
public virtual void update(C_BasePacket eventData) { if (m_bWaiting) { // 만약 이벤트 데이터 타입이 response라면 } }
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; } }
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); }
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 = ""; }
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); } }
/// <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); //} }
void responseTryMakeGuild(C_BasePacket curEventData) { stopWaiting(); // 현재 이벤트에 맞는 타입이 아니면 return // 실패 recv 시 실패 팝업 // 성공 recv 시 성공 팝업 }
public override void update(C_BasePacket eventData) { //// 만약 서브 ui가 열려있다면 그쪽으로 throw //if (isExistSubUI(eventData) == true) // return; //else if (m_listener != null) // m_listener(eventData); }
public override void update(C_BasePacket eventData) { // type check . if preData Type => setData if (eventData.m_basicType == BasePacketType.basePacketTypePreLoad) { recvLoadingData(eventData); } }
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); }
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); } }
protected bool isExistSubUI(C_BasePacket eventData) { if (m_uiIndexStack.Count <= 0) { return(false); } m_uiList[m_uiIndexStack.Peek()].update(eventData); return(true); }
public override void update(C_BasePacket eventData) { // 만약 서브 ui가 열려있다면 그쪽으로 throw if (isExistSubUI(eventData) == true) { return; } if (m_listener != null) { m_listener(eventData); } }
/// <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 활성화 }
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); } }
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); } }
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; }
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(); } }
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("수락 응답 처리"); }
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); } }
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); } }
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 }
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(); } }
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(); } }
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); } } }
// 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); } }