From b25049dc4ba2c5974df11ff9c87a1c35902902c6 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期六, 07 二月 2026 16:24:02 +0800
Subject: [PATCH] 66 【公会】基础主体 - 跨服和本服公用时间接口

---
 Main/System/Guild/GuildManager.cs             |    4 +-
 Main/Utility/TimeUtility.cs                   |   36 ++++++++++++++++++
 Main/System/Guild/GuildHawkerWin.cs           |    7 ++-
 Main/System/Guild/GuildManager.CrossServer.cs |   31 ---------------
 Main/System/Guild/GuildBossWin.cs             |    8 ++--
 5 files changed, 47 insertions(+), 39 deletions(-)

diff --git a/Main/System/Guild/GuildBossWin.cs b/Main/System/Guild/GuildBossWin.cs
index 5b8e74f..2c51665 100644
--- a/Main/System/Guild/GuildBossWin.cs
+++ b/Main/System/Guild/GuildBossWin.cs
@@ -138,7 +138,7 @@
 
     void Display()
     {
-        endTimeText.text = Language.Get("Arena14", TimeUtility.SecondsToHMS((int)(TimeUtility.GetTodayEndTime() - TimeUtility.ServerNow).TotalSeconds));
+        endTimeText.text = Language.Get("Arena14", TimeUtility.SecondsToHMS((int)(TimeUtility.GetCommTodayEndTime(GuildManager.Instance.zoneID) - TimeUtility.GetCommServerNow(GuildManager.Instance.zoneID)).TotalSeconds));
         fightPowerText.text = UIHelper.ReplaceLargeArtNum(PlayerDatas.Instance.baseData.FightPower);
         headCell.InitUI(AvatarHelper.GetAvatarModel((int)PlayerDatas.Instance.baseData.PlayerID,
                                                         PlayerDatas.Instance.baseData.face,
@@ -271,7 +271,7 @@
         bzAttrText.text = GetAddAttrs(bossAction);
         var layer = bossAction == null ? 0 : bossAction.Value3;
         var bzTime = bossAction == null ? 0 : bossAction.Value2;
-        int remainTime = (int)Math.Max(0, bzTime - TimeUtility.AllSeconds);
+        int remainTime = (int)Math.Max(0, bzTime - TimeUtility.GetCommServerTick(GuildManager.Instance.zoneID));
         if (remainTime == 0)
         {
             //鏃堕棿鍒颁簡 瀹㈡埛绔嚜宸辨竻0
@@ -292,7 +292,7 @@
     {
         var layerNum = action == null ? 0 : action.Value3;
         var bzTime = action == null ? 0 : action.Value2;
-        int remainTime = (int)Math.Max(0, bzTime - TimeUtility.AllSeconds);
+        int remainTime = (int)Math.Max(0, bzTime - TimeUtility.GetCommServerTick(GuildManager.Instance.zoneID));
         if (remainTime == 0)
         {
             //鏃堕棿鍒颁簡 瀹㈡埛绔嚜宸辨竻0
@@ -310,7 +310,7 @@
 
     void OnSecondEvent()
     {
-        endTimeText.text = Language.Get("Arena14", TimeUtility.SecondsToHMS((int)(TimeUtility.GetTodayEndTime() - TimeUtility.ServerNow).TotalSeconds));
+        endTimeText.text = Language.Get("Arena14", TimeUtility.SecondsToHMS((int)(TimeUtility.GetCommTodayEndTime(GuildManager.Instance.zoneID) - TimeUtility.GetCommServerNow(GuildManager.Instance.zoneID)).TotalSeconds));
         var bossAction = GuildBossManager.Instance.GetGuildBossAction();
         ShowBzInfo(bossAction);
         OtherPlayerAnimation();
diff --git a/Main/System/Guild/GuildHawkerWin.cs b/Main/System/Guild/GuildHawkerWin.cs
index 08375de..5439919 100644
--- a/Main/System/Guild/GuildHawkerWin.cs
+++ b/Main/System/Guild/GuildHawkerWin.cs
@@ -61,7 +61,8 @@
 
     void OnSecondEvent()
     {
-        timeText.text = Language.Get("Guild_74", TimeUtility.SecondsToShortDHMS((int)(GuildManager.Instance.GetTodayEndTime() - GuildManager.Instance.GetServerNow()).TotalSeconds));
+        timeText.text = Language.Get("Guild_74", TimeUtility.SecondsToShortDHMS((int)(TimeUtility.GetCommTodayEndTime(GuildManager.Instance.zoneID) -
+        TimeUtility.GetCommServerNow(GuildManager.Instance.zoneID)).TotalSeconds));
     }
 
     int index = 0;
@@ -199,9 +200,9 @@
     void OnCut()
     {
         //鐮嶄环鐨刢d闄愬埗: 鍏細娌℃湁璁板綍鑷繁鐮嶈繃浠凤紝浣嗕粖澶╂湁鐮嶄环璁板綍锛屼笖閫�鍑鸿繃鍏細
-        if (GuildManager.Instance.zhenbaogeCutState == 0 && GuildManager.Instance.needCheckCutCD && (GuildManager.Instance.GetServerTick() - PlayerDatas.Instance.baseData.leaveFamilyTime) / 60 < GuildManager.Instance.zbgChangFamilyCD )
+        if (GuildManager.Instance.zhenbaogeCutState == 0 && GuildManager.Instance.needCheckCutCD && (TimeUtility.GetCommServerTick(GuildManager.Instance.zoneID) - PlayerDatas.Instance.baseData.leaveFamilyTime) / 60 < GuildManager.Instance.zbgChangFamilyCD )
         {
-            SysNotifyMgr.Instance.ShowTip("ZhenbaogeCut1", GuildManager.Instance.zbgChangFamilyCD - (GuildManager.Instance.GetServerTick() - PlayerDatas.Instance.baseData.leaveFamilyTime) / 60);
+            SysNotifyMgr.Instance.ShowTip("ZhenbaogeCut1", GuildManager.Instance.zbgChangFamilyCD - (TimeUtility.GetCommServerTick(GuildManager.Instance.zoneID) - PlayerDatas.Instance.baseData.leaveFamilyTime) / 60);
             return;
         }
         if (GuildManager.Instance.zhenbaogeCutState == 0)
diff --git a/Main/System/Guild/GuildManager.CrossServer.cs b/Main/System/Guild/GuildManager.CrossServer.cs
index 68ba92a..e967068 100644
--- a/Main/System/Guild/GuildManager.CrossServer.cs
+++ b/Main/System/Guild/GuildManager.CrossServer.cs
@@ -22,36 +22,7 @@
         OnRefreshCrossServerInfoEvent?.Invoke();
     }
 
-    // 鑾峰彇褰撳墠鏃堕棿, 鍏細璺ㄥ尯鍓嶅彇鏈湇鏃堕棿锛岃法鏈嶅悗鍙栬法鏈嶆椂闂�
-    public DateTime GetServerNow()
-    {
-        if (zoneID == 0)
-        {
-            return TimeUtility.ServerNow;
-        }
-        else
-        {
-            return TimeUtility.CrossServerNow;
-        }
-    }
-
-    public int GetServerTick()
-    {
-        if (zoneID == 0)
-        {
-            return TimeUtility.AllSeconds;
-        }
-        else
-        {
-            return TimeUtility.AllSecondsCrossServer;
-        }
-    }
-
-    public DateTime GetTodayEndTime()
-    {
-        var now = GetServerNow().AddDays(1);
-        return new DateTime(now.Year, now.Month, now.Day);
-    }
+   
 
 }
 
diff --git a/Main/System/Guild/GuildManager.cs b/Main/System/Guild/GuildManager.cs
index 1abadc5..5d3e69e 100644
--- a/Main/System/Guild/GuildManager.cs
+++ b/Main/System/Guild/GuildManager.cs
@@ -349,7 +349,7 @@
                 punishTime = quitGuildPunishTime[Math.Min(quitCount, quitGuildPunishTime.Length - 1)];
         }
 
-        return punishTime * 60 - (GetServerTick() - PlayerDatas.Instance.baseData.leaveFamilyTime);
+        return punishTime * 60 - (TimeUtility.GetCommServerTick(zoneID)- PlayerDatas.Instance.baseData.leaveFamilyTime);
     }
 
 
@@ -1118,7 +1118,7 @@
         {
             return;
         }
-        if (GetServerNow().Hour < 10)
+        if (TimeUtility.GetCommServerNow(zoneID).Hour < 10)
             return;
 
         if (zhenbaogeCutState == 0)
diff --git a/Main/Utility/TimeUtility.cs b/Main/Utility/TimeUtility.cs
index ed856e8..ef8a4a1 100644
--- a/Main/Utility/TimeUtility.cs
+++ b/Main/Utility/TimeUtility.cs
@@ -547,4 +547,40 @@
     {
         return (int)(GetTodayEndTime() - ServerNow).TotalSeconds;
     }
+
+    #region 璺ㄦ湇鍜屾湰鏈嶅叕鐢ㄦ帴鍙�
+    //褰撴湁鐨勫姛鑳戒細浠庢湰鏈嶅姛鑳藉彉鎴愯法鏈嶅姛鑳界殑鏃跺�欑粺涓�鐢ㄨ繖浜涙帴鍙e鐞嗘椂闂�
+    //鍚勮嚜鐨勫姛鑳戒紶鑷繁鐨剒oneID
+
+    // 鑾峰彇褰撳墠鏃堕棿, 鍏細璺ㄥ尯鍓嶅彇鏈湇鏃堕棿锛岃法鏈嶅悗鍙栬法鏈嶆椂闂�
+    public static DateTime GetCommServerNow(int zoneID = 0)
+    {
+        if (zoneID == 0)
+        {
+            return ServerNow;
+        }
+        else
+        {
+            return CrossServerNow;
+        }
+    }
+
+    public static int GetCommServerTick(int zoneID = 0)
+    {
+        if (zoneID == 0)
+        {
+            return AllSeconds;
+        }
+        else
+        {
+            return AllSecondsCrossServer;
+        }
+    }
+
+    public static DateTime GetCommTodayEndTime(int zoneID = 0)
+    {
+        var now = GetCommServerNow(zoneID).AddDays(1);
+        return new DateTime(now.Year, now.Month, now.Day);
+    }
+    #endregion
 }

--
Gitblit v1.8.0