public void Send_CTS_FriendRoomJoin(uint _freindID, int _unitIdx, byte _refLv,
                                        int _mainWpnIdx, int _subWpnIdx, int _decoIdx1, int _decoIdx2, int _decoIdx3, byte subSkill)
    {
        //함께 하기
        //uint : 방 들어갈 친구 UserID
        //int : 유닛 인덱스
        //byte : 유닛 강화도
        //int : 메인무기
        //int : 보조무기
        //int : 치장1 인덱스
        //int : 치장2 인덱스
        SendBuffer = new ByteData(512, 0);

        SendBuffer.InPutByte(_freindID);
        SendBuffer.InPutByte(_unitIdx);
        SendBuffer.InPutByte(_refLv);
        SendBuffer.InPutByte(_mainWpnIdx);
        SendBuffer.InPutByte(_subWpnIdx);
        SendBuffer.InPutByte(_decoIdx1);
        SendBuffer.InPutByte(_decoIdx2);
        SendBuffer.InPutByte(_decoIdx3);
        SendBuffer.InPutByte(subSkill);

        Net_Script.Send_Data(NETKIND.CTS_FRIEND_ROOM_JOIN, SendBuffer.GetTrimByteData());
    }
    //클라에서 서버로 대기방초대 대한 답변 정보보내기
    public void Send_CTS_Answer_IntiveRoom(uint invitorUserID, bool isAccept, int unitIdx = 0,
                                           byte refLv = 0, int mainWpIdx = 0, int subWpIdx = 0, int decoIdx1 = 0, int decoIdx2 = 0, int decoIdx3 = 0, byte subSkill = 0)
    {
        //uint : 초대자 UsreID
        //bool : true : 초대 수락, false : 초대 거절
        //int : 유닛 인덱스
        //byte : 유닛 강화도
        //int : 메인무기
        //int : 보조무기
        //int : 치장1 인덱스
        //int : 치장2 인덱스

        SendBuffer = new ByteData(512, 0);

        SendBuffer.InPutByte(invitorUserID);
        SendBuffer.InPutByte(isAccept);
        SendBuffer.InPutByte(unitIdx);
        SendBuffer.InPutByte(refLv);
        SendBuffer.InPutByte(mainWpIdx);
        SendBuffer.InPutByte(subWpIdx);
        SendBuffer.InPutByte(decoIdx1);
        SendBuffer.InPutByte(decoIdx2);
        SendBuffer.InPutByte(decoIdx3);
        SendBuffer.InPutByte(subSkill);



        Net_Script.Send_Data(NETKIND.CTS_INVITE_ROOM_ANSWER, SendBuffer.GetTrimByteData());
    }
