From a5704bbcc5d2b17998615e9af7f497498a79f90f Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 25 六月 2024 16:15:46 +0800
Subject: [PATCH] 10185 【越南】【港台】【主干】BOSS凭证修改(排行榜优化;跨服榜查看改为直接查跨服数据,支持分页查询;跨服凭证个人榜单最大调整为1000条,其他100;)

---
 ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/GMT_QueryBillboardCross.py |   24 +++++++++++++++++++-----
 1 files changed, 19 insertions(+), 5 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/GMT_QueryBillboardCross.py b/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/GMT_QueryBillboardCross.py
index 89a9e26..0fcb5b0 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/GMT_QueryBillboardCross.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/GMT_QueryBillboardCross.py
@@ -45,21 +45,35 @@
     
     groupValue1 = GameWorld.ToIntDef(gmCmdDict.get('groupValue1', ''), None)
     groupValue2 = GameWorld.ToIntDef(gmCmdDict.get('groupValue2', ''), None)
+    queryCount = GameWorld.ToIntDef(gmCmdDict.get('queryCount', ''), 10)
+    startRank = GameWorld.ToIntDef(gmCmdDict.get('startRank', ''), 1)
+    startRank = max(1, startRank)
     
     billboardMgr = PyDataManager.GetCrossBillboardManager()
     groupList = billboardMgr.GetBillboardGroupList(billboardType)
-    
-    backMsg = {"billboardType":billboardType, "groupList":groupList}
+    dataTotalDict = {}
+    for bType, gValue1, gValue2 in groupList:
+        billboardObj = billboardMgr.GetCrossBillboard(bType, gValue1, gValue2)
+        dataTotalDict["%s-%s-%s" % (bType, gValue1, gValue2)] = billboardObj.GetCount()
+        
+    backMsg = {"billboardType":billboardType, "groupList":groupList, "dataTotalDict":dataTotalDict, 
+               "groupValue1":groupValue1, "groupValue2":groupValue2, "queryCount":queryCount, "startRank":startRank}
     
     if groupValue1 != None and groupValue2 != None:
         billboardObj = billboardMgr.GetCrossBillboard(billboardType, groupValue1, groupValue2)
-        
+        dataTotal = billboardObj.GetCount()
+        fromIndex = startRank - 1
+        toIndex = fromIndex + queryCount
         billboardInfo = []
-        for i in xrange(billboardObj.GetCount()):
+        for i in xrange(startRank - 1, toIndex):
+            if i >= dataTotal:
+                break
             billboardData = billboardObj.At(i)
             if not billboardData:
                 continue
+            rank = i + 1
             billboardDict = {
+                             "Rank":rank,
                              "ID":billboardData.ID,
                              "ID2":billboardData.ID2,
                              "Name1":billboardData.Name1,
@@ -89,7 +103,7 @@
                     
             billboardInfo.append(billboardDict)
             
-        backMsg.update({"billboardInfo":billboardInfo, "groupValue1":groupValue1, "groupValue2":groupValue2})
+        backMsg.update({"billboardInfo":billboardInfo, "groupValue1":groupValue1, "groupValue2":groupValue2, "dataTotal":dataTotal})
         
     #执行成功
     GMCommon.GMCommandResult(orderId, gmCmdDict, GMCommon.Def_Success, backMsg)

--
Gitblit v1.8.0