少年修仙传客户端代码仓库
client_Wu Xijin
2019-02-25 a7c531aa353dae5b40b3c47f37211666ed0250a6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
using System.Collections.Generic;
/**排行榜信息 */
public class PlayerRankData
{
    public delegate void OnRankRefresh(int type);
    public event OnRankRefresh OnRefreshRank;
 
    private Dictionary<int, List<RankData>> m_RankDic = new Dictionary<int, List<RankData>>();
 
    public void OnUpdateRank(H1001_tagBillboard vNetData)
    {
        List<RankData> list = null;
        m_RankDic.TryGetValue(vNetData.Type, out list);
        for (int i = 0; i < vNetData.BillboardCount; i++)
        {
            if (list != null)
            {
                RankData data = null;
                if (i < list.Count)
                {
                    data = list[i];
                }
                else
                {
                    data = new RankData();
                    list.Add(data);
                }
                data.type = vNetData.Type;
                SetRankData(data, vNetData.Billboard[i]);
            }
            else
            {
                list = new List<RankData>();
                RankData data = new RankData();
                data.type = vNetData.Type;
                SetRankData(data, vNetData.Billboard[i]);
                list.Add(data);
                m_RankDic.Add(data.type, list);
            }
        }
        if (list != null && list.Count > vNetData.BillboardCount)
        {
            for (int k = list.Count - 1; k >= vNetData.BillboardCount; k--)
            {
                RankData data = list[k];
                list.RemoveAt(k);
                data = null;
            }
        }
        if (OnRefreshRank != null) OnRefreshRank(vNetData.Type);
    }
 
    private void SetRankData(RankData data, H1001_tagBillboard.tagBillboardList vNetData)
    {
        data.ID = vNetData.ID;
        data.Name1 = vNetData.Name1;
        data.Name2 = vNetData.Name2;
        data.subType = vNetData.Type2;
        data.value1 = vNetData.Value1;
        data.value2 = vNetData.Value2;
        data.cmpValue = vNetData.CmpValue;
        data.cmpValue2 = vNetData.CmpValue2;
        data.cmpValue3 = vNetData.CmpValue3;
    }
 
    public List<RankData> GetRankList(int type)
    {
        List<RankData> list = null;
        m_RankDic.TryGetValue(type, out list);
        return list;
    }
 
    public int GetSelfRank(int type)
    {
        uint player = PlayerDatas.Instance.baseData.PlayerID;
        List<RankData> list = GetRankList(type);
        if (list != null)
        {
            for (int i = 0; i < list.Count; i++)
            {
                if (list[i].ID == player)
                {
                    return i + 1;
                }
            }
        }
        return -1;
    }
 
    public RankData GetSelfRankData(int type)
    {
        List<RankData> list = GetRankList(type);
        if (list == null)
        {
            return null;
        }
        return list.Find((x) =>
        {
            return x.ID == PlayerDatas.Instance.PlayerId;
        });
    }
 
    public enum RankType
    {
        FightPower = 0,
        Job1FightPower = 1,
        Job2FightPower = 2,
        Job3FightPower = 3,
        Level = 4,
        Mount = 5,
        Pet = 6,
        RuneTower = 7,
        OfflineExp = 8,
        Realm = 9,
        OpenServerStrengthen = 11,
        OpenServerMount = 12,
        OpenServerGem = 13,
        OpenServerLv = 14,
        OpenServerRealm = 15,
        OpenServerFightPower = 16,
        Def_BT_FCCostGold = 17,  //消费排行榜(仙界盛典)
        OpenServerRune = 18,
        OpenServerGodWeapon = 20,
        OpenServerRecharge = 21,
        OpenServerPet = 22,
        JadeDynastyTower=23,//诛仙塔排行榜
        Def_BT_NewFCCostGold = 24, //消费排行榜(新仙界盛典)  24
    }
 
    public class RankData
    {
        public int type;
 
        public uint ID;
 
        public string Name1;
 
        public string Name2;
 
        public byte subType;
 
        public uint value1;
 
        public uint value2;
 
        public uint cmpValue;
 
        public uint cmpValue2;
 
        public uint cmpValue3;
    }
}