Exemple #1
0
    // HQ가 파괴되었다는 패킷 수신 함수
    public void OnReceiveGameFinishPacket(PacketId id, byte[] data)
    {
        GameFinishPacket packet     = new GameFinishPacket(data);
        GameFinishData   winnerData = packet.GetPacket();

        HTTPManager httpManager = new HTTPManager();
        UserInfo    userInfo    = GameObject.Find("DataObject").GetComponent <UserInfo>();

        bool win = userInfo.userData.playerCamp == winnerData.winnerCamp;

        httpManager.UpdateUserWinReq(userInfo.userData.id, win);

        UIManager.instance.ActivateGameEnd(win);

        // 서버에 보낼 게임 정보 업데이트
        userInfo.userPlayData.achievescore = 0;
        userInfo.userPlayData.victory      = 0;
        userInfo.userPlayData.lose         = 0;
        userInfo.userPlayData.death        = 1;
        userInfo.userPlayData.imageid      = 0;

        userInfo.userPlayData.kill   = killCount;
        userInfo.userPlayData.damage = (int)damageCount;

        // Flask 서버에 업적 업데이트 및 점수 업데이트.
        httpManager.UpdateAchieveReq(userInfo.userData.id, userInfo.userPlayData);

        // n 초 뒤에 로비씬으로 이동.
        StartCoroutine(GoBackToLobby());
    }
Exemple #2
0
        public bool Serialize(GameFinishData packet)
        {
            bool ret = true;

            ret &= Serialize(packet.winnerCamp);
            ret &= Serialize(packet.trash0);
            ret &= Serialize(packet.trash1);
            ret &= Serialize(packet.trash2);
            ret &= Serialize(packet.trash3);
            ret &= Serialize(packet.trash4);
            ret &= Serialize(packet.trash5);
            ret &= Serialize(packet.trash6);
            ret &= Serialize(packet.trash7);

            return(ret);
        }
Exemple #3
0
        public bool Deserialize(ref GameFinishData element)
        {
            // 데이터가 정의되어있지 않다면
            if (GetDataSize() == 0)
            {
                return(false);
            }

            bool ret = true;

            ret &= Deserialize(ref element.winnerCamp);
            ret &= Deserialize(ref element.trash0);
            ret &= Deserialize(ref element.trash1);
            ret &= Deserialize(ref element.trash2);
            ret &= Deserialize(ref element.trash3);
            ret &= Deserialize(ref element.trash4);
            ret &= Deserialize(ref element.trash5);
            ret &= Deserialize(ref element.trash6);
            ret &= Deserialize(ref element.trash7);

            return(ret);
        }
Exemple #4
0
    protected override void Update()
    {
        if (status.CHP <= 0)
        {
            GameFinishData data = new GameFinishData();

            if (CampNum == 1)
            {
                Debug.Log("1P의 패배!");
                data.winnerCamp = 2;    // 참고 : if GetComponent<UserInfo>().userData.playerCamp == 1 then is1p = true.
            }
            else
            {
                Debug.Log("2P의 패배!");
                data.winnerCamp = 1;
            }

            GameFinishPacket packet = new GameFinishPacket(data);
            GameObject.Find("NetworkManager").GetComponent <NetworkManager>().SendReliable <GameFinishData>(packet);

            Destroy(gameObject);
        }
    }