Beispiel #1
0
 public void OnTriggerEnter(Collider other)
 {
     if (other.transform.tag == forTaggedGO)
     {
         PhotonPlayer player = other.GetComponent <PhotonView>().owner;
         if (player != null &&
             other.GetComponent <PhotonView>().isMine &&
             player.GetAttribute <bool>(PlayerAttributes.HASSPAWNED, false) &&
             player.GetPlayerState() == PlayerState.inGame)
         {
             int tid = player.getTeamID();
             if (tid == 1 || tid == 2)
             {
                 playerInZone.Add(player);
                 countsHasChanged = true;
                 player.SetAttribute(PlayerAttributes.INPRISONZONE, true);
             }
             if (tid == 1 && player.GetAttribute <bool>(PlayerAttributes.ISCAPTURED, false))
             {
                 player.SetAttribute(PlayerAttributes.ISCAPTURED, false);
                 ChatVik.SendRoomMessage(player.NickName + " s'est évadé de prison !");
             }
         }
     }
 }
Beispiel #2
0
    /// <summary>
    /// Réinitialise tous les attributs par défauts d'un joueur
    /// </summary>
    /// <param name="Player"></param>
    /// <param name="reinitgameattr"></param>
    public void InitPlayerAttributes(PhotonPlayer Player, bool reinitgameattr)
    {
        if (!PhotonNetwork.inRoom)
        {
            return;
        }
        Player.SetAttribute(PlayerAttributes.ISIDLE, false);
        Player.SetAttribute(PlayerAttributes.ISREADY, false);
        Player.SetAttribute(PlayerAttributes.ISLAGGY, false);
        Player.SetAttribute(PlayerAttributes.ISROOMADMIN, false);
        Player.SetAttribute(PlayerAttributes.ISIMMOBILIZED, PhotonNetwork.room.GetAttribute(RoomAttributes.IMMOBILIZEALL, false));
        Player.SetPlayerState(PlayerState.isReadyToPlay);
        if (reinitgameattr)
        {
            Player.SetAttribute(PlayerAttributes.SCORE, 0);
            Player.SetAttribute(PlayerAttributes.CAPTURESCORE, 0);

            Player.SetAttribute(PlayerAttributes.ISCAPTURED, false);
            Player.SetAttribute(PlayerAttributes.INPRISONZONE, false);
            Player.SetAttribute(PlayerAttributes.testKey, "INITIED");
        }
        UpdateReadyBtnState();
    }
Beispiel #3
0
 public void OnTriggerEnter(Collider other)
 {
     if (other.transform.tag == forTaggedGO)
     {
         PhotonPlayer player = other.GetComponent <PhotonView>().owner;
         if (player != null &&
             other.GetComponent <PhotonView>().isMine &&
             player.GetAttribute <bool>(PlayerAttributes.HASSPAWNED, false) &&
             player.GetPlayerState() == PlayerState.inGame)
         {
             //print("Player " + other.name + " enter " + zoneName);
             player.SetAttribute(PlayerAttributes.INZONE, zoneName);
         }
     }
 }
    /// <summary>
    /// On capture un voleur si il se trouve dans la ligne de mire du joueur et que celui ci reste appuyé sur E.
    /// </summary>
    /// <param name="thiefTarget"></param>
    /// <param name="t_thief"></param>
    /// <returns></returns>
    IEnumerator catchThief(PhotonPlayer thiefTarget, Transform t_thief)
    {
        isCapturingThief = true;
        float timeCatching = Time.timeSinceLevelLoad;
        bool  waitCatching = true;

        while (waitCatching && isCapturingThief)
        {
            yield return(new WaitForSeconds(0.5f));

            RaycastHit hitInfo = new RaycastHit();
            bool       hit     = Physics.Raycast(
                transform.forward * 0.3f + transform.position
                , transform.forward
                , out hitInfo
                , 1.2f
                , LayerMask.GetMask("NetEntity"));
            if (Input.GetKey(KeyCode.E) && hit && hitInfo.transform == t_thief)
            {
                if (Time.timeSinceLevelLoad - timeCatching > durationCatch)
                {
                    waitCatching = false;
                }
            }
            else
            {
                isCapturingThief = false;
                yield break;
            }
        }
        if (isCapturingThief)
        {
            if (PhotonNetwork.room.GetRoomState() == GameState.RoundRunning)
            {
                PhotonNetwork.player.AddPlayerScore(CapturePoint);
                PhotonNetwork.player.AddPlayerCaptureScore(1);
                PhotonNetwork.room.AddTeamScore(PhotonNetwork.player.getTeamID(), CapturePoint);
            }

            ChatVik.SendRoomMessage(PhotonNetwork.player.NickName + " has captured " + thiefTarget.NickName);
            thiefTarget.SetAttribute(PlayerAttributes.ISCAPTURED, true);
            t_thief.GetComponent <PhotonView>().RPC("rpc_capture", PhotonTargets.All);
            isCapturingThief = false;
        }
    }
Beispiel #5
0
    public void rpc_UnspawnPlayerAvatar(PhotonPlayer player)
    {
        if (!PhotonNetwork.inRoom || !player.GetAttribute <bool>(PlayerAttributes.HASSPAWNED, false))
        {
            return;
        }

        //RESET DE LAA CAMERA UNIQUEMENT CHEZ LE CLIENT CONCERNEE
        if (PhotonNetwork.player == player)
        {
            ResetCameraTransform();
            //DESTROY AVATAR UNIQUEMENT PAR LE MASTERCLIENT
            //PhotonNetwork.DestroyPlayerObjects(player);
            DestroyPlayerCharacters(player);
            PlayerAvatar = null;
            player.SetAttribute(PlayerAttributes.HASSPAWNED, false);
        }
    }
Beispiel #6
0
 public void OnTriggerExit(Collider other)
 {
     if (other.transform.tag == forTaggedGO)
     {
         PhotonPlayer player = other.GetComponent <PhotonView>().owner;
         if (player != null &&
             other.GetComponent <PhotonView>().isMine &&
             player.GetAttribute <bool>(PlayerAttributes.HASSPAWNED, false) &&
             player.GetPlayerState() == PlayerState.inGame)
         {
             int tid = player.getTeamID();
             if (tid == 1 || tid == 2)
             {
                 playerInZone.Remove(player);
                 player.SetAttribute(PlayerAttributes.INPRISONZONE, false);
                 countsHasChanged = true;
             }
         }
     }
 }
 public static void AddPlayerCaptureScore(this PhotonPlayer player, int value)
 {
     player.SetAttribute(PlayerAttributes.CAPTURESCORE, player.GetAttribute(PlayerAttributes.CAPTURESCORE, 0) + value);
 }
 public static void SetPlayerState(this PhotonPlayer player, PlayerState state)
 {
     player.SetAttribute(PlayerAttributes.PLAYERSTATE, (int)state);
 }