void OnNewPlayer(ref MyEventNewPlayer msg) { Log("OnNewPlayer"); if (NewPlayer != null) { NewPlayer(); } if (IsHost) { SendCheckpoint(msg.SenderConnection); var playerLeftMsg = new MyEventPlayerStateChanged(); playerLeftMsg.UserId = msg.PlayerInfo.UserId; playerLeftMsg.NewState = MyMultiplayerStateEnum.Playing; Peers.SendServer(ref playerLeftMsg); UpdateMission(); } else { var player = new MyPlayerRemote(new StringBuilder(msg.PlayerInfo.DisplayName), msg.PlayerInfo.UserId, msg.PlayerInfo.PlayerId); player.Connection = msg.SenderConnection; player.Connection.Tag = player; Peers.Players.Add(player); Notify(MyTextsWrapperEnum.MP_XHasJoined, msg.PlayerInfo.DisplayName); } LogPlayers(); }
private void OnEnterGameResponse(ref MyEventEnterGameResponse msg) { SetCallback <MyEventCheckpoint>(OnReceiveCheckpoint); if (!msg.Allowed) { OnGameEnterDisallowed(); return; } MyEntityIdentifier.CurrentPlayerId = msg.PlayerId; var newPlayerEvent = new MyEventNewPlayer(); newPlayerEvent.PlayerInfo = new MyPlayerInfo() { DisplayName = MyClientServer.LoggedPlayer.GetDisplayName().ToString(), UserId = MyClientServer.LoggedPlayer.GetUserId(), Faction = MyMwcObjectBuilder_FactionEnum.None, PlayerId = msg.PlayerId, }; MyMultiplayerPeers.Static.SendToAll(ref newPlayerEvent, NetDeliveryMethod.ReliableOrdered, 0); MyMultiplayerGameplay.Log("JOIN 6. - Game entered (#EnterGameResponse), sending NewPlayer, requesting sector"); MyMultiplayerGameplay.Log("MTU: " + msg.SenderConnection.GetMTU()); var handler = m_gameDownloadingSector; if (handler != null) { handler(); } }