Esempio n. 1
0
        private void PlayerTrackingBackgroundWorkerProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            if (e.ProgressPercentage < 0)
            {
                lblPlayerCoords.Text = "(?,?)";
                return;
            }

            PlayerLocation location = (PlayerLocation) e.UserState;
            if (m_LastKnownLocation.X == location.X && m_LastKnownLocation.Y == location.Y && m_LastKnownLocation.Facet == location.Facet)
            {
                // There has been no change in location.
                return;
            }

            m_LastKnownLocation = location;

            if (mapViewer.Map != location.Facet)
            {
                mapViewer.Map = location.Facet;
            }

            mapViewer.SetLocation(location.X, location.Y);

            lblPlayerCoords.Text = string.Concat('(', location.X, ',', location.Y, ')');
        }
Esempio n. 2
0
        private void PlayerTrackingBackgroundWorkerProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            if (e.ProgressPercentage < 0)
            {
                lblPlayerCoords.Text = "(?,?)";
                return;
            }

            PlayerLocation location = (PlayerLocation)e.UserState;

            if (m_LastKnownLocation.X == location.X && m_LastKnownLocation.Y == location.Y && m_LastKnownLocation.Facet == location.Facet)
            {
                // There has been no change in location.
                return;
            }

            m_LastKnownLocation = location;

            if (mapViewer.Map != location.Facet)
            {
                mapViewer.Map = location.Facet;
            }

            mapViewer.SetLocation(location.X, location.Y);

            lblPlayerCoords.Text = string.Concat('(', location.X, ',', location.Y, ')');
        }
Esempio n. 3
0
        private void PlayerTrackingBackgroundWorkerDoWork(object sender, DoWorkEventArgs e)
        {
            BackgroundWorker bw = (BackgroundWorker)sender;

            const int trackPlayerDelayInMilliseconds = 1000;
            DateTime  nextPlayerTrackingTimestamp    = DateTime.Now.AddMilliseconds(-trackPlayerDelayInMilliseconds);

            while (m_TrackPlayer)
            {
                while (nextPlayerTrackingTimestamp > DateTime.Now && m_TrackPlayer)
                {
                    System.Threading.Thread.Sleep(1);
                }
                if (!m_TrackPlayer)
                {
                    bw.ReportProgress(-1);
                    return;
                }

                int x     = 0;
                int y     = 0;
                int z     = 0;
                int facet = 0;
                if (!Ultima.Client.FindLocation(ref x, ref y, ref z, ref facet))
                {
                    Ultima.Client.Calibrate();
                    if (!Ultima.Client.FindLocation(ref x, ref y, ref z, ref facet))
                    {
                        bw.ReportProgress(-1);
                    }
                }

                PlayerLocation location = new PlayerLocation();
                location.Facet = Map.Get((MapName)facet);
                location.X     = x;
                location.Y     = y;
                location.Z     = z;

                bw.ReportProgress(1, location);
                nextPlayerTrackingTimestamp = DateTime.Now.AddMilliseconds(trackPlayerDelayInMilliseconds);
            }
        }
Esempio n. 4
0
        private void PlayerTrackingBackgroundWorkerDoWork(object sender, DoWorkEventArgs e)
        {
            BackgroundWorker bw = (BackgroundWorker) sender;

            const int trackPlayerDelayInMilliseconds = 1000;
            DateTime nextPlayerTrackingTimestamp = DateTime.Now.AddMilliseconds(-trackPlayerDelayInMilliseconds);

            while (m_TrackPlayer)
            {
                while (nextPlayerTrackingTimestamp > DateTime.Now && m_TrackPlayer)
                {
                    System.Threading.Thread.Sleep(1);
                }
                if (!m_TrackPlayer)
                {
                    bw.ReportProgress(-1);
                    return;
                }

                int x = 0;
                int y = 0;
                int z = 0;
                int facet = 0;
                if (!Ultima.Client.FindLocation(ref x, ref y, ref z, ref facet))
                {
                    Ultima.Client.Calibrate();
                    if (!Ultima.Client.FindLocation(ref x, ref y, ref z, ref facet))
                    {
                        bw.ReportProgress(-1);
                    }
                }

                PlayerLocation location = new PlayerLocation();
                location.Facet = Map.Get((MapName) facet);
                location.X = x;
                location.Y = y;
                location.Z = z;

                bw.ReportProgress(1, location);
                nextPlayerTrackingTimestamp = DateTime.Now.AddMilliseconds(trackPlayerDelayInMilliseconds);
            }
        }