From 04ffe31b6a2b2fbcfecc83abb44a8aa233f2e53f Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期一, 02 二月 2026 18:45:57 +0800
Subject: [PATCH] 54 【淘金】切后台淘金完成 时间显示负数

---
 Main/System/Guild/GuildManager.cs |   92 +++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 82 insertions(+), 10 deletions(-)

diff --git a/Main/System/Guild/GuildManager.cs b/Main/System/Guild/GuildManager.cs
index 52201d3..86c096c 100644
--- a/Main/System/Guild/GuildManager.cs
+++ b/Main/System/Guild/GuildManager.cs
@@ -39,7 +39,7 @@
 
     public byte[] donateCntList;
     public event Action DonateCntListEvent;
-    public event Action<bool> EnterOrQuitGuildEvent;   //杩涘叆鎴栭��鍑哄叕浼氫簨浠�
+    public event Action<bool> EnterOrQuitGuildEvent;   //true杩涘叆鎴杅alse閫�鍑哄叕浼氫簨浠�
 
 
     public override void Init()
@@ -76,7 +76,7 @@
     void OnPlayerLoginOk()
     {
         UpdateDonateRedPoint();
-
+        QueryZBGFamilyInfo();
     }
 
     void PlayerDataRefreshEvent(PlayerDataType type)
@@ -121,7 +121,7 @@
         EnterOrQuitGuildEvent?.Invoke(false);
     }
 
-    //娉ㄦ剰涓婄嚎閫氱煡鍏細鏁版嵁鏃朵篃浼氳Е鍙�
+    //娉ㄦ剰涓婄嚎閫氱煡鍏細鏁版嵁鏃朵篃浼氳Е鍙�; 浣嗘柇绾块噸杩炰笉浼氳Е鍙�
     public async UniTask AfterEnterGuild()
     {
         //杩欓噷杩樻病鏈夊叕浼氭暟鎹�, 鍚庣画鐨勫寘浼氭洿鏂板叕浼氭暟鎹�
@@ -180,7 +180,7 @@
     public int zbgOrgPriceValue;
     public int zbgChangFamilyCD;
     public List<int> cutCntListForTalk = new List<int>();
-
+    public int familyRecordMaxCount;
 
     void ParseConfig()
     {
@@ -219,6 +219,15 @@
         zbgOrgPriceValue = int.Parse(config.Numerical2);
         zbgChangFamilyCD = int.Parse(config.Numerical3);
         cutCntListForTalk = JsonMapper.ToObject<List<int>>(config.Numerical4);
+
+        config = FuncConfigConfig.Get("FamilyNote");
+        familyRecordMaxCount = int.Parse(config.Numerical1);
+
+
+        config = FuncConfigConfig.Get("FamilyBillboardSet");
+        rankShowMaxCnt = int.Parse(config.Numerical1);
+        pageCnt = int.Parse(config.Numerical2);
+        queryPointNum = int.Parse(config.Numerical3);
     }
 
 
@@ -446,9 +455,7 @@
     #region  鍏細鑷畾涔夎褰�
     public void UpdateFamilyAction(HA513_tagMCFamilyActionInfo _package)
     {
-        if (PlayerDatas.Instance.fairyData == null ||
-            PlayerDatas.Instance.fairyData.fairy == null ||
-            PlayerDatas.Instance.fairyData.fairy.FamilyID != _package.FamilyID)
+        if (PlayerDatas.Instance.baseData.FamilyId != _package.FamilyID)
         {
             return;
         }
@@ -528,6 +535,60 @@
     public List<int> pageIndexList = new List<int>();  //姝e父鏄寜椤垫煡璇紝椤哄簭娣诲姞鍗冲彲
     public int curPageIndex;
     public int totalPageCount;
+
+    public int lastPage = -1;
+    public int pageCnt; //姣忛〉鏌ヨ鏉℃暟
+    int queryPointNum;  //鏌ヨ鐐�
+    public int rankShowMaxCnt;
+
+    public FairyData GetFairyDataByRank(int rank)
+    {
+        if (rank < 1)
+            return null;
+        int index = rank - 1;
+        FairyData fairyData = GetFairyDataByIndex(index);
+        return fairyData;
+    }
+
+    public FairyData GetFairyDataByIndex(int index)
+    {
+        if (pageIndexList.IsNullOrEmpty() || index < 0 || index >= pageIndexList.Count)
+            return null;
+        int fairyID = pageIndexList[index];
+        FairyData fairyData = GetFairyData(fairyID);
+        return fairyData;
+    }
+
+    public FairyData GetFairyData(int fairyID)
+    {
+        return guildsDict.TryGetValue(fairyID, out var data) ? data : null;
+    }
+
+    public void ResetQueryParam()
+    {
+        pageCnt = 20;
+        lastPage = -1;
+        queryPointNum = 12;
+    }
+
+    public void ListenRankPage(int index)
+    {
+        int page = index / pageCnt;
+        if (index > page * pageCnt + queryPointNum)
+        {
+            if (lastPage >= page)
+                return;
+            lastPage = page;
+
+            if (index >= rankShowMaxCnt)
+            {
+                //瓒呰繃鏈嶅姟鍣ㄥ凡涓婃鐨勬�绘暟閲忥紝姣斿鎬绘鍗曟槸100鍚嶏紝褰撳墠鍙湁8鍚嶇帺瀹朵笂姒滐紝寰�涓嬫粴鍔ㄥ氨涓嶅啀鏌ヨ
+                return;
+            }
+            //Debug.LogFormat("鍒嗛〉鏌ヨ锛氳姹傜 {0} 椤� (褰撳墠index:{1})", page + 1, index);
+            SendFindGuild(string.Empty, page + 1, pageCnt);
+        }
+    }
 
     //鏌ユ壘鍏細鍒楄〃
     public void OnRefreshGuildViewList(HA523_tagMCFamilyViewList vNetData)
@@ -743,7 +804,7 @@
             return;
         }
         lastChangeMarkTime = Time.time;
-        if (UIManager.Instance.IsOpened<GuildHallWin>())
+        if ((netPack.Type == 1 || netPack.Type == 2) && UIManager.Instance.IsOpened<GuildBaseWin>())
         {
             RequestGuildData();
         }
@@ -844,8 +905,13 @@
     //鐧诲綍鍚庨娆℃墦寮�鏌ヨ锛屾崲鏂颁粰鐩熸煡璇�
     public void QueryZBGFamilyInfo()
     {
+        if (PlayerDatas.Instance.baseData.FamilyId == 0)
+        {
+            return;
+        }
         if (isQueryZBGYet)
             return;
+
 
         QueryFamilyAction((int)PlayerDatas.Instance.baseData.FamilyId, ZBGFamilyActionType);
 
@@ -862,8 +928,14 @@
             return false;
         }
         bool restart = false;
-        if (vNetData.FamilyActionList.Length == 1 && vNetData.FamilyActionList[0].Value1 == 1)
+
+        for (int i = 0; i < vNetData.FamilyActionList.Length; i++)
         {
+            int playerID = (int)vNetData.FamilyActionList[i].Value1;
+            if (playerID != 1)
+            {
+                continue;
+            }
             if (familyZBGActions.ContainsKey(1) && familyZBGActions[1].Time != vNetData.FamilyActionList[0].Time)
             {
                 familyZBGActions.Clear();
@@ -871,6 +943,7 @@
                 restart = true;
             }
         }
+
 
         for (int i = 0; i < vNetData.FamilyActionList.Length; i++)
         {
@@ -958,7 +1031,6 @@
     }
 
     #endregion
-
 
     #region 绾㈢偣
 

--
Gitblit v1.8.0