using ET; using FairyGUI; using static UnityEngine.UI.CanvasScaler; namespace GFGGame { public class RoleDataHandler { //单位秒 private const int INTERVAL_HEARTBEAT = 20; private static int _heartbeatCDEnd = 0; public static void StartUpdate() { int currentTimeSecs = (int)(Game.TimeInfo.ServerNow() / 1000); _heartbeatCDEnd = currentTimeSecs + INTERVAL_HEARTBEAT; StopUpdate(); //每秒检测 Timers.inst.Add(1, 0, OnUpdate); } public static void StopUpdate() { Timers.inst.Remove(OnUpdate); } private static void OnUpdate(object param) { int currentTimeSecs = (int)(Game.TimeInfo.ServerNow() / 1000); if (!RoleDataManager.powerTimeServerLock &&!RoleDataManager.CheckPowerFull()) { int powerTime = GameGlobal.myNumericComponent.GetAsInt(NumericType.PowerTime); int passTime = currentTimeSecs - powerTime; if(passTime >= GameConst.INTERVAL_TIME_SECONDS_POWER) { RoleDataManager.powerTimeServerLock = true; NumericHelper.RequestAddAttributePoint(GameGlobal.zoneScene, NumericType.Power).Coroutine(); } } if(currentTimeSecs >= _heartbeatCDEnd) { //GameProxy.ReqUpdateTime(); _heartbeatCDEnd = currentTimeSecs + INTERVAL_HEARTBEAT; } int dailyResetSecs = GameGlobal.myNumericComponent.GetAsInt(NumericType.DailyResetSecs); if (TimeHelper.ServerNowSecs >= dailyResetSecs) { CommonSProxy.ResetDailyData().Coroutine(); } } } }