/// <summary>Switch that player's team to the one you assign.</summary> /// <remarks>Internally checks if this player is in that team already or not. Only team switches are actually sent.</remarks> /// <param name="player"></param> /// <param name="character"></param> public static void SetCharacter(this Player player, PhotonCharacters.Character character) { if (!PhotonNetwork.IsConnectedAndReady) { Debug.LogWarning("ChooseCharacter was called in state: " + PhotonNetwork.NetworkClientState + ". Not IsConnectedAndReady."); return; } PhotonCharacters.Character currentCharacter = player.GetCharacter(); if (currentCharacter != character) { player.SetCustomProperties(new Hashtable() { { PhotonCharacters.CharacterPlayerProp, (byte)character } }); } }
//public void ChooseTeam(string team, Player player) //{ // switch (team) // { // case "Red": // player.SetTeam(PhotonTeams.Team.Red); // photonTeams.UpdateTeams(); // if (player.GetCharacter() != PhotonCharacters.Character.None) // { // player.SetCharacter(PhotonCharacters.Character.None); // } // break; // case "Blue": // player.SetTeam(PhotonTeams.Team.Blue); // photonTeams.UpdateTeams(); // if (player.GetCharacter() != PhotonCharacters.Character.None) // { // player.SetCharacter(PhotonCharacters.Character.None); // } // break; // case "Random": // if (PhotonTeams.PlayersPerTeam[PhotonTeams.Team.Red].Count == PhotonTeams.PlayersPerTeam[PhotonTeams.Team.Blue].Count) // { // int random = Random.Range(0, 2); // if (random == 0) // { // player.SetTeam(PhotonTeams.Team.Red); // photonTeams.UpdateTeams(); // } // else // { // player.SetTeam(PhotonTeams.Team.Blue); // photonTeams.UpdateTeams(); // } // } // else // { // if (PhotonTeams.PlayersPerTeam[PhotonTeams.Team.Red].Count < PhotonTeams.PlayersPerTeam[PhotonTeams.Team.Blue].Count) // { // player.SetTeam(PhotonTeams.Team.Red); // photonTeams.UpdateTeams(); // } // if (PhotonTeams.PlayersPerTeam[PhotonTeams.Team.Red].Count > PhotonTeams.PlayersPerTeam[PhotonTeams.Team.Blue].Count) // { // player.SetTeam(PhotonTeams.Team.Blue); // photonTeams.UpdateTeams(); // } // } // break; // case "AutoChoose": // if (player.GetTeam() == PhotonTeams.Team.Red) // { // player.SetTeam(PhotonTeams.Team.Blue); // photonTeams.UpdateTeams(); // if (player.GetCharacter() != PhotonCharacters.Character.None) // { // player.SetCharacter(PhotonCharacters.Character.None); // } // } // else if (player.GetTeam() == PhotonTeams.Team.Blue) // { // player.SetTeam(PhotonTeams.Team.Red); // photonTeams.UpdateTeams(); // if (player.GetCharacter() != PhotonCharacters.Character.None) // { // player.SetCharacter(PhotonCharacters.Character.None); // } // } // break; // } // if (PhotonTeams.PlayersPerTeam[PhotonTeams.Team.Red].Count == maxPlayersInTeam) // { // uiManager.panelsLists[0].panelButtons[0].interactable = false; // uiManager.panelsLists[0].panelButtons[2].interactable = false; // } // if (PhotonTeams.PlayersPerTeam[PhotonTeams.Team.Blue].Count == maxPlayersInTeam) // { // uiManager.panelsLists[0].panelButtons[1].interactable = false; // uiManager.panelsLists[0].panelButtons[2].interactable = false; // } // if (PhotonTeams.PlayersPerTeam[PhotonTeams.Team.Red].Count == maxPlayersInTeam && PhotonTeams.PlayersPerTeam[PhotonTeams.Team.Blue].Count == maxPlayersInTeam) // uiManager.panelsLists[3].panelButtons[0].interactable = false; //} public void ChooseCharacter(PhotonCharacters.Character character, Player player) { if (character == PhotonCharacters.Character.Random) { int characterNumber = Random.Range(0, 3); switch (characterNumber) { case 0: if (player.GetCharacter() != PhotonCharacters.Character.Demoman) { character = PhotonCharacters.Character.Demoman; } else { int newCharacterNumber = Random.Range(0, 2); if (newCharacterNumber == 0) { character = PhotonCharacters.Character.Engineer; } else { character = PhotonCharacters.Character.Soldier; } } break; case 1: if (player.GetCharacter() != PhotonCharacters.Character.Engineer) { character = PhotonCharacters.Character.Engineer; } else { int newCharacterNumber = Random.Range(0, 2); if (newCharacterNumber == 0) { character = PhotonCharacters.Character.Demoman; } else { character = PhotonCharacters.Character.Soldier; } } break; case 2: if (player.GetCharacter() != PhotonCharacters.Character.Soldier) { character = PhotonCharacters.Character.Soldier; } else { int newCharacterNumber = Random.Range(0, 2); if (newCharacterNumber == 0) { character = PhotonCharacters.Character.Demoman; } else { character = PhotonCharacters.Character.Engineer; } } break; } } player.SetCharacter(character); //switch (character) //{ // case PhotonCharacters.Character.Demoman: // player.SetCharacter(PhotonCharacters.Character.Demoman); // photonCharacters.UpdateCharacters(); // break; // case PhotonCharacters.Character.Engineer: // player.SetCharacter(PhotonCharacters.Character.Engineer); // photonCharacters.UpdateCharacters(); // break; // case PhotonCharacters.Character.Soldier: // player.SetCharacter(PhotonCharacters.Character.Soldier); // photonCharacters.UpdateCharacters(); // break; // case PhotonCharacters.Character.None: // player.SetCharacter(PhotonCharacters.Character.None); // photonCharacters.UpdateCharacters(); // break; //} }