Example #1
0
    public Transform GrabSpawnPoint(int viewID)
    {
        Transform ReturnTransform = null;
        // Figure out who is asking
        NetPlayer ThisPlayer = PhotonView.Find(viewID).GetComponent <NetPlayer>();

        // Find All Players
        NetPlayer[] Players = FindObjectsOfType <NetPlayer>();

        // Find players on players team
        List <NetPlayer> TeamPlayers = new List <NetPlayer>();

        foreach (NetPlayer NP in Players)
        {
            if (NP.GetTeamNum() == ThisPlayer.GetTeamNum())
            {
                TeamPlayers.Add(NP);
            }
        }

        // find the players by view id
        List <NetPlayer> TeamPlayersByViewID = new List <NetPlayer>();

        for (int I = 0; I < TeamPlayers.Count; I++)
        {
            NetPlayer temp = null;
            // Find Next Lower Player
            foreach (NetPlayer NP in TeamPlayers)
            {
                // If the temp is null
                if (temp == null)
                {
                    // Add current player if it is not contained
                    if (!TeamPlayersByViewID.Contains(NP))
                    {
                        temp = NP;
                    }
                }
                // If the NP is lower then the temp
                if (temp != null && temp.GetTeamNum() > NP.GetTeamNum() && !TeamPlayersByViewID.Contains(NP))
                {
                    temp = NP;
                }
            }
            // Add player to list
            if (!TeamPlayersByViewID.Contains(temp))
            {
                TeamPlayersByViewID.Add(temp);
            }
        }
        // All the players should be sorted
        int index = TeamPlayersByViewID.IndexOf(ThisPlayer);

        if (index == -1)
        {
            index = Random.Range(0, 3);
        }

        // Set the return transform
        if (ThisPlayer.GetTeamNum() == 1)
        {
            ReturnTransform = BlueSpawns[index].transform;
        }
        if (ThisPlayer.GetTeamNum() == 2)
        {
            ReturnTransform = RedSpawns[index].transform;
        }
        //else
        //{
        //    Debug.Log("No Spawn Selected");
        //}
        return(ReturnTransform);
    }