public void Run(object state) { try { if (_disabled) { return; } if (_timerRunning) { _timerLagging = true; Log.Warn("<Player " + _player.Id + "> Server can't keep up, Player timer is lagging behind."); return; } _resetEvent.Reset(); if (_player.TimeMuted > 0) { _player.TimeMuted -= 60; } if (_player.MessengerSpamTime > 0) { _player.MessengerSpamTime -= 60; } if (_player.MessengerSpamTime <= 0) { _player.MessengerSpamCount = 0; } _player.TimeAfk += 1; if (_player.GetStats().RespectsTimestamp != DateTime.Today.ToString("MM/dd")) { _player.GetStats().RespectsTimestamp = DateTime.Today.ToString("MM/dd"); using (var dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("UPDATE `user_stats` SET `dailyRespectPoints` = '" + (_player.Rank == 1 && _player.VipRank == 0 ? 10 : _player.VipRank == 1 ? 15 : 20) + "', `dailyPetRespectPoints` = '" + (_player.Rank == 1 && _player.VipRank == 0 ? 10 : _player.VipRank == 1 ? 15 : 20) + "', `respectsTimestamp` = '" + DateTime.Today.ToString("MM/dd") + "' WHERE `id` = '" + _player.Id + "' LIMIT 1"); } _player.GetStats().DailyRespectPoints = _player.Rank == 1 && _player.VipRank == 0 ? 10 : _player.VipRank == 1 ? 15 : 20; _player.GetStats().DailyPetRespectPoints = _player.Rank == 1 && _player.VipRank == 0 ? 10 : _player.VipRank == 1 ? 15 : 20; if (_player.GetClient() != null) { _player.GetClient().SendPacket(new UserObjectComposer(_player)); } } if (_player.GiftPurchasingWarnings < 15) { _player.GiftPurchasingWarnings = 0; } if (_player.MottoUpdateWarnings < 15) { _player.MottoUpdateWarnings = 0; } if (_player.ClothingUpdateWarnings < 15) { _player.ClothingUpdateWarnings = 0; } if (_player.GetClient() != null) { PlusEnvironment.GetGame().GetAchievementManager() .ProgressAchievement(_player.GetClient(), "ACH_AllTimeHotelPresence", 1); } _player.CheckCreditsTimer(); _player.Effects().CheckEffectExpiry(_player); // END CODE // Reset the values _timerRunning = false; _timerLagging = false; _resetEvent.Set(); } catch { } }
/// <summary> /// Called for each time the timer ticks. /// </summary> /// <param name="State"></param> public void Run(object State) { try { if (_disabled) { return; } if (_timerRunning) { _timerLagging = true; log.Warn("<Player " + _player.Id + "> Server can't keep up, Player timer is lagging behind."); return; } _resetEvent.Reset(); #region Muted Checks if (_player.TimeMuted > 0) { _player.TimeMuted -= 60; } #endregion #region Console Checks if (_player.MessengerSpamTime > 0) { _player.MessengerSpamTime -= 60; } if (_player.MessengerSpamTime <= 0) { _player.MessengerSpamCount = 0; } #endregion _player.TimeAFK += 1; #region Respect checking if (_player.GetStats().RespectsTimestamp != DateTime.Today.ToString("MM/dd")) { _player.GetStats().RespectsTimestamp = DateTime.Today.ToString("MM/dd"); using (IQueryAdapter dbClient = NeonEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("UPDATE `user_stats` SET `dailyRespectPoints` = '" + (_player.Rank == 1 && _player.VIPRank == 0 ? 10 : _player.VIPRank == 1 ? 15 : 20) + "', `dailyPetRespectPoints` = '" + (_player.Rank == 1 && _player.VIPRank == 0 ? 10 : _player.VIPRank == 1 ? 15 : 20) + "', `respectsTimestamp` = '" + DateTime.Today.ToString("MM/dd") + "' WHERE `id` = '" + _player.Id + "' LIMIT 1"); } _player.GetStats().DailyRespectPoints = (_player.Rank == 1 && _player.VIPRank == 0 ? 10 : _player.VIPRank == 1 ? 15 : 20); _player.GetStats().DailyPetRespectPoints = (_player.Rank == 1 && _player.VIPRank == 0 ? 10 : _player.VIPRank == 1 ? 15 : 20); if (_player.GetClient() != null) { _player.GetClient().SendMessage(new UserObjectComposer(_player)); } } #endregion #region Reset Scripting Warnings if (_player.GiftPurchasingWarnings < 15) { _player.GiftPurchasingWarnings = 0; } if (_player.MottoUpdateWarnings < 15) { _player.MottoUpdateWarnings = 0; } if (_player.ClothingUpdateWarnings < 15) { _player.ClothingUpdateWarnings = 0; } #endregion if (_player.GetClient() != null) { NeonEnvironment.GetGame().GetAchievementManager().ProgressAchievement(_player.GetClient(), "ACH_AllTimeHotelPresence", 1); } _player.CheckCreditsTimer(); _player.Effects().CheckEffectExpiry(_player); _timerRunning = false; _timerLagging = false; _resetEvent.Set(); } catch { } }