예제 #3
0
    //================================================================================================================================================================================

    void Send_Quick_Join()
    {
        //byte : 전투 종류 (BattleKind)
        //int : 유닛 인덱스
        //byte : 유닛 강화도
        //int : 메인무기
        //int : 보조무기
        //int : 치장1 인덱스
        //int : 치장2 인덱스
        //int : 치장3 인덱스
        //byte : 서브 스킬

        Send_Buffer = new ByteData(512, 0);

        Send_Buffer.InPutByte((byte)Link_Script.i.Play_Mode);
        Send_Buffer.InPutByte(Link_Script.i.Char_Index);
        Send_Buffer.InPutByte(Link_Script.i.Char_Level);
        Send_Buffer.InPutByte(Link_Script.i.Main_Gun_Index);
        Send_Buffer.InPutByte(Link_Script.i.Sub_Gun_Index);
        Send_Buffer.InPutByte(Link_Script.i.Costume_Kind_1);
        Send_Buffer.InPutByte(Link_Script.i.Costume_Kind_2);
        Send_Buffer.InPutByte(Link_Script.i.Costume_Kind_3);
        Send_Buffer.InPutByte(Link_Script.i.Get_ALL_Char_Data[(uint)Link_Script.i.Char_Index].SubSkill);

        Data_Send(NETKIND.CTS_QUICK_JOIN, Send_Buffer.GetTrimByteData());
    }
    // 클라에서 서버로 채팅서버 로그인 정보 보내기
    public void Send_CTS_Login()
    {
        //uint:웹 유저 ID
        //string:닉네임
        //ushort : 버전
        //string : KILL 문구
        //byte[2] : 국가코드
        ///ushort : 클랜마크
        ///byte : 언어코드
        User _user = UserDataManager.instance.user;

        SendBuffer = new ByteData(512, 0);
        string word = string.Empty;

        byte[] ctCd = new byte[2];

        //유저아이디
        SendBuffer.InPutByte(_user.user_Users.UserID);
        //닉네임
        SendBuffer.InPutByte(_user.user_Users.NkNm);
        //버전
        SendBuffer.InPutByte((ushort)DefineKey.ReleaseVersion());

        //킬문구
        if (_user.User_Words.ContainsKey(USERWORD_TYPE.WRD_KILL))
        {
            word = _user.User_Words[USERWORD_TYPE.WRD_KILL].Words;
        }
        else
        {
            word = "None";
        }
        SendBuffer.InPutByte(word);

        //국가코드
        Debug.Log("소켓서버 로그인 국가코드 :  " + _user.user_Users.CtrCd);
        ctCd = Encoding.UTF8.GetBytes(_user.user_Users.CtrCd);


        SendBuffer.InPutByte(ctCd[0]);
        SendBuffer.InPutByte(ctCd[1]);

        //클랜마크
        if (_user.clan_Clans.ClanID == 0)
        {
            SendBuffer.InPutByte((ushort)0);
        }
        else
        {
            SendBuffer.InPutByte(_user.clan_Clans.ClanMark);
        }

        //언어코드
        byte langCode = (byte)OptionSetting.instance.usingLangueage;

        SendBuffer.InPutByte(langCode);

        Net_Script.Send_Data(NETKIND.CTS_LOGIN, SendBuffer.GetTrimByteData());
    }
    //클라에서 서버로 맵변경 정보 본내기
    public void Send_CTS_map_Change(byte _mapIdx)
    {
        SendBuffer = new ByteData(512, 0);

        SendBuffer.InPutByte(_mapIdx);

        Net_Script.Send_Data(NETKIND.CTS_MAP_CHANGE, SendBuffer.GetTrimByteData());
    }
    //클라에서 서버로 공개방 설정 정보보내기
    public void Send_CTS_RoomOpen(bool isClose)
    {
        //bool : (true : 비공개, false : 공개)
        SendBuffer = new ByteData(512, 0);
        SendBuffer.InPutByte(isClose);

        Net_Script.Send_Data(NETKIND.CTS_OPEN_ROOM, SendBuffer.GetTrimByteData());
    }
    //클라에서 서버로 이동할 팀 정보 보내기
    public void Send_CTS_TeamMove(byte moveTeamIdx, byte slotIdx)
    {
        SendBuffer = new ByteData(512, 0);

        SendBuffer.InPutByte(moveTeamIdx);
        SendBuffer.InPutByte(slotIdx);

        Net_Script.Send_Data(NETKIND.CTS_TEAM_MOVE, SendBuffer.GetTrimByteData());
    }
    public void Send_CTS_SET_KILLWORD(string _killword)
    {
        SendBuffer = new ByteData(512, 0);
        SendBuffer.InPutByte(_killword);

        Net_Script.Send_Data(NETKIND.CTS_SET_KILL_WORDS, SendBuffer.GetTrimByteData());

        UserEditor.Getsingleton.EditLog("소켓서버 킬문구 보냄완료");
    }
예제 #9
0
    //================================================================================================================================================================================

    public void Send_Base_Atk(float Damage_Num)
    {
        // float : 데미지량

        Send_Buffer = new ByteData(128, 0);

        Send_Buffer.InPutByte(Damage_Num);

        Data_Send(NETKIND.CTS_SET_ATK_MAINBASE, Send_Buffer.GetTrimByteData());
    }
