Пример #1
0
        private async Task <PlayerUpdateResponse> UpdatePlayerLocation(double lat, double lng, double alt)
        {
            //randomize altitude
            alt = Math.Round((alt < 5) ? GenRandom(alt, 2, (5 * (1 + .02))) :
                             (alt > 25) ? GenRandom(alt, (alt * (1 - .02)), 1) :
                             GenRandom(alt, (alt * (1 - .03)), (alt * (1 + .03))), 1);

            Context.Settings.CurrentLatitude  = lat;
            Context.Settings.CurrentLongitude = lng;
            Context.Settings.CurrentAltitude  = alt;

            if (!_lastSaveDate.HasValue || _lastSaveDate.Value < DateTime.Now)
            {
                Context.Settings.Save();
                Context.Session.Save();
                _lastSaveDate = DateTime.Now.AddSeconds(10);
            }

            if (!_lastPingDate.HasValue || _lastPingDate.Value < DateTime.Now)
            {
                Context.Utility.Save(new GeoCoordinate(lat, lng, alt), Context.Statistics.PlayerName, Context.Statistics.Currentlevel, System.IO.Path.Combine(Context.Directories.PingDirectory, DateTime.Now.Hour.ToString().PadLeft(2, '0') + DateTime.Now.Minute.ToString().PadLeft(2, '0') + DateTime.Now.Second.ToString().PadLeft(2, '0') + ".xml"));
                _lastPingDate = DateTime.Now.AddMinutes(1);
            }

            var r = await Context.Client.Player.UpdatePlayerLocation(lat, lng, alt, GetLastKnownSpeedConverted());

            OnChangeLocation?.Invoke(new LocationData(lat, lng, alt));
            return(r);
        }
Пример #2
0
        private async Task <PlayerUpdateResponse> UpdatePlayerLocation(double lat, double lng, double alt)
        {
            //randomize altitude
            alt = Math.Round((alt < 5) ? GenRandom(alt, 2, (5 * (1 + .02))) :
                             (alt > 25) ? GenRandom(alt, (alt * (1 - .02)), 1) :
                             GenRandom(alt, (alt * (1 - .03)), (alt * (1 + .03))), 1);

            Context.Settings.CurrentLatitude  = lat;
            Context.Settings.CurrentLongitude = lng;
            Context.Settings.CurrentAltitude  = alt;
            if (!_lastSaveDate.HasValue || _lastSaveDate.Value < DateTime.Now)
            {
                Context.Settings.Save();
                _lastSaveDate = DateTime.Now.AddSeconds(10);
            }

            var r = await Context.Client.Player.UpdatePlayerLocation(lat, lng, alt);

            OnChangeLocation?.Invoke(new LocationData(lat, lng, alt));
            return(r);
        }