Exemplo n.º 1
0
        public void Handle(NetworkMessage message)
        {
            var registerPlayerMessage = message.ReadMessage <PlayerMessage>();

            if (registerPlayerMessage == null)
            {
                return;
            }

            var item = new MyNetworkPlayer
            {
                Id   = registerPlayerMessage.Id,
                Name = registerPlayerMessage.Name
            };

            // add or update user
            var index = NetworkLobbyService.Players.IndexOf(item);

            if (index == -1)
            {
                NetworkLobbyService.Players.Add(item);
            }
            else
            {
                NetworkLobbyService.Players[index] = item;
            }

            foreach (var networkPlayer in NetworkLobbyService.Players)
            {
                SendLobbyPlayerSignal.Dispatch(networkPlayer);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Handle
        /// </summary>
        /// <param name="msg"></param>
        public void Handle(NetworkMessage msg)
        {
            var lobbyPlayerMessage = msg.ReadMessage <LobbyPlayerMessage>();

            if (lobbyPlayerMessage == null)
            {
                return;
            }
            var item = new MyNetworkPlayer
            {
                Id   = lobbyPlayerMessage.Id,
                Name = lobbyPlayerMessage.Name
            };
            var index = NetworkPlayerService.OnlinePlayers.IndexOf(item);

            if (index == -1)
            {
                NetworkPlayerService.OnlinePlayers.Add(item);
            }
            else
            {
                NetworkPlayerService.OnlinePlayers[index] = item;
            }

            ShowLobbyPlayersSignal.Dispatch();
        }
Exemplo n.º 3
0
    public override void OnServerAddPlayer(NetworkConnection conn)
    {
        base.OnServerAddPlayer(conn);

        MyNetworkPlayer player = conn.identity.GetComponent <MyNetworkPlayer>();

        player.SetDisplayName($"Player {numPlayers}");
        player.SetDisplayColour(Random.ColorHSV());
    }
    public override void OnServerAddPlayer(NetworkConnection conn)
    {
        base.OnServerAddPlayer(conn);

        MyNetworkPlayer player = conn.identity.GetComponent <MyNetworkPlayer>();

        player.SetName($"Player {numPlayers}");
        player.SetColor(new Color(Random.Range(0f, 1f), Random.Range(0f, 1f), Random.Range(0f, 1f)));
    }
    public override void OnServerAddPlayer(NetworkConnection conn)
    {
        base.OnServerAddPlayer(conn);

        MyNetworkPlayer myNetworkPlayer = conn.identity.GetComponent <MyNetworkPlayer>();

        myNetworkPlayer.SetDisplayName($"Player {numPlayers}");

        SetPlayerColor(myNetworkPlayer);
    }
Exemplo n.º 6
0
    public override void OnServerAddPlayer(NetworkConnection conn)
    {
        base.OnServerAddPlayer(conn);

        // Grab the player component and set its name to Player 1, 2, 3 and its color to random
        MyNetworkPlayer player = conn.identity.GetComponent <MyNetworkPlayer>();

        player.SetDisplayName($"Player {numPlayers}");
        player.SetDisplayColor(new Color(Random.Range(0f, 1f), Random.Range(0f, 1f), Random.Range(0f, 1f)));
    }
    public override void OnServerAddPlayer(NetworkConnection conn)
    {
        base.OnServerAddPlayer(conn);

        MyNetworkPlayer player = conn.identity.GetComponent <MyNetworkPlayer>();

        player.SetDisplayName($"Player {numPlayers}");
        player.SetDisplayColor(new Color(Random.value, Random.value, Random.value));

        Debug.Log($"{player.GetDisplayName()} has connected!");
    }
    //[SerializeField] public List<Mesh> UsedShapes = new List<Mesh>();
    //[SerializeField] public Mesh PCShape;


    //[SerializeField] private List<GameObject> ShapeList = new List<GameObject>();
    public override void OnServerAddPlayer(NetworkConnection conn)
    {
        base.OnServerAddPlayer(conn);
        MyNetworkPlayer player = conn.identity.GetComponent <MyNetworkPlayer>();


        player.SetPCName($"Player {numPlayers}");
        player.SetPCColor(Random.ColorHSV());
        //player.SetPCShape(ShapeData(conn));
        player.SetMeshIndex(GetIndex());


        Debug.Log($"{player.PCName} Connected to server | {numPlayers} Current Player(s)");
    }
    public override void OnServerAddPlayer(NetworkConnection conn)
    {
        base.OnServerAddPlayer(conn);

        MyNetworkPlayer player = conn.identity.GetComponent <MyNetworkPlayer>();

        player.SetDisplayName($"Player {numPlayers}");

        Color randomColor = new Color(Random.Range(0f, 1f), Random.Range(0f, 1f), Random.Range(0f, 1f));

        player.SetDisplayColor(randomColor);

        Debug.Log("A player was added. " + $"Number of players: {numPlayers}");
    }
Exemplo n.º 10
0
    // Use this for initialization
    public void InitStart(MyNetworkPlayer _nPlayer)
    {
        if (nPlayer == null)
        {
            nPlayer = _nPlayer;

            button1.onClick.RemoveAllListeners();
            button1.onClick.AddListener(OnClickButton1);

            button2.onClick.RemoveAllListeners();
            button2.onClick.AddListener(OnClickButton2);

            button3.onClick.RemoveAllListeners();
            button3.onClick.AddListener(OnClickButton3);
        }
    }
Exemplo n.º 11
0
 public void InitPlayer(MyNetworkPlayer lobbyPlayer)
 {
     _networkLobbyPlayer = lobbyPlayer;
     _title.text         = lobbyPlayer.Name;
     _status.SetStatusOnline();
 }
Exemplo n.º 12
0
    IEnumerator ReorderSpawns()
    {
        while (true) {
          int halfwayPoint = occupierArray.Length / 2;
          int lowerBounds, upperBounds;
          // Modify player positions as necessary do not update players at this point.
          for (int i = 0; i < players.Count; ++i) {
        int playerIndex = Array.FindIndex(occupierArray, x => x.player == players[i].player);

        if (players[i].team == Constants.TEAM_NEUTRAL) {
          if (playerIndex != -1) {
            occupierArray[playerIndex] = null;
          }
        } else {
          if (playerIndex != -1) {
            // lowerBounds and upperBounds define the area which a given team is placed
            // within the occupierArray, since it is shared by both teams.
            lowerBounds = halfwayPoint * players[i].team;
            upperBounds = lowerBounds + halfwayPoint;
            if (!(playerIndex >= lowerBounds && playerIndex < upperBounds)) {
              occupierArray[playerIndex] = null;
              for (int j = lowerBounds; j < upperBounds; ++j) {
                if (occupierArray[j] == null) {
                  MyNetworkPlayer temp = new MyNetworkPlayer();
                  temp.player = players[i].player;
                  occupierArray[j] = temp;

                  if (players[i].player == Network.player) {
                    SetSpawnPoint(spawnPoints[j]);
                  } else {
                    networkView.RPC("SetSpawnPoint", players[i].player, spawnPoints[j]);
                  }
                  break;
                }
              }
            }
            // TODO: Implement logic to ensure that the player is on the right team and move them if not.
          }
        }
          }

          yield return new WaitForSeconds(0.5f);

          // Iterate through each half of the list and push players as far up the array
          // as they can go. If a move does occur, inform the player so they can shift.
          lowerBounds = 0;
          upperBounds = halfwayPoint;
          for (int i = 0; i < upperBounds; ++i) {
        if(occupierArray[i] == null) {
          for (int j = i; j < upperBounds; ++j) {
            if (occupierArray[j] != null) {
              occupierArray[i] = occupierArray[j];
              occupierArray[j] = null;

              if (players[i].player == Network.player) {
                SetSpawnPoint(spawnPoints[i]);
              } else {
                networkView.RPC("SetSpawnPoint", occupierArray[i].player, spawnPoints[i]);
              }
            }
          }
        }
          }

          lowerBounds = upperBounds;
          upperBounds += halfwayPoint;
          for (int i = 0; i < upperBounds; ++i) {
        if(occupierArray[i] == null) {
          for (int j = i; j < upperBounds; ++j) {
            if (occupierArray[j] != null) {
              occupierArray[i] = occupierArray[j];
              occupierArray[j] = null;

              if (players[i].player == Network.player) {
                SetSpawnPoint(spawnPoints[i]);
              } else {
                networkView.RPC("SetSpawnPoint", occupierArray[i].player, spawnPoints[i]);
              }
            }
          }
        }
          }

          // Wait
          yield return new WaitForSeconds(0.5f);
        }
        yield return null;
    }
Exemplo n.º 13
0
    // Use this for initialization
    void Start()
    {
        if (Network.isServer) {
          PlayerManager manager = GameObject.FindObjectOfType(typeof(PlayerManager)) as PlayerManager;
          players = manager.activePlayers;

          occupierArray = new MyNetworkPlayer[spawnPoints.Length];

          // Convenience variables for iteration
          int teamOneIndex = 0;
          int teamTwoIndex = occupierArray.Length / 2;
          for (int i = 0; i < players.Count; ++i) {
        MyNetworkPlayer temp = new MyNetworkPlayer();
        temp.player = players[i].player;
        if (players[i].team == Constants.TEAM_ONE) {
          occupierArray[teamOneIndex] = temp;
          ++teamOneIndex;
        } else {
          occupierArray[teamTwoIndex] = temp;
          ++teamTwoIndex;
        }
          }

          StartCoroutine("ReorderSpawns");
        }
    }
    private void SetPlayerColor(MyNetworkPlayer myNetworkPlayer)
    {
        Color randomColor = UnityEngine.Random.ColorHSV();

        myNetworkPlayer.SetColor(randomColor);
    }
Exemplo n.º 15
0
 public void Login(MyNetworkPlayer player)
 {
     allPlayer.Add(player);
     player.RpcSetPlayer(allPlayer.Count);
 }