yyl
2026-03-26 f4a702e212d1853735f8dae399da69d23bfa510e
Main/System/BillboardRank/RankModel.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using LitJson;
using UnityEngine;
// 支持分页查询排行榜, 本服/跨服统一使用 参考QueryRankByPage  新封包 DTCA130_tagMCViewBillboardRet
@@ -81,6 +82,13 @@
        data.cmpValue2 = serverData.CmpValue2;
        data.cmpValue3 = serverData.CmpValue3;
        data.userData = serverData.UserData;
        var userData = JsonMapper.ToObject(serverData.UserData);
        if (userData.ContainsKey("FightPower"))
        {
            long.TryParse(userData["FightPower"].ToString(), out data.fightPower);
        }
        data.rank = serverData.Rank;
        data.type = type;
        data.index = serverData.Index;
@@ -178,6 +186,13 @@
        data.cmpValue2 = serverData.CmpValue2;
        data.cmpValue3 = serverData.CmpValue3;
        data.userData = serverData.UserData;
        var userData = JsonMapper.ToObject(serverData.UserData);
        if (userData.ContainsKey("FightPower"))
        {
            long.TryParse(userData["FightPower"].ToString(), out data.fightPower);
        }
        data.rank = serverData.Rank;
        data.index = serverData.Index;
        data.type = type;   //与服务端一致的跨服排行榜类型,外部自行处理不同分组分赛季等情况
@@ -187,10 +202,11 @@
    public void ReceiveRankPagePackage(HA130_tagMCViewBillboardRet package)
    {
        int rankType = package.Type;
        //部分跨服排行榜同一个榜存在分组分区的情况 //赛区3位+赛季3位+排行榜类型3位
        if (rankType == 165)    //CrossServerOneVsOneRewardModel.rankType
        //榜单类型6-武将登场招募榜 支持不同的ActNum同时开放活动,榜单数据独立
        if (rankType == 6)
        {
            rankType = (int)package.GroupValue1 * 1000000 + (int)package.GroupValue2 * 1000 + rankType;
            rankType = (int)package.GroupValue1 * 1000 + rankType;
        }
        if (!m_RankPageDatas.ContainsKey(rankType))
@@ -220,8 +236,13 @@
        for (int i = 0; i < package.PageDataCnt; i++)
        {
            int id = (int)package.PageDataList[i].ID;
            int orderIndex = (int)package.PageDataList[i].Rank;
            if (rankType == QunyingManager.rankType && GeneralDefine.IsRobot((int)package.PageDataList[i].ID))
            {
                //群英榜机器人ID会重复 用排名替换ID
                package.PageDataList[i].ID = (uint)orderIndex;
            }
            int id = (int)package.PageDataList[i].ID;
            if (!m_RankIDToIndex[rankType].ContainsKey(id))
            {
                m_RankIDToIndex[rankType][id] = orderIndex;
@@ -355,6 +376,11 @@
                return Language.Get("Arena15", config.ChapterID, config.LevelNum);
            case 4:
                return cmpValue.ToString();
            case 7:
            case 9:
                return Language.Get("OSActivity19", cmpValue.ToString());
            case 8:
                return Language.Get("L1113", cmpValue.ToString());
        }
        return string.Empty;
    }
@@ -369,6 +395,12 @@
                return Language.Get("RankTypeName_1");
            case 4:
                return Language.Get("OSActivity5");
            case 7:
                return Language.Get("OSActivity16");
            case 8:
                return Language.Get("OSActivity15");
            case 9:
                return Language.Get("OSActivity17");
        }
        return string.Empty;
    }
@@ -421,6 +453,7 @@
    public uint cmpValue2;
    public uint cmpValue3;
    public string userData;
    public long fightPower;
    public int rank;   // 排名从1开始,代表第1名
    public int index;   //数据在榜单列表中的索引,从0开始 非排名 分页查询会用到 
}