private static void OnControlPilotMsg(MySyncCryoChamber syncObject, ref ControlPilotMsg msg, World.MyNetworkClient sender) { var playerId = new MyPlayer.PlayerId(msg.SteamId, msg.SerialId); var player = Sync.Players.TryGetPlayerById(playerId); var cryoChamber = syncObject.Entity as MyCryoChamber; if (player != null) { if (cryoChamber.Pilot != null) { if (player == MySession.LocalHumanPlayer) { cryoChamber.OnPlayerLoaded(); if (MySession.Static.CameraController != cryoChamber) { MySession.SetCameraController(MyCameraControllerEnum.Entity, cryoChamber); } } player.Controller.TakeControl(cryoChamber); player.Identity.ChangeCharacter(cryoChamber.Pilot); } else { Debug.Fail("Selected cryo chamber doesn't have a pilot!"); } } else { Debug.Fail("Failed to find player to put in cryo chamber!"); } }
public void SendControlPilotMsg(MyPlayer player) { var msg = new ControlPilotMsg(); msg.EntityId = Entity.Entity.EntityId; msg.SteamId = player.Id.SteamId; msg.SerialId = player.Id.SerialId; MySession.Static.SyncLayer.SendMessageToAllAndSelf(ref msg); }