public override void OnPlayerLeftRoom(Photon.Realtime.Player otherPlayer) { base.OnPlayerLeftRoom(otherPlayer); CharacterScript otherScript = (otherPlayer.TagObject as GameObject).GetComponent <CharacterScript>(); PhotonNetwork.DestroyPlayerObjects(otherPlayer); }
public override void OnPlayerEnteredRoom(Photon.Realtime.Player player) { base.OnPlayerEnteredRoom(player); Debug.Log("player has tag object " + player.TagObject); // ChatManager manager = ChatManager.GetComponent<ChatManager>(); // maybe don't need to refresh instance? }
internal static void Postfix(VRRig __instance) { Photon.Realtime.Player player = __instance.photonView?.Owner; Plugin.Log($"GorillaCosmetics: Creating CustomCosmeticsController for {player?.NickName ?? "SELF"}"); __instance.gameObject.AddComponent <CustomCosmeticsController>(); }
private void ReceiveDamage(float value, PhotonMessageInfo info) { //bound to min - max m_currentHealth = Mathf.Clamp(m_currentHealth -= value, 0, MaxHealth); //Time till regeneration starts m_regStartTime = Time.time + TimeTillRegenerate; if (value > 0) { OnReceivedDamage?.Invoke(value); } if (m_photonView.IsMine) { if (m_currentHealth <= 0) { m_lastHit = info.Sender; m_photonView.Owner.SetAlive(false); OnDeath(); } } AddHits(value, info.Sender); OnChangeHealthEvent?.Invoke(m_currentHealth, MaxHealth); }
/// <summary> /// Online: Synchronizes the currently selected bullet of the player for all players via properties. /// </summary> public static void SetBullet(this Photon.Realtime.Player player, int value) { player.SetCustomProperties(new Hashtable() { { bullet, (byte)value } }); }
/// <summary> /// Called after switching to a new MasterClient when the current one leaves. /// Here the new master has to decide whether to enable the object in the scene. /// </summary> public override void OnMasterClientSwitched(Photon.Realtime.Player newMaster) { //only execute on the new master client if (PhotonNetwork.LocalPlayer != newMaster) { return; } //defining cases in which the SpawnRoutine should be skipped switch (colType) { case CollectionType.Use: //the object is already active thus do not trigger a respawn coroutine if (obj != null && obj.activeInHierarchy) { return; } break; case CollectionType.Pickup: //in addition to the check above, here we check for the current state too //if the item is not being carried around and at the home base we can skip the respawn if (obj != null && obj.activeInHierarchy && obj.transform.parent == PoolManager.GetPool(obj).transform&& obj.transform.position == transform.position) { return; } break; } StartCoroutine(SpawnRoutine()); }
/// <summary> /// Online: synchronizes the team number of the player for all players via properties. /// </summary> public static void SetTeam(this Photon.Realtime.Player player, int teamIndex) { player.SetCustomProperties(new Hashtable() { { team, (byte)teamIndex } }); }
public void AddPlayerToList(Player player) { string playerNickname = player.NickName; GameObject go = Instantiate(playerNameElement, playerList.transform, false); TextMeshProUGUI text = go.GetComponent <TextMeshProUGUI>(); if (playerNickname.Equals("Host")) { text.text = playerNickname; text.color = new Color32(255, 177, 66, 255); } else if (GlobalMethods.IsObserver(playerNickname)) { text.text = GlobalMethods.CleanNickname(playerNickname); text.color = new Color32(255, 121, 63, 255); } else { text.text = player.NickName; text.color = new Color32(255, 255, 255, 255); } _activePlayers.Add(player.NickName, go); }
public override void OnPlayerPropertiesUpdate(Photon.Realtime.Player target, Hashtable changedProps) { base.OnPlayerPropertiesUpdate(target, changedProps); foreach (var prop in changedProps) { Debug.Log($"Property {prop.Key} was changed by player {target.NickName}/{target.UserId} to value {prop.Value}"); } }
public void RemovePlayerFromList(Player player) { GameObject go = _activePlayers[player.NickName]; _activePlayers.Remove(player.NickName); DestroyImmediate(go, true); Destroy(go); }
void IPunOwnershipCallbacks.OnOwnershipTransfered(PhotonView targetView, Photon.Realtime.Player previousOwner) { string id = targetView.ViewID.ToString(); string p1 = previousOwner.NickName; string p2 = targetView.Owner.NickName; Debug.Log($"ViewID {id} の所有権が {p1} から {p2} に移譲されました"); }
void CreateOtherPlayers(byte[] bytes, int width, int height, int Mode) { Photon.Realtime.Player localplayer = PhotonNetwork.LocalPlayer; if (PlayerPrefs.GetInt("language") == 1) { AffichagePowerUp.Nature = "Chargement de la partie en cours..."; } else { AffichagePowerUp.Nature = "Loading..."; } AffichagePowerUp.affich = true; CreateRoomMenu.Mode = Mode; Texture2D map = new Texture2D(width, height); map.LoadRawTextureData(bytes); Map.instance.Chargement(map); bool not_found = true; int i = 1; while (not_found && i < PhotonNetwork.PlayerList.Length) { if (PhotonNetwork.PlayerList[i] == localplayer) { not_found = false; } else { i++; } } Map.instance.Change(false); CasqueCRS.instance.Change(true); int coorp = CreateRoomMenu.where[i]; PhotonNetwork.Instantiate(Path.Combine("Prefabs", "Attente"), new Vector3((float)(4 * (coorp % CreateRoomMenu.Xm) + 2.5), (float)3.75, (float)(4 * (coorp / CreateRoomMenu.Xm) + 2.5)), Quaternion.identity); GameObject player = PhotonNetwork.Instantiate(Path.Combine("Prefabs", "Player"), new Vector3((float)(4 * (coorp % CreateRoomMenu.Xm) + 2.5), 3, (float)(4 * (coorp / CreateRoomMenu.Xm) + 2.5)), Quaternion.identity); if (Mode == 0) { PhotonNetwork.Instantiate(Path.Combine("Prefabs", "Plafond"), new Vector3((float)(4 * (coorp % CreateRoomMenu.Xm) + 2.5), (float)3.75, (float)(4 * (coorp / CreateRoomMenu.Xm) + 2.5)), Quaternion.identity); } else { PhotonNetwork.Instantiate(Path.Combine("Prefabs", "PlafondSombre"), new Vector3((float)(4 * (coorp % CreateRoomMenu.Xm) + 2.5), (float)3.75, (float)(4 * (coorp / CreateRoomMenu.Xm) + 2.5)), Quaternion.identity); } CasqueCRS.instance.Change(false); player.GetComponent <PlayerNetwork>().isLocal = true; print("Le joueur a été instancié"); }
public override void OnPlayerEnteredRoom(Photon.Realtime.Player other) { Debug.LogFormat("OnPlayerEnteredRoom() {0}", other.NickName); if (PhotonNetwork.IsMasterClient && ClientBattleManager.LocalPlayerInstance == null) { Debug.LogFormat("OnPlayerEnteredRoom IsMasterClient {0}", PhotonNetwork.IsMasterClient); LoadArena(); } }
/// <summary> /// Online: Clears all networked variables of the player via properties in one instruction. /// </summary> public static void Clear(this Photon.Realtime.Player player) { player.SetCustomProperties(new Hashtable() { { PlayerExtensions.bullet, (byte)0 }, { PlayerExtensions.health, (byte)0 }, { PlayerExtensions.shield, (byte)0 } }); }
public override void OnPlayerLeftRoom(Photon.Realtime.Player other) { Debug.LogFormat("OnPlayerLeftRoom() {0}", other.NickName); if (PhotonNetwork.IsMasterClient) { Debug.LogFormat("OnPlayerLeftRoom IsMasterClient {0}", PhotonNetwork.IsMasterClient); LoadArena(); } }
public override void OnPlayerLeftRoom(Photon.Realtime.Player otherPlayer) { Debug.LogFormat("OnPlayerLeftRoom() {0}", otherPlayer.NickName); // seen when other disconnects if (PhotonNetwork.IsMasterClient) { Debug.LogFormat("OnPlayerLeftRoom IsMasterClient {0}", PhotonNetwork.IsMasterClient); // called before OnPlayerLeftRoom } }
private static void OnMasterChange(Photon.Realtime.Player __0) { if (__0 == null) { return; } OnMasterChanged?.DelegateSafeInvoke(__0); }
public override void OnPlayerEnteredRoom(Photon.Realtime.Player newPlayer) { Debug.LogFormat("OnPlayerEnteredRoom() {0}", newPlayer.NickName); // not seen if you're the player connecting if (PhotonNetwork.IsMasterClient) { Debug.LogFormat("OnPlayerEnteredRoom IsMasterClient {0}", PhotonNetwork.IsMasterClient); // called before OnPlayerLeftRoom } }
protected override void RPCActivateItem(Photon.Realtime.Player photonPlayer) { if (IsMine) { Player player = Player.GetFromPhotonPlayer(photonPlayer); player.GivePatch(); } Despawn(); }
NetworkPlayersListElement Create(PunPlayer player) { var instance = Instantiate(prefab, transform); var element = instance.GetComponent <NetworkPlayersListElement>(); element.Init(player); return(element); }
public override void OnPlayerEnteredRoom(Photon.Realtime.Player newPlayer) { Debug.Log($"Player {newPlayer.NickName} entered"); if (PhotonNetwork.IsMasterClient) { Debug.Log($"Player is Master : {PhotonNetwork.IsMasterClient}"); LoadLevel(); } }
public override void OnPlayerLeftRoom(Photon.Realtime.Player otherPlayer) { Debug.Log($"Player {otherPlayer.NickName} has left"); if (PhotonNetwork.IsMasterClient) { Debug.Log($"Player is Master : {PhotonNetwork.IsMasterClient}"); LoadLevel(); } }
public void Init(Vector3 direction, Photon.Realtime.Player player, GameObject owner, float damage) { m_ownerObject = owner; m_ownerPlayer = player; m_damage = damage; m_direction = direction; m_ownerView = owner.GetComponent <PhotonView>(); transform.LookAt(transform.position + direction * 100); m_isMoving = true; }
void OnPlayerEntered(PunPlayer player) { List.Add(player); if (OnJoined != null) { OnJoined(player); } InvokeChange(); }
void OnPlayerLeft(PunPlayer player) { List.Remove(player); if (OnLeft != null) { OnLeft(player); } InvokeChange(); }
/// <summary>History of received Damage.</summary> /// <param name="value">dealed damage</param> /// <param name="from">player who hitted</param> private void AddHits(float value, Photon.Realtime.Player from) { if (!m_receivedHits.ContainsKey(from)) { m_receivedHits.Add(from, value); } else { m_receivedHits[from] += value; } }
public void Setup(int senderId, int playerViewId) { Debug.LogError(senderId + " " + playerViewId); name = "RemotePlayer: " + senderId; m_playerSync.IsRemotePlayer = true; m_playerSync.playerId = senderId; m_playerPhotonView.ViewID = playerViewId; m_photonPlayer = Array.Find(PhotonNetwork.PlayerListOthers, item => item.ActorNumber == senderId); m_playerName.text = m_photonPlayer.NickName; }
private void Death(Photon.Realtime.Player lastHit) { ScriptableTextDisplay.Instance.InitializeScriptableText(3, PlayerHealthModel.transform.position, "Killed by " + lastHit.NickName + "!"); if (m_killFeed != null) { m_killFeed.AddFeed(lastHit); } Destroy(gameObject); }
/// <summary> /// 玩家数值更新 /// </summary> /// <param name="targetPlayer">玩家</param> /// <param name="changedProps">改变数值组</param> public override void OnPlayerPropertiesUpdate(Photon.Realtime.Player targetPlayer, Hashtable changedProps) { base.OnPlayerPropertiesUpdate(targetPlayer, changedProps); Debug.Log("Properties Changed!"); if (targetPlayer != null && Equals(targetPlayer, playerBSideOnline.PlayerPhoton)) { // 需要优化 playerBSideOnline.UpdateRemotePlayerProperties(); } }
public static Treveris GetTreverisByPlayer(Player player) { if (_currentTreveris != null) { _currentTreveris.gameObject.SetActive(false); } _currentTreveris = _treveri[player.ActorNumber]; _currentTreveris.gameObject.SetActive(true); return(_currentTreveris); }