コード例 #1
0
        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!");
            }
        }
コード例 #2
0
        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!");
            }
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }