예제 #1
0
    /// <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 }
            });
        }
    }
예제 #2
0
    //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;
        //}
    }