예제 #10
0
    //프로토콜 맞춰서 보내기
    public void Send_Data(NETKIND _Protocol, byte[] _Data, bool _Sum_Check = false)
    {
        if (Socket_Client == null || IsConnected == false)
        {
            return;
        }

        if (_Data == null)
        {
            _Data = new byte[0];
        }

        try
        {
            Send_Data_Buffer = new ByteData(HeaderData.Length + Buffer_Length + _Data.Length, 0);

            for (int i = 0; i < HeaderData.Length; i++)
            {
                Send_Data_Buffer.InPutByte(HeaderData[i]);
            }

            Send_Data_Buffer.InPutByte((short)(Buffer_Length + _Data.Length - sizeof(short)));//길이 ("길이" 데이터 제외한 크기)
            Send_Data_Buffer.InPutByte((byte)_Protocol);

            Array.Copy(_Data, 0, Send_Data_Buffer.data, HeaderData.Length + Buffer_Length, _Data.Length);

            Send_Data_Buffer.DataIndex += _Data.Length;


            if (_Sum_Check == false)//바로 패킷 보내기
            {
                Send_Packet(Send_Data_Buffer.GetTrimByteData());
            }
            else//패킷 모아서 보내기
            {
                lock (Total_Send_Lock)
                {
                    Array.Copy(Send_Data_Buffer.data, 0, Total_Send_Packet, Total_Send_Index, Send_Data_Buffer.DataIndex);

                    Total_Send_Index += Send_Data_Buffer.DataIndex;
                }

                //일정양 이상 쌓였으면 꽉차기전에 미리 보내버린다.
                if (Total_Send_Index + 128 >= Total_Send_Packet_Length)
                {
                    Now_Send_Packet();
                }
            }
        }
        catch (Exception ex)
        {
            Error_DisConnect(ex);
        }
    }
    //클라에서 서버로 채팅매세지 정보 보내기
    public void Send_CTS_ChatMessage(byte type, string msg)
    {
        //byte : 종류 (1:방 채팅)
        //string : 메세지 내용

        SendBuffer = new ByteData(512, 0);

        SendBuffer.InPutByte(type);
        SendBuffer.InPutByte(msg);

        Net_Script.Send_Data(NETKIND.CTS_CHAT_MESSAGE, SendBuffer.GetTrimByteData());
    }
    //클라에서 서버로 대기방초대 정보보내기
    public void Send_CTS_InviteRoom(uint inviteUserID, string inviteUserNkNm)
    {
        //초대 보내기
        //uint : 초대자 UserID
        //string : 초대자 닉네임

        SendBuffer = new ByteData(512, 0);

        SendBuffer.InPutByte(inviteUserID);
        SendBuffer.InPutByte(inviteUserNkNm);

        Net_Script.Send_Data(NETKIND.CTS_INVITE_ROOM, SendBuffer.GetTrimByteData());
    }
    IEnumerator Chk_RoomMake()
    {
        //로비 로테이트 비활성
        User.isSelectedCharacter = true;

        //로딩바
        Loadmanager.instance.LoadingUI(true);

        if (!IsConnect())
        {
            //네트워크 소켓 재연결시도
            if (ConnectLogin_State != MMSERVER_STATE.RECONNECT_START)
            {
                UserEditor.Getsingleton.EditLog("방만들기 : 네트웍끊김, 네트웍재연결시도");
                ConnectLogin_State = MMSERVER_STATE.RECONNECT_START;
            }
        }

        while (true)
        {
            if (ConnectLogin_State == MMSERVER_STATE.CONNECT_FAIL)
            {
                break;
            }
            else if (ConnectLogin_State == MMSERVER_STATE.LOGIN_COMPLETE)
            {
                if (!IsConnect())
                {
                    UserEditor.Getsingleton.EditLog("방만들기 : LOGIN_COMPLETE 이지만 네트웍끊김, 네트웍재연결시도");
                    StartCoroutine(Chk_RoomMake());
                    break;
                }

                UserEditor.Getsingleton.EditLog("방만들기 : 네트웍및 로그인이상무 방만들기 시도");

                SetSendBuffer_roomMake();
                Net_Script.Send_Data(NETKIND.CTS_ROOM_MAKE, SendBuffer.GetTrimByteData());
                //로비 로테이트 비활성
                User.isSelectedCharacter = false;

                //로딩바
                Loadmanager.instance.LoadingUI(false);
                break;
            }
            yield return(null);
        }
    }
예제 #14
0
    //================================================================================================================================================================================

    //리스폰시 캐릭터 셋팅 바뀐값 서버에 넘겨주기
    public void Send_Respawn_Char_Init(ByteData _unitData)
    {
        Data_Send(NETKIND.CTS_UNIT_CHANGE, _unitData.GetTrimByteData());
    }
예제 #15
0
    //================================================================================================================================================================================

    //즉시 리스폰 데이터 보내기
    public void Send_Now_Respawn_Data(ByteData _unitData)
    {
        Data_Send(NETKIND.CTS_INSTANT_REVIVAL, _unitData.GetTrimByteData());
    }
예제 #16
0
    //================================================================================================================================================================================

    //봇 죽인 데이터 보내기
    public void Send_Bot_Kill_Data(ByteData _unitData)
    {
        Data_Send(NETKIND.CTS_ALONE_PLAY_KILL, _unitData.GetTrimByteData());
    }
예제 #17
0
    //================================================================================================================================================================================

    //P to P : 데이터 보내기
    public void Send_PTP_Data(ByteData _unitData)
    {
        Data_Send(NETKIND.CTS_GAMEDATA_RELAY, _unitData.GetTrimByteData());
    }
예제 #18
0
    //================================================================================================================================================================================

    //어택성공 보내기
    public void Send_AtkDmg_Data(ByteData _unitData)
    {
        Data_Send(NETKIND.CTS_SET_USER_ATKDMG, _unitData.GetTrimByteData());
    }