private MyPlayerInfo RemotePlayerToInfo(MyPlayerRemote player)
 {
     return(new MyPlayerInfo()
     {
         DisplayName = player.GetDisplayName().ToString(),
         PlayerId = player.PlayerId,
         UserId = player.UserId,
         Faction = player.Faction,
     });
 }
Exemple #2
0
        void Peers_PlayerDisconnected(MyPlayerRemote player)
        {
            if (player.UserId == Peers.HostUserId)
            {
                // TODO: Connection to host lost, shutdown
                var handler = OnShutdown;
                if (handler != null)
                {
                    handler();
                }
            }
            else
            {
                // Close all entities of disconnected player
                foreach (var e in MyEntities.GetEntities())
                {
                    if (e.EntityId.HasValue && e.EntityId.Value.PlayerId == player.PlayerId)
                    {
                        e.MarkForClose();
                    }
                }
            }

            if (player.Ship != null)
            {
                player.Ship.MarkForClose();
                player.Ship = null;
            }

            if (IsHost)
            {
                ClearLocks(player.PlayerId);

                var playerLeftMsg = new MyEventPlayerStateChanged();
                playerLeftMsg.UserId   = player.UserId;
                playerLeftMsg.NewState = MyMultiplayerStateEnum.Disconnected;
                Peers.SendServer(ref playerLeftMsg);
            }

            Notify(MyTextsWrapperEnum.MP_XHasLeft, player.GetDisplayName());
        }
 private void AddPlayer(MyPlayerRemote player, bool isFaction = false)
 {
     AddPlayer(player.GetDisplayName(), (int)(player.Connection.AverageRoundtripTime * 1000), player.Statistics.Deaths, player.Statistics.PlayersKilled, (byte)player.PlayerId, player.Faction, isFaction);
 }