コード例 #1
0
    //클라에서 서버로 대기방초대 대한 답변 정보보내기
    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());
    }
コード例 #2
0
    //클라에서 서버로 이동할 팀 정보 보내기
    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());
    }
コード例 #3
0
    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());
    }
コード例 #4
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());
    }
コード例 #5
0
    // 클라에서 서버로 채팅서버 로그인 정보 보내기
    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());
    }
コード例 #6
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);
        }
    }
コード例 #7
0
    //클라에서 서버로 채팅매세지 정보 보내기
    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());
    }
コード例 #8
0
    //폭발 데이터 보내기
    void Grenade_Explosion_Send_Data()
    {
        ByteData Send_Buffer = new ByteData(128, 0);

        Send_Buffer.InPutByte((byte)RELAY_PROTOCOL.GRENADE_EXPLOSION);
        Send_Buffer.InPutByte(OJ_Name);

        Send_Buffer.InPutByte((byte)EXPLOSION_STATE.BOOM_INIT);
        Send_Buffer.InPutByte(Explosion_Pos);

        Net_Script.Send_PTP_Data(Send_Buffer);
    }
コード例 #9
0
    //클라에서 서버로 대기방초대 정보보내기
    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());
    }
コード例 #10
0
    void SetSendBuffer_roomMake()
    {
        //비공개 방 만들기
        //int : 유닛 인덱스
        //byte : 유닛 강화도
        //int : 메인무기
        //int : 보조무기
        //int : 치장1 인덱스
        //int : 치장2 인덱스


        User _user = UserDataManager.instance.user;

        User_Units unit = _user.User_Units[_user.User_useUnit.UnitIdxs[0]];

        SendBuffer = new ByteData(512, 0);
        SendBuffer.InPutByte((int)unit.Unitidx);
        SendBuffer.InPutByte(unit.RefLv);
        SendBuffer.InPutByte((int)unit.MainWpnIdx);
        SendBuffer.InPutByte((int)unit.SubWpnIdx);
        SendBuffer.InPutByte((int)unit.DecoIdx1);
        SendBuffer.InPutByte((int)unit.DecoIdx2);
        SendBuffer.InPutByte((int)unit.DecoIdx3);
        SendBuffer.InPutByte(unit.SubSkill);
    }
コード例 #11
0
    //어택 데미지 데이터 받기
    public void Bot_Damage_Operation(float MY_Total_Damage, Vector3 _ATK_Start_Vec, Vector3 _ATK_Target_Vec, byte _Gun_Type, bool _HeadShot_Check, bool Critical_Check)
    {
        //------------------------------------------------------------------------------------------------------------------------------------------------------------------------

        MY_HP -= MY_Total_Damage;
        if (MY_HP <= 0.0f)
        {
            MY_HP = 0.0f;
        }

        if (MY_HP <= 0.0f && Die_State == DIE_STATE.IDEL)
        {
            Die_State          = DIE_STATE.ANI_START;
            Die_Atk_Start_Vec  = _ATK_Start_Vec;
            Die_Atk_Target_Vec = _ATK_Target_Vec;
            Die_Atk_GunType    = _Gun_Type;

            Game_Script.Bot_Kill_Count++;

            Game_Script.Bot_Kill_Operation(User_ID, _HeadShot_Check);

            //--------------------------------------------------------------------------------------
            ByteData Send_Buffer = new ByteData(128, 0);

            //현재 플레이어가 사용하고 있는 유닛의 인덱스
            Send_Buffer.InPutByte(Game_Script.Char_Script[Link_Script.i.User_ID].Char_Index);

            //봇 죽인 데이터 보내기
            Net_Script.Send_Bot_Kill_Data(Send_Buffer);
            //--------------------------------------------------------------------------------------
        }

        //수류탄, 유탄, 자살이 아닐때 캐릭터 맞았을때 터지는 임펙트 안그려준다.
        if ((GUN_TYPE)_Gun_Type != GUN_TYPE.GRENADE && (GUN_TYPE)_Gun_Type != GUN_TYPE.BOOMER_SKILL && (GUN_TYPE)_Gun_Type != GUN_TYPE.LAUNCHER && (GUN_TYPE)_Gun_Type != GUN_TYPE.SUICIDE)
        {
            Char_Hit_Effect_Check   = true;
            Char_Hit_Effect_GunType = (GUN_TYPE)_Gun_Type;
            Char_Hit_Effect_Vec     = _ATK_Target_Vec;
        }

        //------------------------------------------------------------------------------------------------------------------------------------------------------------------------

        //데미지 숫자 만들어주기
        Transform GamePlay_Damage_Transform = Instantiate(Resources.Load("Battle_Prefab/2_UI_Folder/GamePlay_Damage") as GameObject).GetComponent <Transform>();

        GamePlay_Damage_Transform.SetParent(GameObject.Find("Canvas").transform);
        GamePlay_Damage_Transform.localScale    = new Vector3(1, 1, 1);
        GamePlay_Damage_Transform.localPosition = new Vector3(0, 0, 0);
        GamePlay_Damage_Transform.SetAsLastSibling();//가장 나중에 그려진 레이어로 맞추기

        //텍스트 스크립트 초기화
        GamePlay_Damage_Transform.GetComponent <Damage_Num_Script>().Make_Init(User_ID, Critical_Check, MY_Total_Damage, Damage_Num_Effect_Dir);

        if (++Damage_Num_Effect_Dir >= 2)
        {
            Damage_Num_Effect_Dir = 0;
        }

        //------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    }
コード例 #12
0
    public void Send_ObtainGameItem_Data()
    {
        if (Game_Script.GameOver_Check)
        {
            return;
        }


        ByteData Send_Buffer = new ByteData(128, 0);

        Send_Buffer.InPutByte((byte)RELAY_PROTOCOL.OBTAINITEM_MOVE);
        Send_Buffer.InPutByte((byte)CreatedIndex);
        Send_Buffer.InPutByte(Tr.position);
        Send_Buffer.InPutByte(Tr.rotation.eulerAngles);

        Net_Script.Send_PTP_Data(Send_Buffer);
    }
コード例 #13
0
    //클라에서 서버로 공개방 설정 정보보내기
    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());
    }
