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! } }
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(); }
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(); }
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(); }