hch
2025-06-05 07aee5604f365541c165f02bfe5437f1ed296fb5
Main/Utility/TimeUtility.cs
@@ -24,8 +24,7 @@
        }
    }
    ////A0 04 同步客户端时间 #tagServerDateTime 中的 CrossServerTime 为玩家在子服中收到的跨服时间
    //CrossServerNow为玩家登录在跨服服务器里的通知时间, 与ILTimeUtility.ServerCrossNow(玩家在子服收到跨服的时间通知)不同
    //A0 04 同步客户端时间 #tagServerDateTime 中的 CrossServerTime 为玩家在子服中收到的跨服时间
    static DateTime s_CrossServerTime = DateTime.Now;
    static float _crossCheckTime = 0;
    public static DateTime CrossServerNow
@@ -162,10 +161,7 @@
    public static event Action OnCreateRoleTimeRefresh;
    // public static void OnRefreshCreateRoleTime(HA124_tagMCPlayerInfo _package)
    // {
    //     if (_package.socketType == ServerType.CrossSever)
    //     {
    //         return;
    //     }
    //     createRoleTime = Convert.ToDateTime(UIHelper.GetTime(_package.CreateRoleTime));
    //     createRoleTimeTail = new DateTime(createRoleTime.Year, createRoleTime.Month, createRoleTime.Day);
@@ -176,72 +172,64 @@
    //     Debug.LogFormat("CreateRoleTime {0}  CreateDays {1}", createRoleTimeTail, CreateDays);
    // }
    public static event Action OnServerTimeRefresh;
    // public static void OnRefreshServerTime(HA004_tagServerDateTime vNetData)
    // {
    //     var dateTime = new DateTime(vNetData.Year, vNetData.Month, vNetData.Day, vNetData.Hour, vNetData.Minute, vNetData.Second);
    //     if (vNetData.socketType == ServerType.CrossSever)
    //     {
    //         s_CrossServerTime = dateTime;
    //         _crossCheckTime = Time.realtimeSinceStartup;
    //     }
    //     else
    //     {
    //         s_ServerTime = dateTime;
    //         _checkTime = Time.realtimeSinceStartup;
    //         if (OnServerTimeRefresh != null)
    //         {
    //             OnServerTimeRefresh();
    //         }
    //     }
    public static event Action OnServerTimeRefresh;
    public static void OnRefreshServerTime(HA004_tagServerDateTime vNetData)
    {
        var dateTime = new DateTime(vNetData.Year, vNetData.Month, vNetData.Day, vNetData.Hour, vNetData.Minute, vNetData.Second);
        s_ServerTime = dateTime;
        _checkTime = Time.realtimeSinceStartup;
        if (OnServerTimeRefresh != null)
        {
            OnServerTimeRefresh();
        }
        s_CrossServerTime = Convert.ToDateTime(vNetData.CrossServerTime);
        _crossCheckTime = Time.realtimeSinceStartup;
        TimeDownMgr.Instance.Begin(TimeDownMgr.CoolTimeType.SyncServerTime, 60, (float tick) =>
        {
            SyncServerTime();
        }, 60);
    }
    //     TimeDownMgr.Instance.Begin(TimeDownMgr.CoolTimeType.SyncServerTime, 60, (float tick) =>
    //     {
    //         SyncServerTime();
    //     }, 60);
    // }
    public static event Action OnServerOpenDayRefresh;
    public static void OnRefreshServerOpenDay(HA005_tagOpenServerDay package)
    {
        {
            OpenDay = package.Day;
            IsMixServer = package.IsMixServer == 1;
            MixOpenDay = package.MixDay;
            openServerDayOfWeek = package.OpenWeekday == 7 ? DayOfWeek.Sunday : (DayOfWeek)package.OpenWeekday;
            WeekOfYear = package.WeekOfYear;
        }
        OnRefreshServerTime(new HA004_tagServerDateTime()
        {
            Year = package.NowYear,
            Month = package.NowMonth,
            Day = package.NowDay,
            Hour = package.NowHour,
            Minute = package.NowMinute,
            Second = package.NowSecond,
            MicSecond = package.NowMicSecond,
            socketType = package.socketType,
        });
        if (OnServerOpenDayRefresh != null)
        {
            OnServerOpenDayRefresh();
        }
    }
    public static void SyncServerTime()
    {
        CA002_tagClientRequestServerTime pak = new CA002_tagClientRequestServerTime();
        GameNetSystem.Instance.SendInfo(pak);
    }
    public static event Action OnServerOpenDayRefresh;
    // public static void OnRefreshServerOpenDay(HA005_tagOpenServerDay package)
    // {
    //     if (package.socketType != ServerType.CrossSever)
    //     {
    //         OpenDay = package.Day;
    //         IsMixServer = package.IsMixServer == 1;
    //         MixOpenDay = package.MixDay;
    //         openServerDayOfWeek = package.OpenWeekday == 7 ? DayOfWeek.Sunday : (DayOfWeek)package.OpenWeekday;
    //         WeekOfYear = package.WeekOfYear;
    //     }
    //     OnRefreshServerTime(new HA004_tagServerDateTime()
    //     {
    //         Year = package.NowYear,
    //         Month = package.NowMonth,
    //         Day = package.NowDay,
    //         Hour = package.NowHour,
    //         Minute = package.NowMinute,
    //         Second = package.NowSecond,
    //         MicSecond = package.NowMicSecond,
    //         socketType = package.socketType,
    //     });
    //     if (package.socketType != ServerType.CrossSever
    //         && OnServerOpenDayRefresh != null)
    //     {
    //         OnServerOpenDayRefresh();
    //     }
    // }
    // public static void SyncServerTime()
    // {
    //     CA002_tagClientRequestServerTime pak = new CA002_tagClientRequestServerTime();
    //     GameNetSystem.Instance.SendInfo(pak);
    //     if (GameNetSystem.Instance.crossServerSocketConnected)
    //     {
    //         GameNetSystem.Instance.SendToCrossServer(pak);
    //     }
    // }
    /// <summary>
    /// 根据服务器下发的秒数获取时间
    /// </summary>