RoleDataHandler.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using ET;
  2. using FairyGUI;
  3. using YooAsset;
  4. namespace GFGGame
  5. {
  6. public class RoleDataHandler
  7. {
  8. private static int seconds = 0;
  9. public static void StartUpdate()
  10. {
  11. StopUpdate();
  12. //每秒检测
  13. Timers.inst.Add(1, 0, OnUpdate);
  14. }
  15. public static void StopUpdate()
  16. {
  17. Timers.inst.Remove(OnUpdate);
  18. }
  19. private static void OnUpdate(object param)
  20. {
  21. if (AntiAddictionController.CheckAntiAddictionWhenPlay())
  22. {
  23. StopUpdate();
  24. return;
  25. }
  26. int currentTimeSecs = (int)(Game.TimeInfo.ServerNow() / 1000);
  27. if (!RoleDataManager.powerTimeServerLock && !RoleDataManager.CheckPowerFull())
  28. {
  29. int powerTime = GameGlobal.myNumericComponent.GetAsInt(NumericType.PowerTime);
  30. int passTime = currentTimeSecs - powerTime;
  31. if (passTime >= GameConst.INTERVAL_TIME_SECONDS_POWER)
  32. {
  33. RoleDataManager.powerTimeServerLock = true;
  34. NumericHelper.RequestAddAttributePoint(GameGlobal.zoneScene, NumericType.Power).Coroutine();
  35. }
  36. }
  37. int dailyResetSecs = GameGlobal.myNumericComponent.GetAsInt(NumericType.DailyResetSecs);
  38. if (TimeHelper.ServerNowSecs >= dailyResetSecs)
  39. {
  40. CommonSProxy.ResetDailyData().Coroutine();
  41. }
  42. if (seconds >= TimeUtil.SECOND_PER_MUNITE * 1)
  43. {
  44. ViewManager.CheckDispose();
  45. YooAssets.GetPackage(VersionController.DefaultPackage)?.UnloadUnusedAssets();
  46. seconds = 0;
  47. }
  48. seconds++;
  49. }
  50. }
  51. }