コード例 #14
0
    //클라에서 서버로 맵변경 정보 본내기
    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());
    }
コード例 #15
0
    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("소켓서버 킬문구 보냄완료");
    }
コード例 #16
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());
    }
コード例 #17
0
    //리스폰시 캐릭터 셋팅 바뀐값 서버에 넘겨주기
    void Char_Setting_Send()
    {
        //int : 유닛 아이디
        //byte : 유닛 강화도
        //int : 메인무기
        //int : 보조무기
        //int : 치장1 인덱스
        //int : 치장2 인덱스
        //int : 치장3 인덱스
        //byte : 서브 스킬

        ByteData Send_Buffer = new ByteData(128, 0);

        Send_Buffer.InPutByte(Toggle_Char_Index);
        Send_Buffer.InPutByte(Toggle_Char_Level);
        Send_Buffer.InPutByte(Toggle_Main_Gun_Index);
        Send_Buffer.InPutByte(Toggle_Sub_Gun_Index);
        Send_Buffer.InPutByte(Link_Script.i.Get_ALL_Char_Data[(uint)Toggle_Char_Index].DecoIdx1);
        Send_Buffer.InPutByte(Link_Script.i.Get_ALL_Char_Data[(uint)Toggle_Char_Index].DecoIdx2);
        Send_Buffer.InPutByte(Link_Script.i.Get_ALL_Char_Data[(uint)Toggle_Char_Index].DecoIdx3);
        Send_Buffer.InPutByte(Link_Script.i.Get_ALL_Char_Data[(uint)Toggle_Char_Index].SubSkill);

        Net_Script.Send_Respawn_Char_Init(Send_Buffer);
    }
コード例 #18
0
    //수류탄 움직임 네트웍으로 전송하기
    public void Grenade_Send_Data()
    {
        if (Game_Script.GameOver_Check)
        {
            return;
        }

        if (Explosion_State != EXPLOSION_STATE.IDEL)
        {
            return;
        }

        ByteData Send_Buffer = new ByteData(128, 0);

        Send_Buffer.InPutByte((byte)RELAY_PROTOCOL.GRENADE_MOVE);
        Send_Buffer.InPutByte(OJ_Name);
        Send_Buffer.InPutByte(User_ID);
        Send_Buffer.InPutByte((byte)Gun_Type);
        Send_Buffer.InPutByte(transform.position);
        Send_Buffer.InPutByte(transform.rotation.eulerAngles);

        Net_Script.Send_PTP_Data(Send_Buffer);
    }