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