Exemplo n.º 1
0
    //P to P  : 데이터 받기
    void Recv_PTP_Data(ByteData _Receive_data)
    {
        if (Game_Script == null)
        {
            return;
        }

        Relay_Protocol = 0;
        Relay_User_ID  = 0;

        _Receive_data.OutPutVariable(ref Relay_Protocol);

        switch ((RELAY_PROTOCOL)Relay_Protocol)
        {
        case RELAY_PROTOCOL.MOVE:    //유닛 이동 데이터 받기

            Game_Script.Recv_Char_Move_Data(_Receive_data);

            break;

        case RELAY_PROTOCOL.SHOT:    //유닛 총쏘는 데이터 받기

            _Receive_data.OutPutVariable(ref Relay_User_ID);

            if (Game_Script.Char_Script.ContainsKey(Relay_User_ID) == false)
            {
                break;
            }

            Game_Script.Char_Script[Relay_User_ID].Network_Char_Shot_Pos(_Receive_data);

            break;

        case RELAY_PROTOCOL.SHOTGUN_SHOT:    //유닛 샷건 총쏘는 데이터 받기

            _Receive_data.OutPutVariable(ref Relay_User_ID);

            if (Game_Script.Char_Script.ContainsKey(Relay_User_ID) == false)
            {
                break;
            }

            Game_Script.Char_Script[Relay_User_ID].Network_Char_ShotGun_Pos(_Receive_data);

            break;

        case RELAY_PROTOCOL.GRENADE_MOVE:    //수류탄 움직임 데이터

            Game_Script.Recv_Grenade_Move_Data(_Receive_data);

            break;

        case RELAY_PROTOCOL.GRENADE_EXPLOSION:    //수류탄 터지는 데이터

            Game_Script.Recv_Explosion_Data(_Receive_data);

            break;

        case RELAY_PROTOCOL.SKILL:    //유닛 스킬 데이터 받기

            Game_Script.Recv_Char_Skill_Data(_Receive_data);

            break;

        case RELAY_PROTOCOL.REVENGE_OK:    //복수 성공 데이터 받기

            _Receive_data.OutPutVariable(ref Relay_User_ID);

            if (Game_Script.Char_Script.ContainsKey(Relay_User_ID) == false)
            {
                break;
            }

            Game_Script.Char_Script[Relay_User_ID].Revenge_OK_Recv_Data();

            break;

        case RELAY_PROTOCOL.BARRIER_CHECK:    //방어막 데이터 받기

            _Receive_data.OutPutVariable(ref Relay_User_ID);

            if (Game_Script.Char_Script.ContainsKey(Relay_User_ID) == false)
            {
                break;
            }

            Game_Script.Char_Script[Relay_User_ID].Barrier_Recv_Data(_Receive_data);

            break;

        case RELAY_PROTOCOL.VOICE_CHAT:    //음성챗팅 데이터 받기

            Game_Script.Recv_Voice_Chat_Data(_Receive_data);

            break;

        case RELAY_PROTOCOL.OBTAINITEM_MOVE:     //게임획득아이템 데이터받기
            Game_Script.Recv_OtainGameItem_Move_Data(_Receive_data);
            break;

        default:

            Disconnect(" P to P 선언 되지 않은 프로토콜 : " + Relay_Protocol);

            break;
        }
    }