// 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()); }
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); }
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); }
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); } }