Exemplo n.º 1
0
        private void OnJoinReceived(JoinPacket joinPacket, NetPeer peer)
        {
            Debug.Log("[S] Join packet received: " + joinPacket.UserName);
            var player = new ServerPlayer(_playerManager, joinPacket.UserName, peer);

            _playerManager.AddPlayer(player);

            player.Spawn(new Vector2(Random.Range(-2f, 2f), Random.Range(-2f, 2f)));

            //Send join accept
            var ja = new JoinAcceptPacket {
                Id = player.Id
            };

            peer.Send(WritePacket(ja), DeliveryMethod.ReliableOrdered);

            //Send to old players info about new player
            var pj = new PlayerJoinedPacket();

            pj.UserName           = joinPacket.UserName;
            pj.NewPlayer          = true;
            pj.InitialPlayerState = player.NetworkState;
            pj.ServerTick         = _serverTick;
            _netManager.SendToAll(WritePacket(pj), DeliveryMethod.ReliableOrdered, peer);

            //Send to new player info about old players
            pj.NewPlayer = false;
            foreach (ServerPlayer otherPlayer in _playerManager)
            {
                if (otherPlayer == player)
                {
                    continue;
                }
                pj.UserName           = otherPlayer.Name;
                pj.InitialPlayerState = otherPlayer.NetworkState;
                peer.Send(WritePacket(pj), DeliveryMethod.ReliableOrdered);
            }
        }
Exemplo n.º 2
0
 public bool EnableAntilag(ServerPlayer forPlayer)
 {
     return(_antilagSystem.TryApplyAntilag(_players, _serverLogic.Tick, forPlayer.AssociatedPeer.Id));
 }
 public void AddPlayer(ServerPlayer player)
 {
     _players[_playersCount] = player;
     _playersCount++;
 }
Exemplo n.º 4
0
 public ServerPlayerSkills(ServerPlayer player)
 {
     _player = player;
 }