From a277a317c827163c595ec1b21247dc820a1a0ff0 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期三, 02 七月 2025 20:23:29 +0800
Subject: [PATCH] 0312 排行榜
---
Main/Core/NetworkPackage/ClientPack/CA1_Sys/CA130_tagCMViewBillboard.cs.meta | 11 +
Main/System/Boss/MainBossEnterWin.cs | 11 +
Main/Core/NetworkPackage/ClientPack/CA1_Sys/CA130_tagCMViewBillboard.cs | 28 ++
Main/System/BillboardRank/RankModel.cs | 309 ++++++++++++++++++++++++++++++
Main/Core/NetworkPackage/ServerPack/HA1_Sys/HA130_tagMCViewBillboardRet.cs.meta | 11 +
Main/System/BillboardRank/Top3Cell.cs.meta | 11 +
Main/Manager/UIManager.cs | 4
Main/System/Boss/MainBossRankWin.cs | 2
Main/System/BillboardRank/RankModel.cs.meta | 12 +
Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs | 1
Main/Core/NetworkPackage/ServerPack/HA1_Sys/HA130_tagMCViewBillboardRet.cs | 102 ++++++++++
Main/System/Main/HomeWin.cs | 8
Main/Core/NetworkPackage/DTCFile/ServerPack/HA1_Sys/DTCA130_tagMCViewBillboardRet.cs.meta | 11 +
Main/Main.cs | 1
Main/System/BillboardRank/Top3Cell.cs | 24 ++
Main/System/BillboardRank.meta | 8
Main/System/Store/StoreModel.cs | 5
Main/Core/NetworkPackage/DTCFile/ServerPack/HA1_Sys/DTCA130_tagMCViewBillboardRet.cs | 13 +
Main/System/DailyQuest/DailyQuestModel.cs | 5
19 files changed, 574 insertions(+), 3 deletions(-)
diff --git a/Main/Core/NetworkPackage/ClientPack/CA1_Sys/CA130_tagCMViewBillboard.cs b/Main/Core/NetworkPackage/ClientPack/CA1_Sys/CA130_tagCMViewBillboard.cs
new file mode 100644
index 0000000..862cfff
--- /dev/null
+++ b/Main/Core/NetworkPackage/ClientPack/CA1_Sys/CA130_tagCMViewBillboard.cs
@@ -0,0 +1,28 @@
+using UnityEngine;
+using System.Collections;
+
+// A1 30 鏌ョ湅姒滃崟 #tagCMViewBillboard
+
+public class CA130_tagCMViewBillboard : GameNetPackBasic {
+ public byte Type; //姒滃崟绫诲瀷
+ public uint GroupValue1; //鍒嗙粍鍊�1
+ public uint GroupValue2; //鍒嗙粍鍊�2锛屼笌鍒嗙粍鍊�1缁勫悎褰掍负鍚岀粍姒滃崟鏁版嵁
+ public ushort StartIndex; //鏌ョ湅鐨勮捣濮嬬储寮曪紝 榛樿0 闈炲悕娆�
+ public byte ViewCnt; //鏌ョ湅鏉℃暟锛岄粯璁�20锛屽崟娆℃渶澶т笉瓒呰繃100锛屽拰StartIndex鍏宠仈
+ public uint ViewID; //闄勫甫鏌ョ湅鎸囧畾ID鎵�鍦ㄥ悕娆″墠鍚庢暟鎹紝濡傜帺瀹禝D銆佸鏃廔D绛夛紝涓嶸iewCnt鏃犲叧锛屾湇鍔$鍥哄畾杩斿洖鏉℃暟
+
+ public CA130_tagCMViewBillboard () {
+ combineCmd = (ushort)0x03FE;
+ _cmd = (ushort)0xA130;
+ }
+
+ public override void WriteToBytes () {
+ WriteBytes (Type, NetDataType.BYTE);
+ WriteBytes (GroupValue1, NetDataType.DWORD);
+ WriteBytes (GroupValue2, NetDataType.DWORD);
+ WriteBytes (StartIndex, NetDataType.WORD);
+ WriteBytes (ViewCnt, NetDataType.BYTE);
+ WriteBytes (ViewID, NetDataType.DWORD);
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ClientPack/CA1_Sys/CA130_tagCMViewBillboard.cs.meta b/Main/Core/NetworkPackage/ClientPack/CA1_Sys/CA130_tagCMViewBillboard.cs.meta
new file mode 100644
index 0000000..7785dff
--- /dev/null
+++ b/Main/Core/NetworkPackage/ClientPack/CA1_Sys/CA130_tagCMViewBillboard.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 78f2a8b14f2fcf847b334e66a0c8bbcb
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA1_Sys/DTCA130_tagMCViewBillboardRet.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA1_Sys/DTCA130_tagMCViewBillboardRet.cs
new file mode 100644
index 0000000..9bf68be
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA1_Sys/DTCA130_tagMCViewBillboardRet.cs
@@ -0,0 +1,13 @@
+using UnityEngine;
+using System.Collections;
+
+// A1 30 鏌ョ湅姒滃崟杩斿洖淇℃伅 #tagMCViewBillboardRet
+
+public class DTCA130_tagMCViewBillboardRet : DtcBasic {
+ public override void Done(GameNetPackBasic vNetPack)
+ {
+ base.Done(vNetPack);
+ HA130_tagMCViewBillboardRet vNetData = vNetPack as HA130_tagMCViewBillboardRet;
+ RankModel.Instance.ReceiveRankPagePackage(vNetData);
+ }
+}
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA1_Sys/DTCA130_tagMCViewBillboardRet.cs.meta b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA1_Sys/DTCA130_tagMCViewBillboardRet.cs.meta
new file mode 100644
index 0000000..13c8573
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA1_Sys/DTCA130_tagMCViewBillboardRet.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: ec09c0f2356707545b692363b8241ca5
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs b/Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs
index fcbab53..76c01b0 100644
--- a/Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs
+++ b/Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs
@@ -93,6 +93,7 @@
Register(typeof(HB110_tagMCTaskInfo), typeof(DTCB110_tagMCTaskInfo));
Register(typeof(HA921_tagUpdatePlayerNameResult), typeof(DTCA921_tagUpdatePlayerNameResult));
Register(typeof(H3202_tagServerResponse), typeof(DTC3202_tagServerResponse));
+ Register(typeof(HA130_tagMCViewBillboardRet), typeof(DTCA130_tagMCViewBillboardRet));
}
diff --git a/Main/Core/NetworkPackage/ServerPack/HA1_Sys/HA130_tagMCViewBillboardRet.cs b/Main/Core/NetworkPackage/ServerPack/HA1_Sys/HA130_tagMCViewBillboardRet.cs
new file mode 100644
index 0000000..f464d4e
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA1_Sys/HA130_tagMCViewBillboardRet.cs
@@ -0,0 +1,102 @@
+using UnityEngine;
+using System.Collections;
+
+// A1 30 鏌ョ湅姒滃崟杩斿洖淇℃伅 #tagMCViewBillboardRet
+
+public class HA130_tagMCViewBillboardRet : GameNetPackBasic {
+ public byte Type; //姒滃崟绫诲瀷
+ public uint GroupValue1; //鍒嗙粍鍊�1
+ public uint GroupValue2; //鍒嗙粍鍊�2锛屼笌鍒嗙粍鍊�1缁勫悎褰掍负鍚岀粍姒滃崟鏁版嵁
+ public ushort DataTotal; //璇ユ鍗曞疄闄呮�绘暟鎹暟锛屽垎椤垫煡璇㈡椂鍙�氳繃姝ゅ�煎強杩斿洖鐨勫垎椤垫渶鍚庝竴鏉℃鍗曟暟鎹墍鍦ㄧ储寮曞垽鏂槸鍚﹁繕鏈夋湭鏌ヨ鏁版嵁
+ public byte PageDataCnt;
+ public tagMCViewBillboardData[] PageDataList; //杩斿洖鍒嗛〉鏁版嵁鍒楄〃
+ public uint ViewID; //闄勫甫鏌ョ湅鎸囧畾ID鎵�鍦ㄥ悕娆″墠鍚庢暟鎹紝濡傜帺瀹禝D銆佸鏃廔D绛�
+ public byte ViewIDDataCnt;
+ public tagMCViewBillboardData[] ViewIDDataList; //ViewID鎵�鍦ㄥ悕娆″墠鍚庢暟鎹垪琛�
+
+ public HA130_tagMCViewBillboardRet () {
+ _cmd = (ushort)0xA130;
+ }
+
+ public override void ReadFromBytes (byte[] vBytes) {
+ TransBytes (out Type, vBytes, NetDataType.BYTE);
+ TransBytes (out GroupValue1, vBytes, NetDataType.DWORD);
+ TransBytes (out GroupValue2, vBytes, NetDataType.DWORD);
+ TransBytes (out DataTotal, vBytes, NetDataType.WORD);
+ TransBytes (out PageDataCnt, vBytes, NetDataType.BYTE);
+ PageDataList = new tagMCViewBillboardData[PageDataCnt];
+ for (int i = 0; i < PageDataCnt; i ++) {
+ PageDataList[i] = new tagMCViewBillboardData();
+ TransBytes (out PageDataList[i].Index, vBytes, NetDataType.WORD);
+ TransBytes (out PageDataList[i].Rank, vBytes, NetDataType.WORD);
+ TransBytes (out PageDataList[i].ID, vBytes, NetDataType.DWORD);
+ TransBytes (out PageDataList[i].ID2, vBytes, NetDataType.DWORD);
+ TransBytes (out PageDataList[i].Name1, vBytes, NetDataType.Chars, 33);
+ TransBytes (out PageDataList[i].Name2, vBytes, NetDataType.Chars, 65);
+ TransBytes (out PageDataList[i].Type2, vBytes, NetDataType.BYTE);
+ TransBytes (out PageDataList[i].Value1, vBytes, NetDataType.DWORD);
+ TransBytes (out PageDataList[i].Value2, vBytes, NetDataType.DWORD);
+ TransBytes (out PageDataList[i].Value3, vBytes, NetDataType.DWORD);
+ TransBytes (out PageDataList[i].Value4, vBytes, NetDataType.DWORD);
+ TransBytes (out PageDataList[i].Value5, vBytes, NetDataType.DWORD);
+ TransBytes (out PageDataList[i].Value6, vBytes, NetDataType.DWORD);
+ TransBytes (out PageDataList[i].Value7, vBytes, NetDataType.DWORD);
+ TransBytes (out PageDataList[i].Value8, vBytes, NetDataType.DWORD);
+ TransBytes (out PageDataList[i].CmpValue, vBytes, NetDataType.DWORD);
+ TransBytes (out PageDataList[i].CmpValue2, vBytes, NetDataType.DWORD);
+ TransBytes (out PageDataList[i].CmpValue3, vBytes, NetDataType.DWORD);
+ TransBytes (out PageDataList[i].DataLen, vBytes, NetDataType.WORD);
+ TransBytes (out PageDataList[i].UserData, vBytes, NetDataType.Chars, PageDataList[i].DataLen);
+ }
+ TransBytes (out ViewID, vBytes, NetDataType.DWORD);
+ TransBytes (out ViewIDDataCnt, vBytes, NetDataType.BYTE);
+ ViewIDDataList = new tagMCViewBillboardData[ViewIDDataCnt];
+ for (int i = 0; i < ViewIDDataCnt; i ++) {
+ ViewIDDataList[i] = new tagMCViewBillboardData();
+ TransBytes (out ViewIDDataList[i].Index, vBytes, NetDataType.WORD);
+ TransBytes (out ViewIDDataList[i].Rank, vBytes, NetDataType.WORD);
+ TransBytes (out ViewIDDataList[i].ID, vBytes, NetDataType.DWORD);
+ TransBytes (out ViewIDDataList[i].ID2, vBytes, NetDataType.DWORD);
+ TransBytes (out ViewIDDataList[i].Name1, vBytes, NetDataType.Chars, 33);
+ TransBytes (out ViewIDDataList[i].Name2, vBytes, NetDataType.Chars, 65);
+ TransBytes (out ViewIDDataList[i].Type2, vBytes, NetDataType.BYTE);
+ TransBytes (out ViewIDDataList[i].Value1, vBytes, NetDataType.DWORD);
+ TransBytes (out ViewIDDataList[i].Value2, vBytes, NetDataType.DWORD);
+ TransBytes (out ViewIDDataList[i].Value3, vBytes, NetDataType.DWORD);
+ TransBytes (out ViewIDDataList[i].Value4, vBytes, NetDataType.DWORD);
+ TransBytes (out ViewIDDataList[i].Value5, vBytes, NetDataType.DWORD);
+ TransBytes (out ViewIDDataList[i].Value6, vBytes, NetDataType.DWORD);
+ TransBytes (out ViewIDDataList[i].Value7, vBytes, NetDataType.DWORD);
+ TransBytes (out ViewIDDataList[i].Value8, vBytes, NetDataType.DWORD);
+ TransBytes (out ViewIDDataList[i].CmpValue, vBytes, NetDataType.DWORD);
+ TransBytes (out ViewIDDataList[i].CmpValue2, vBytes, NetDataType.DWORD);
+ TransBytes (out ViewIDDataList[i].CmpValue3, vBytes, NetDataType.DWORD);
+ TransBytes (out ViewIDDataList[i].DataLen, vBytes, NetDataType.WORD);
+ TransBytes (out ViewIDDataList[i].UserData, vBytes, NetDataType.Chars, ViewIDDataList[i].DataLen);
+ }
+ }
+
+ public struct tagMCViewBillboardData {
+ public ushort Index; //鏁版嵁鍦ㄦ鍗曞垪琛ㄤ腑鐨勭储寮曪紝浠�0寮�濮�
+ public ushort Rank; //鍚嶆锛屼粠1寮�濮嬶紝浠h〃绗�1鍚�
+ public uint ID;
+ public uint ID2;
+ public string Name1; //鍚嶅瓧1锛岀敤鏉ユ樉绀烘帓搴忓璞″悕瀛�
+ public string Name2; //鍚嶅瓧2
+ public byte Type2; //闄勫姞绫诲瀷锛岀敤鏉ヨ〃绀烘帓搴忓璞$殑绫诲瀷锛屾瘮濡傦紝鐜╁鎵�灞炶亴涓氶棬娲撅紝瀹犵墿绫诲瀷绛�
+ public uint Value1; //鑷畾涔夊��1
+ public uint Value2; //鑷畾涔夊��2
+ public uint Value3;
+ public uint Value4;
+ public uint Value5;
+ public uint Value6;
+ public uint Value7;
+ public uint Value8;
+ public uint CmpValue; // 姣旇緝鏉冨��
+ public uint CmpValue2; // 姣旇緝鏉冨��
+ public uint CmpValue3; // 姣旇緝鏉冨��
+ public ushort DataLen;
+ public string UserData; //闄勫姞淇℃伅
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ServerPack/HA1_Sys/HA130_tagMCViewBillboardRet.cs.meta b/Main/Core/NetworkPackage/ServerPack/HA1_Sys/HA130_tagMCViewBillboardRet.cs.meta
new file mode 100644
index 0000000..235ad6b
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA1_Sys/HA130_tagMCViewBillboardRet.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 9a61e24bf32b41b47acd3b1c74d0e0cd
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Main.cs b/Main/Main.cs
index 38c6032..00311d5 100644
--- a/Main/Main.cs
+++ b/Main/Main.cs
@@ -68,6 +68,7 @@
managers.Add(ChatManager.Instance);
managers.Add(ChatBubbleManager.Instance);
managers.Add(OfficialRankManager.Instance);
+ managers.Add(RankModel.Instance);
foreach (var manager in managers)
{
diff --git a/Main/Manager/UIManager.cs b/Main/Manager/UIManager.cs
index a3bee2c..95bebfd 100644
--- a/Main/Manager/UIManager.cs
+++ b/Main/Manager/UIManager.cs
@@ -156,10 +156,10 @@
result = BASE_SORTING_ORDER * 1000;
break;
case UILayer.System:
- result = BASE_SORTING_ORDER * 10000;
+ result = BASE_SORTING_ORDER * 2000;
break;
case UILayer.Loading:
- result = BASE_SORTING_ORDER * 100000;
+ result = BASE_SORTING_ORDER * 3000;
break;
default:
result = BASE_SORTING_ORDER * 10;
diff --git a/Main/System/BillboardRank.meta b/Main/System/BillboardRank.meta
new file mode 100644
index 0000000..cc9414b
--- /dev/null
+++ b/Main/System/BillboardRank.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 08c1d8892b7d07f4da3aa064215c8ce6
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/BillboardRank/RankModel.cs b/Main/System/BillboardRank/RankModel.cs
new file mode 100644
index 0000000..146071a
--- /dev/null
+++ b/Main/System/BillboardRank/RankModel.cs
@@ -0,0 +1,309 @@
+锘縰sing System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+// 鏀寔鍒嗛〉鏌ヨ鎺掕姒�, 鏈湇/璺ㄦ湇缁熶竴浣跨敤 鍙傝�僎ueryRankByPage 鏂板皝鍖� DTCA130_tagMCViewBillboardRet
+public class RankModel : GameSystemManager<RankModel>
+{
+ public event Action<int> onRankRefresh;
+ public event Action<int> onMyRankRefresh;
+
+ public override void Init()
+ {
+ DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitialize;
+ }
+
+ public void OnBeforePlayerDataInitialize()
+ {
+ m_RankPageDatas.Clear();
+ m_RankIDToIndex.Clear();
+ queryRankCD.Clear();
+ }
+
+ public override void Release()
+ {
+ DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= OnBeforePlayerDataInitialize;
+ }
+
+
+ void ReSetRankDataEx(RankData data, HA130_tagMCViewBillboardRet.tagMCViewBillboardData serverData, int type)
+ {
+ data.id = serverData.ID;
+ data.id2 = (int)serverData.ID2;
+ data.name1 = serverData.Name1.Trim().Replace("\0", "");
+ data.name2 = serverData.Name2.Trim().Replace("\0", "");
+ data.subType = serverData.Type2;
+ data.value1 = serverData.Value1;
+ data.value2 = serverData.Value2;
+ data.value3 = serverData.Value3;
+ data.value4 = serverData.Value4;
+ data.value5 = serverData.Value5;
+ data.value6 = serverData.Value6;
+ data.value7 = serverData.Value7;
+ data.value8 = serverData.Value8;
+ data.cmpValue = serverData.CmpValue;
+ data.cmpValue2 = serverData.CmpValue2;
+ data.cmpValue3 = serverData.CmpValue3;
+ data.userData = serverData.UserData;
+ data.rank = serverData.Rank;
+ data.type = type;
+ data.index = serverData.Index;
+ }
+
+
+ #region 鍒嗛〉鏌ヨ
+ Dictionary<int, int> queryRankCD = new Dictionary<int, int>(); //棣栨鏌ヨCD锛屼笉褰卞搷鍚庣画鐨勫垎椤垫煡璇�
+ //鍒嗛〉鏌ヨ 鎺掑悕绱㈠紩鎸夊瓧娈靛瓨鍌� 1浠h〃绗竴鍚�
+ Dictionary<int, Dictionary<int, RankData>> m_RankPageDatas = new Dictionary<int, Dictionary<int, RankData>>();
+ //绫诲瀷锛欼D -鎺掑悕绱㈠紩锛岄�氳繃ID杩涜鎺掗噸鍒犻櫎 涓嶅悓鍚嶆 鍚孖D鐨勬暟鎹�
+ Dictionary<int, Dictionary<int, int>> m_RankIDToIndex = new Dictionary<int, Dictionary<int, int>>();
+
+
+ //锛侊紒锛佹湰鏈嶅垎椤垫煡璇娇鐢ㄨ鏄�
+ //1. QueryRankByPage锛氬厛鏌ヨ绗竴椤碉紝startIndex = 0, count = 30, 鍦ㄧ涓�椤垫煡璇㈠墠鍙互閫夋嫨鍒濆鍖朢esetQueryParam
+ //2. ListenRankPage锛氫竴鑸湪婊氬姩鏉nRefreshCell鐩戝惉鎺掕姒滄樉绀哄悕娆★紝鐢ㄤ簬鍒嗛〉鏌ヨ
+ //
+ // startIndex 鍜� count 閰嶅锛屼笌watchID鏃犲叧鑱�
+ // watchID; //鏌ョ湅鎸囧畾ID鍚嶆鍓嶅悗锛屾煡璇㈣寖鍥存湇鍔$宸插浐瀹氾紝濡傛灉鍙鏌ユ寚瀹氱洰鏍囷紝count鍙互璁剧疆1鍑忓皯闄勫姞淇℃伅
+ public void QueryRankByPage(int type, int startIndex = 0, int count = 20, int watchID = 0, bool forceQuery = false, int groupValue1 = 0, int groupValue2 = 0)
+ {
+ if (queryRankCD.ContainsKey(type) && !forceQuery)
+ {
+ if (Time.time - queryRankCD[type] < 2f)
+ {
+ return;
+ }
+ }
+
+ var pak = new CA130_tagCMViewBillboard();
+ pak.Type = (byte)type;
+ pak.GroupValue1 = (byte)groupValue1;
+ pak.GroupValue2 = (uint)groupValue2;
+ pak.StartIndex = (ushort)startIndex; //鎺掑悕浠�0寮�濮�
+ pak.ViewCnt = (byte)count;
+ pak.ViewID = (uint)watchID;
+
+ GameNetSystem.Instance.SendInfo(pak);
+ queryRankCD[type] = (int)Time.time;
+ }
+
+ //鐩戝惉鎺掕姒滄樉绀哄悕娆★紝鐢ㄤ簬鍒嗛〉鏌ヨ锛岀涓�椤垫煡璇㈢敱澶栭儴瑙﹀彂
+ //浣跨敤鍦烘櫙 濡傜晫闈㈡帓琛屾婊氬姩鐨勬椂鍊欐瘡娆℃煡璇�30涓帓鍚嶅悕棰濓紝鍦ㄦ樉绀哄ぇ浜巑*30 +20鍚嶆椂锛岀洃鍚笅涓�椤碉紝鏌ヨm+1椤�
+ int pageCnt = 20; //姣忛〉鏌ヨ鏉℃暟
+ int queryPointNum = 12; //鏌ヨ鐐�
+ int queryPageCD = 60; //鍐呴儴鏌ヨ鐐笴D 閬垮厤涓嶆柇涓婁笅婊戝姩鐨勬椂鍊欒繃浜庨绻佹煡璇紝澶栭儴浣跨敤閲嶆柊鎵撳紑鐨勬椂鍊欏彲浠ラ噸缃瓹D
+ Dictionary<int, float> queryPageTimes = new Dictionary<int, float>(); //鏌ヨ椤礐D
+ public void ListenRankPage(int type, int index, int groupValue1 = 0, int groupValue2 = 0)
+ {
+ int page = index / pageCnt;
+ if (index > page * pageCnt + queryPointNum)
+ {
+ if (queryPageTimes.ContainsKey(page) && Time.realtimeSinceStartup - queryPageTimes[page] < queryPageCD)
+ return;
+ Debug.LogFormat("鍒嗛〉鏌ヨ锛歿0} - {1}", index, page);
+ QueryRankByPage(type, pageCnt * (page + 1), pageCnt, 0, true, groupValue1, groupValue2);
+ queryPageTimes[page] = Time.realtimeSinceStartup;
+ }
+ }
+
+ public void ResetQueryParam()
+ {
+ pageCnt = 20;
+ queryPointNum = 12;
+ queryPageCD = 60;
+ queryPageTimes.Clear();
+ }
+
+ public void SetQueryParm(int pageCnt, int queryPointNum, int queryPageCD)
+ {
+ this.pageCnt = pageCnt;
+ this.queryPointNum = queryPointNum;
+ this.queryPageCD = queryPageCD;
+ queryPageTimes.Clear();
+ }
+
+
+
+ //璺ㄦ湇鎺掕姒滀俊鎭�
+ void ReSetRankData(RankData data, HA130_tagMCViewBillboardRet.tagMCViewBillboardData serverData, int type)
+ {
+ data.id = serverData.ID;
+ data.id2 = (int)serverData.ID2;
+ data.name1 = serverData.Name1.Replace("\0", "");
+ data.name2 = serverData.Name2.Replace("\0", "");
+ data.subType = serverData.Type2;
+ data.value1 = serverData.Value1;
+ data.value2 = serverData.Value2;
+ data.value3 = serverData.Value3;
+ data.value4 = serverData.Value4;
+ data.value5 = serverData.Value5;
+ data.value6 = serverData.Value6;
+ data.value7 = serverData.Value7;
+ data.value8 = serverData.Value8;
+ data.cmpValue = serverData.CmpValue;
+ data.cmpValue2 = serverData.CmpValue2;
+ data.cmpValue3 = serverData.CmpValue3;
+ data.userData = serverData.UserData;
+ data.rank = serverData.Rank;
+ data.index = serverData.Index;
+ data.type = type; //涓庢湇鍔$涓�鑷寸殑璺ㄦ湇鎺掕姒滅被鍨嬶紝澶栭儴鑷澶勭悊涓嶅悓鍒嗙粍鍒嗚禌瀛g瓑鎯呭喌
+ }
+
+ //鏌ヨ鏈湇/璺ㄦ湇鎺掕姒�
+ public void ReceiveRankPagePackage(HA130_tagMCViewBillboardRet package)
+ {
+ int rankType = package.Type;
+ //閮ㄥ垎璺ㄦ湇鎺掕姒滃悓涓�涓瀛樺湪鍒嗙粍鍒嗗尯鐨勬儏鍐� //璧涘尯3浣�+璧涘3浣�+鎺掕姒滅被鍨�3浣�
+ if (rankType == 165) //CrossServerOneVsOneRewardModel.rankType
+ {
+ rankType = (int)package.GroupValue1 * 1000000 + (int)package.GroupValue2 * 1000 + rankType;
+ }
+
+ if (!m_RankPageDatas.ContainsKey(rankType))
+ {
+ m_RankPageDatas.Add(rankType, new Dictionary<int, RankData>());
+ }
+
+ //鍚孖D鎺掗噸鍒犻櫎
+ if (!m_RankIDToIndex.ContainsKey(rankType))
+ {
+ m_RankIDToIndex.Add(rankType, new Dictionary<int, int>());
+ }
+
+ for (int i = 0; i < package.PageDataCnt; i++)
+ {
+ int id = (int)package.PageDataList[i].ID;
+ int orderIndex = (int)package.PageDataList[i].Rank;
+ if (!m_RankIDToIndex[rankType].ContainsKey(id))
+ {
+ m_RankIDToIndex[rankType][id] = orderIndex;
+ }
+ else if (m_RankIDToIndex[rankType][id] != orderIndex)
+ {
+ m_RankPageDatas[rankType].Remove(m_RankIDToIndex[rankType][id]);
+ m_RankIDToIndex[rankType][id] = orderIndex;
+ }
+ }
+
+
+
+ for (int i = 0; i < package.PageDataCnt; i++)
+ {
+ int orderIndex = (int)package.PageDataList[i].Rank;
+ if (!m_RankPageDatas[rankType].ContainsKey(orderIndex))
+ {
+ m_RankPageDatas[rankType][orderIndex] = new RankData();
+ }
+ ReSetRankDataEx(m_RankPageDatas[rankType][orderIndex], package.PageDataList[i], rankType);
+ }
+
+ if (package.ViewID != 0)
+ {
+ //鏌ヨ鎸囧畾鐩爣鎺掑悕
+ for (int i = 0; i < package.ViewIDDataCnt; i++)
+ {
+ int id = (int)package.ViewIDDataList[i].ID;
+ int orderIndex = (int)package.ViewIDDataList[i].Rank;
+ if (!m_RankIDToIndex[rankType].ContainsKey(id))
+ {
+ m_RankIDToIndex[rankType][id] = orderIndex;
+ }
+ else if (m_RankIDToIndex[rankType][id] != orderIndex)
+ {
+ m_RankPageDatas[rankType].Remove(m_RankIDToIndex[rankType][id]);
+ m_RankIDToIndex[rankType][id] = orderIndex;
+ }
+ }
+
+
+ for (int i = 0; i < package.ViewIDDataCnt; i++)
+ {
+ int orderIndex = (int)package.ViewIDDataList[i].Rank;
+ if (!m_RankPageDatas[rankType].ContainsKey(orderIndex))
+ {
+ m_RankPageDatas[rankType][orderIndex] = new RankData();
+ }
+ ReSetRankData(m_RankPageDatas[rankType][orderIndex], package.ViewIDDataList[i], package.Type);
+ }
+ onMyRankRefresh?.Invoke(package.Type);
+ }
+ else
+ {
+ onRankRefresh?.Invoke(package.Type);
+ }
+ }
+
+ //鎺掑悕浠�0 寮�濮�
+ //濡傛灉鏄法鏈嶆帓琛屾 绫诲瀷鍙兘鍥犺法鏈嶅姛鑳戒笉鍚� 鐢卞垎缁勫垎璧涘绛夋儏鍐电粍鍚�
+ public Dictionary<int, RankData> GetRankPageDatas(int type)
+ {
+ Dictionary<int, RankData> datas = null;
+ if (m_RankPageDatas.TryGetValue(type, out datas))
+ {
+ return datas;
+ }
+ return null;
+ }
+
+
+ ////濡傛灉鏄法鏈嶆帓琛屾 绫诲瀷鍙兘鍥犺法鏈嶅姛鑳戒笉鍚� 鐢卞垎缁勫垎璧涘绛夋儏鍐电粍鍚�
+ public RankData GetMyRank(int type)
+ {
+ var playerId = PlayerDatas.Instance.baseData.PlayerID;
+ Dictionary<int, RankData> rankDatas = null;
+ if (m_RankPageDatas.TryGetValue(type, out rankDatas))
+ {
+ foreach (var item in rankDatas.Values)
+ {
+ if (item.id == playerId)
+ {
+ return item;
+ }
+ }
+ }
+ return null;
+ }
+
+ public RankData GetMyRankByID(int type, int queryID)
+ {
+ Dictionary<int, RankData> rankDatas = null;
+ if (m_RankPageDatas.TryGetValue(type, out rankDatas))
+ {
+ foreach (var item in rankDatas.Values)
+ {
+ if (item.id == queryID)
+ {
+ return item;
+ }
+ }
+ }
+ return null;
+ }
+ #endregion
+}
+
+public class RankData
+{
+ public int type; //鎺掕姒滅被鍨�
+ public int subType;
+ public uint id;
+ public int id2;
+ public string name1;
+ public string name2;
+ public uint value1;
+ public uint value2;
+ public uint value3;
+ public uint value4;
+ public uint value5;
+ public uint value6;
+ public uint value7;
+ public uint value8;
+ public uint cmpValue;
+ public uint cmpValue2;
+ public uint cmpValue3;
+ public string userData;
+ public int rank; // 鎺掑悕浠�1寮�濮嬶紝浠h〃绗�1鍚�
+ public int index; //鏁版嵁鍦ㄦ鍗曞垪琛ㄤ腑鐨勭储寮曪紝浠�0寮�濮� 闈炴帓鍚� 鍒嗛〉鏌ヨ浼氱敤鍒�
+}
+
diff --git a/Main/System/BillboardRank/RankModel.cs.meta b/Main/System/BillboardRank/RankModel.cs.meta
new file mode 100644
index 0000000..06f9e70
--- /dev/null
+++ b/Main/System/BillboardRank/RankModel.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: f59839e755cb90448af976cf01af3979
+timeCreated: 1508836973
+licenseType: Free
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/BillboardRank/Top3Cell.cs b/Main/System/BillboardRank/Top3Cell.cs
new file mode 100644
index 0000000..fa98695
--- /dev/null
+++ b/Main/System/BillboardRank/Top3Cell.cs
@@ -0,0 +1,24 @@
+锘�//--------------------------------------------------------
+// [Author]: 鐜╀釜娓告垙
+// [ Date ]: Wednesday, September 26, 2018
+//--------------------------------------------------------
+using UnityEngine;
+using UnityEngine.UI;
+using System.Collections.Generic;
+
+//閫氱敤鐨勫墠3鎺掑悕
+public class Top3Cell : MonoBehaviour
+{
+ //[SerializeField] Model 鏄剧ずNPC 姝﹀皢妯″瀷
+
+ public void Display(int index)
+ {
+
+ }
+
+
+}
+
+
+
+
diff --git a/Main/System/BillboardRank/Top3Cell.cs.meta b/Main/System/BillboardRank/Top3Cell.cs.meta
new file mode 100644
index 0000000..9e0aa88
--- /dev/null
+++ b/Main/System/BillboardRank/Top3Cell.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 468f1b3d47e8482469eb71131b2e9056
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Boss/MainBossEnterWin.cs b/Main/System/Boss/MainBossEnterWin.cs
index 096abaf..b9ac797 100644
--- a/Main/System/Boss/MainBossEnterWin.cs
+++ b/Main/System/Boss/MainBossEnterWin.cs
@@ -14,8 +14,19 @@
{
[SerializeField] Text fbNameText;
[SerializeField] Button CloseBtn;
+ [SerializeField] Button rankBtn;
+ protected override void InitComponent()
+ {
+ CloseBtn.AddListener(CloseWindow);
+ rankBtn.AddListener(()=>
+ {
+ RankModel.Instance.QueryRankByPage(1);
+ UIManager.Instance.OpenWindow<MainBossRankWin>();
+ });
+ }
+
protected override void OnPreOpen()
{
diff --git a/Main/System/Boss/MainBossRankWin.cs b/Main/System/Boss/MainBossRankWin.cs
index 48679f6..6ed00d3 100644
--- a/Main/System/Boss/MainBossRankWin.cs
+++ b/Main/System/Boss/MainBossRankWin.cs
@@ -12,7 +12,7 @@
public class MainBossRankWin : UIBase
{
-
+ // [SerializeField] List
protected override void OnPreOpen()
{
diff --git a/Main/System/DailyQuest/DailyQuestModel.cs b/Main/System/DailyQuest/DailyQuestModel.cs
index d517c5d..746b3fe 100644
--- a/Main/System/DailyQuest/DailyQuestModel.cs
+++ b/Main/System/DailyQuest/DailyQuestModel.cs
@@ -169,6 +169,11 @@
{
var QuestConfig = DailyQuestConfig.Get(id);
var LVConfig = FuncOpenLVConfig.Get(QuestConfig.UnLockFuncID);
+ if (LVConfig == null)
+ {
+ Debug.LogError($"DailyQuestConfig.Get({id}) == null");
+ return 9999999;
+ }
int NeedLV = 0;
if (LVConfig.LimitLV != 0)
{
diff --git a/Main/System/Main/HomeWin.cs b/Main/System/Main/HomeWin.cs
index 7fa90ba..97b94a3 100644
--- a/Main/System/Main/HomeWin.cs
+++ b/Main/System/Main/HomeWin.cs
@@ -28,6 +28,10 @@
[SerializeField] Text awardCnt;
[SerializeField] UIEffect taskEffect;
+
+ //鍏冲崱
+ [SerializeField] Button bossBtn;
+
/// <summary>
/// 鍒濆鍖栫粍浠�
/// </summary>
@@ -35,6 +39,10 @@
{
avatarCell.button.AddListener(() => { });
taskButton.AddListener(OnClickTaskButton);
+ bossBtn.AddListener(() =>
+ {
+ UIManager.Instance.OpenWindow<MainBossEnterWin>();
+ });
}
diff --git a/Main/System/Store/StoreModel.cs b/Main/System/Store/StoreModel.cs
index 4b98aaa..b072931 100644
--- a/Main/System/Store/StoreModel.cs
+++ b/Main/System/Store/StoreModel.cs
@@ -1471,6 +1471,11 @@
{
var redable = false;
var config = StoreConfig.Get(shopId);
+ if (config == null)
+ {
+ Debug.LogError($"StoreConfig {shopId} is null");
+ continue;
+ }
switch (config.ShopType)
{
case 8:
--
Gitblit v1.8.0