private MyPlayerInfo RemotePlayerToInfo(MyPlayerRemote player) { return(new MyPlayerInfo() { DisplayName = player.GetDisplayName().ToString(), PlayerId = player.PlayerId, UserId = player.UserId, Faction = player.Faction, }); }
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); }