From d4c8c2903fd42399a660ebb9e8d06a88ad1f6540 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 30 八月 2024 18:07:19 +0800
Subject: [PATCH] 10256 【越南】【砍树】排行榜名次加入积分限制(优化榜单备份实际名次;)

---
 ServerPython/CoreServerGroup/GameServer/Script/DataRecordPack.py                |    9 +++++++--
 ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossBillboard.py |    5 +++--
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/DataRecordPack.py b/ServerPython/CoreServerGroup/GameServer/Script/DataRecordPack.py
index 9e36539..84a474e 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/DataRecordPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/DataRecordPack.py
@@ -66,6 +66,7 @@
 import datetime
 import ShareDefine
 import PlayerControl
+import PlayerBillboard
 import ChConfig
 #===============================================================================
 ##发送事件记录给EventShell
@@ -245,6 +246,10 @@
     if not dataCount:
         return
     
+    billboardMgr = PlayerBillboard.GetBillboardMgr()
+    billboardObj = billboardMgr.GetBillboardObj(billboardType)
+    idOrderDict = billboardObj.GetIDOrderDict()
+    
     serverTime = GameWorld.GetServerTime()
     timeStr = "%02d%02d%02d%s" % (serverTime.hour, serverTime.minute, serverTime.second, str(serverTime.microsecond)[:3])
     eventTypeStr = "Billboard_%s_%s_%s" % (billboardType, eventName, timeStr)
@@ -256,8 +261,8 @@
         billBoardData = billBoard.At(index)
         if not billBoardData:
             continue
-        rank = index + 1
-        dataDict = {"Rank":rank,
+        rank = idOrderDict.get(billBoardData.GetID(), index + 1)
+        dataDict = {"Rank":rank, "Index":index,
                     "ID":billBoardData.GetID(),
                     "ID2":billBoardData.GetID2(),
                     "Name1":billBoardData.GetName1(),
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossBillboard.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossBillboard.py
index 0679a0c..6d5ea6f 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossBillboard.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossBillboard.py
@@ -197,6 +197,7 @@
         if not dataCount:
             return
         
+        idOrderDict = self.GetIDOrderDict()
         serverTime = GameWorld.GetServerTime()
         timeStr = "%02d%02d%02d%s" % (serverTime.hour, serverTime.minute, serverTime.second, str(serverTime.microsecond)[:3])
         eventTypeStr = "Billboard_%s_%s_%s_%s_%s" % (self.__billboardType, self.__groupValue1, self.__groupValue2, eventName, timeStr)
@@ -206,8 +207,8 @@
         DataRecordPack.SendEventPack(eventTypeStr, dataDict)
         
         for index, billboardData in enumerate(self.__billboardList):
-            rank = index + 1
-            dataDict = {"Type2":billboardData.Type2, "Rank":rank,
+            rank = idOrderDict.get(billboardData.ID, index + 1)
+            dataDict = {"Type2":billboardData.Type2, "Rank":rank, "Index":index,
                         "ID":billboardData.ID, "ID2":billboardData.ID2,  
                         "Name1":billboardData.Name1, "Name2":billboardData.Name2,
                         "Value1":billboardData.Value1, "Value2":billboardData.Value2,

--
Gitblit v1.8.0