lcy
2026-02-05 78de35028b3607f75c03651428a5d8baa247e9b7
441 公会排行榜

1.支持正确显示自己的公会排名
2.取消最大滚动限制
3.调整第二名的公会名位置
4.显示互通服务器
2个文件已修改
59 ■■■■■ 已修改文件
Main/System/BillboardRank/GuildRankWin.cs 46 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Guild/GuildManager.cs 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/BillboardRank/GuildRankWin.cs
@@ -1,4 +1,5 @@
using UnityEngine;
using System.Collections.Generic;
using UnityEngine;
public class GuildRankWin : UIBase
{
@@ -6,8 +7,17 @@
    [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 +36,7 @@
    public void Display()
    {
        serversBtn.SetActive(GuildManager.Instance.zoneID != 0);
        ShowTop3();
        CreateScroller();
        ShowMyRank();
@@ -34,13 +45,28 @@
    void CreateScroller()
    {
        scroller.Refresh();
        var cnt = manager.rankShowMaxCnt;
        var cnt = manager.pageCnt;
        for (int i = 3; i < cnt; i++)
        {
            scroller.AddCell(ScrollerDataType.Header, i);
        }
        scroller.Restart();
    }
    void RefreshScroller()
    {
        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);
        }
        scroller.Restart();
    }
    void OnRefreshCell(ScrollerDataType type, CellView cell)
    {
@@ -60,22 +86,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();
        RefreshScroller();
        ShowMyRank();
    }
}
Main/System/Guild/GuildManager.cs
@@ -228,9 +228,8 @@
        config = FuncConfigConfig.Get("FamilyBillboardSet");
        rankShowMaxCnt = int.Parse(config.Numerical1);
        pageCnt = int.Parse(config.Numerical2);
        queryPointNum = int.Parse(config.Numerical3);
        pageCnt = int.Parse(config.Numerical1);
        queryPointNum = int.Parse(config.Numerical2);
    }
@@ -543,7 +542,6 @@
    public int lastPage = -1;
    public int pageCnt; //每页查询条数
    int queryPointNum;  //查询点
    public int rankShowMaxCnt;
    public bool isPowerSort
    {
@@ -596,13 +594,6 @@
            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);
        }
    }