void CheckAllReady() { if (!PhotonNetwork.isMasterClient || PhotonNetwork.room.PlayerCount < 2) { return; } int playersReady = 0; foreach (PhotonPlayer p in PhotonNetwork.playerList) { if (p.CustomProperties.ContainsKey(Constants.PLAYER_READY) && (bool)p.CustomProperties[Constants.PLAYER_READY]) { playersReady++; } } if (playersReady == PhotonNetwork.room.PlayerCount) { // loop over all players in room and give them a spawnpoint based on order in list for (int i = 0; i < PhotonNetwork.room.PlayerCount; i++) { PhotonHelpers.SetPlayerProperty(PhotonNetwork.playerList[i], Constants.SPAWN_ID, i); } CancelInvoke("CheckAllReady"); PhotonNetwork.LoadLevel(PhotonNetwork.player.CustomProperties[Constants.LEVEL_SCENE_NAME].ToString()); } }
public void OnLevelSelected(int level) { // set level ID of nominated level and set that we are ready PhotonHelpers.SetPlayerProperty(PhotonNetwork.player, Constants.PLAYER_READY, true); PhotonHelpers.SetPlayerProperty(PhotonNetwork.player, Constants.NOMINATED_LEVEL, level); ChangeAllButtonsState(false); // tell server that we are selected and ready _playerInfo.photonView.RPC("SetReadyUI", PhotonTargets.All, PhotonNetwork.player.ID, true); }
private bool m_bIsConnecting = false; // If we are in the progress of connecting to a room void Awake() { // Register helpers used throughout application PhotonHelpers.register(); PhotonNetwork.AutomaticallySyncScene = true; // Connect to photon PhotonNetwork.ConnectUsingSettings(); PhotonNetwork.GameVersion = gameVersion; }
/// <summary> /// Helper for spawning a monster selected by passed in player. This /// is used by the PlayerController /// </summary> /// <param name="prefabName">Name of prefab</param> /// <param name="spawningPlayer">Player that is spawning in the monster</param> public void spawnMonster(string prefabName, Photon.Realtime.Player spawningPlayer) { if (PhotonNetwork.IsConnected) { photonView.RPC("spawnMonsterRPC", PhotonHelpers.getFirstPlayerThatIsnt(spawningPlayer), prefabName); } else { spawnMonsterRPC(prefabName); } }
void LevelToPlay(string level, string levelName, int winnerIndex, int one, int two, int three, int four) { // stop count and cancel to keep checking if all is selected _counter.CancelCount(); CancelInvoke("AllNominatedLevel"); // set witch level we will load later and reset ready for next screen PhotonHelpers.SetPlayerProperty(PhotonNetwork.player, Constants.LEVEL_SCENE_NAME, level); PhotonHelpers.SetPlayerProperty(PhotonNetwork.player, Constants.PLAYER_READY, false); // starrt the animation _handle = Timing.RunCoroutine(_PickRandomLevel(winnerIndex, levelName, new int[] { one, two, three, four })); }
IEnumerator <float> _showWinner(string name) { yield return(Timing.WaitForSeconds(1)); PhotonHelpers.SetPlayerProperty(PhotonNetwork.player, Constants.PLAYER_READY, false); _content.SetActive(true); _winnerNameText.text = name; // set witch page to set active when returning to menu scene and that all players left in room need to claim a UIPlayerBox MainMenuSystem.reclaimPlayerUI = true; MainMenuSystem.startPage = "LevelSelectScreen"; yield return(Timing.WaitForSeconds(3)); if (PhotonNetwork.isMasterClient) { PhotonNetwork.LoadLevel("Menu"); } }
public void OnReady() { if (_imReady) { return; } _imReady = true; ChangeAllButtonsState(false); // set nickname to the name of the character for now (this will store the steam nick later instead) PhotonNetwork.player.NickName = _currentView.name; // set character chosen so we can spawn it when the game starts PhotonHelpers.SetPlayerProperty(PhotonNetwork.player, Constants.CHARACTER_NAME, _currentView.name); PhotonHelpers.SetPlayerProperty(PhotonNetwork.player, Constants.SKIN_ID, _currentSkin); PhotonHelpers.SetPlayerProperty(PhotonNetwork.player, Constants.PLAYER_READY, true); // tell everyone to set that this player is ready in thier UI _playerInfo.photonView.RPC("SetReadyUI", PhotonTargets.All, PhotonNetwork.player.ID, true); }