Beispiel #1
0
        private void CheckIfOkayToLogin()
        {
            // Before the client logs in, we need to know the player entity's serial, and the
            // map the player will be loading on login. If we don't have either of these, we
            // delay loading until we do.
            if (Status != LoginClientStatus.WorldServer_InWorld)
            {
                if (m_QueuedLoginConfirmPacket != null && (m_Engine.QueuedModel as WorldModel).MapIndex >= 0)
                {
                    Status = LoginClientStatus.WorldServer_InWorld;

                    m_Engine.ActivateQueuedModel();
                    if (m_Engine.ActiveModel is WorldModel)
                    {
                        ((WorldModel)m_Engine.ActiveModel).LoginSequence();
                        LoginConfirmPacket packet = m_QueuedLoginConfirmPacket;
                        PlayerMobile       player = EntityManager.GetObject <PlayerMobile>(m_QueuedLoginConfirmPacket.Serial, true);
                        if (player == null)
                        {
                            Tracer.Critical("No player object ready in CheckIfOkayToLogin().");
                        }
                        player.Move_Instant(packet.X, packet.Y, packet.Z, packet.Direction);
                        // iPlayer.SetFacing(p.Direction);
                    }
                    else
                    {
                        Tracer.Critical("Not in world model at login.");
                    }
                }
            }
            else
            {
                // already logged in, nothing else to do!
            }
        }
Beispiel #2
0
        private void ReceiveLoginConfirmPacket(IRecvPacket packet)
        {
            m_QueuedLoginConfirmPacket = (LoginConfirmPacket)packet;
            // set the player serial and create the player entity. Don't need to do anything with it yet.
            WorldModel.PlayerSerial = m_QueuedLoginConfirmPacket.Serial;
            Mobile player = WorldModel.Entities.GetObject <Mobile>(m_QueuedLoginConfirmPacket.Serial, true);

            if (player == null)
            {
                Tracer.Critical("Could not create player object.");
            }
            CheckIfOkayToLogin();
        }
Beispiel #3
0
        void ReceiveLoginConfirmPacket(LoginConfirmPacket packet)
        {
            _queuedLoginConfirmPacket = packet;
            // set the player serial and create the player entity. Don't need to do anything with it yet.
            WorldModel.PlayerSerial = packet.Serial;
            var player = WorldModel.Entities.GetObject <Mobile>(WorldModel.PlayerSerial, true);

            if (player == null)
            {
                Utils.Critical("Could not create player object.");
            }
            CheckIfOkayToLogin();
        }
Beispiel #4
0
        private void ReceiveLoginConfirmPacket(IRecvPacket packet)
        {
            m_QueuedLoginConfirmPacket = (LoginConfirmPacket)packet;
            // set the player serial var and create the player entity. Don't need to do anything with it yet.
            UltimaVars.EngineVars.PlayerSerial = m_QueuedLoginConfirmPacket.Serial;
            PlayerMobile player = EntityManager.GetObject <PlayerMobile>(m_QueuedLoginConfirmPacket.Serial, true);

            if (player == null)
            {
                Logger.Fatal("Could not create player object.");
            }
            CheckIfOkayToLogin();
        }