From 45d3d873a7740886fa09f35c9fea2830f4563072 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期三, 11 二月 2026 11:04:37 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into h5version

---
 Main/System/BillboardRank/GuildRankWin.cs |   48 +++++++++++++++++++++++++++++++++---------------
 1 files changed, 33 insertions(+), 15 deletions(-)

diff --git a/Main/System/BillboardRank/GuildRankWin.cs b/Main/System/BillboardRank/GuildRankWin.cs
index b70acbd..9ca08f4 100644
--- a/Main/System/BillboardRank/GuildRankWin.cs
+++ b/Main/System/BillboardRank/GuildRankWin.cs
@@ -1,13 +1,24 @@
-锘縰sing UnityEngine;
+锘縰sing System.Collections.Generic;
+using UnityEngine;
 
 public class GuildRankWin : UIBase
 {
+    [SerializeField] Transform empty;
     [SerializeField] GuildTop3Cell[] guildTop3Cells;
     [SerializeField] ScrollerController scroller;
     [SerializeField] TextEx rankText;
     [SerializeField] TextEx rankValueText;
+    [SerializeField] ButtonEx serversBtn;
 
     GuildManager manager { get { return GuildManager.Instance; } }
+    protected override void InitComponent()
+    {
+        serversBtn.AddListener(() =>
+        {
+            UIHelper.ShowServersPanel(GuildManager.Instance.crossServerIDList);
+        });
+    }
+
     protected override void OnPreOpen()
     {
         manager.OnRefreshFairyList += OnRefreshFairyList;
@@ -26,6 +37,7 @@
 
     public void Display()
     {
+        serversBtn.SetActive(GuildManager.Instance.zoneID != 0);
         ShowTop3();
         CreateScroller();
         ShowMyRank();
@@ -33,9 +45,21 @@
 
     void CreateScroller()
     {
-        scroller.Refresh();
-        var cnt = manager.rankShowMaxCnt;
-        for (int i = 3; i < cnt; i++)
+        if (GuildManager.Instance.pageIndexList.Count < 4)
+        {
+            empty.SetActive(true);
+            scroller.SetActive(false);
+            return;
+        }
+        empty.SetActive(false);
+        scroller.SetActive(true);
+
+        var startCount = scroller.GetCellTotalCount();
+        if (startCount > GuildManager.Instance.pageIndexList.Count)
+        {
+            scroller.Refresh();
+        }
+        for (int i = startCount + 3; i < GuildManager.Instance.pageIndexList.Count; i++)
         {
             scroller.AddCell(ScrollerDataType.Header, i);
         }
@@ -60,22 +84,16 @@
 
     void ShowMyRank()
     {
-        var mydata = manager.GetFairyData(PlayerDatas.Instance.fairyData.fairy.FamilyID);
-        if (mydata == null)
-        {
-            rankValueText.SetActive(false);
-            rankText.text = Language.Get("GuildRank04", Language.Get("L1045"));
-            return;
-        }
-        rankValueText.SetActive(true);
-        rankText.text = Language.Get("GuildRank04", mydata.Rank);
-        rankValueText.text = UIHelper.ReplaceLargeArtNum(mydata.totalFightPower);
+        int myFairyRank = manager.myFairyRank;
+        rankText.text = Language.Get("GuildRank04", myFairyRank > 0 ? myFairyRank : Language.Get("L1045"));
+        rankValueText.SetActive(PlayerDatas.Instance.fairyData.HasFairy && myFairyRank > 0);
+        rankValueText.text = UIHelper.ReplaceLargeArtNum(PlayerDatas.Instance.fairyData.fairy.totalFightPower);
     }
 
     void OnRefreshFairyList()
     {
         ShowTop3();
-        scroller.m_Scorller.RefreshActiveCellViews();
+        CreateScroller();
         ShowMyRank();
     }
 }

--
Gitblit v1.8.0