From 72e0425552abdbcc2fffbb8e9575e21dbda469a2 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 23 五月 2022 17:03:29 +0800
Subject: [PATCH] 9415 【BT】【后端】古神战场(修复周参与榜结算奖励某些名次多结算神玉奖励bug; 每天过天时增加记录跨服榜单数据流向)

---
 ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossBattlefield.py     |    7 ++++++-
 ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossActCTGBillboard.py |    1 -
 ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossBillboard.py       |   11 +++++++++++
 3 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossActCTGBillboard.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossActCTGBillboard.py
index acf9397..5eb7c8b 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossActCTGBillboard.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossActCTGBillboard.py
@@ -57,7 +57,6 @@
     
     # 结算时排序并保存榜单数据流向
     billboardObj.SortData()
-    billboardObj.SaveDRData()
     
     GameWorld.Log("结算跨服充值排行奖励: billboardType=%s,cfgID=%s,dbTemplateID=%s,billboardDataCount=%s" 
                   % (billboardType, cfgID, dbTemplateID, billboardDataCount))
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossBattlefield.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossBattlefield.py
index 8869238..ffb3356 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossBattlefield.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossBattlefield.py
@@ -219,13 +219,18 @@
                 playerID = billboardData.ID
                 cmpValue = billboardData.CmpValue
                 rank = i + 1
-                awardItemList = GameWorld.GetOrderValueByDict(awardDict, rank, False, [])
+                awardItemList = []
+                rankAwardItemList = GameWorld.GetOrderValueByDict(awardDict, rank, False, [])
+                if rankAwardItemList:
+                    awardItemList.append(rankAwardItemList)
                 paramList = [rank]
                 if billboardType == ShareDefine.Def_CBT_BattlefieldWJoin and enterWeekMoneyItemID:
                     moneyBaseCount, multiValue = GameWorld.GetOrderValueByDict(enterWeekMoneyMultiIntDict, rank, False, [0, 0]) # 奖励货币倍值
                     #基础保底值(不同名次可能不一样) + 名次倍率*次数
                     awardMoneyCount = int(moneyBaseCount + multiValue * cmpValue)
                     awardItemList.append([enterWeekMoneyItemID, awardMoneyCount, 0])
+                GameWorld.Log("    billboardType=%s,rank=%s,playerID=%s,cmpValue=%s,awardItemList=%s" 
+                              % (billboardType, rank, playerID, cmpValue, awardItemList))
                 if awardItemList:
                     PlayerCompensation.SendMailByKey(mailKey, [playerID], awardItemList, paramList, crossMail=True)
                 
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossBillboard.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossBillboard.py
index 9d1c297..711cc8a 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossBillboard.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossBillboard.py
@@ -118,6 +118,8 @@
     def ClearData(self):
         GameWorld.Log("CrossBillboard ClearData billboardType=%s,groupValue1=%s,groupValue2=%s" 
                       % (self.__billboardType, self.__groupValue1, self.__groupValue2))
+        if GameWorld.IsCrossServer():
+            self.SaveDRData()
         self.__billboardList = [] # [tagDBCrossBillboard, ...] 
         self.__idOrderDict = {} # {id:名次, ...}
         
@@ -240,6 +242,15 @@
             
         return
 
+def CopyBillboardOnDay():
+    billboardMgr = PyDataManager.GetCrossBillboardManager()
+    for billboardType in ShareDefine.CrossBillboardTypeList:
+        groupList = billboardMgr.GetBillboardGroupList(billboardType)
+        for billboardType, groupValue1, groupValue2 in groupList:
+            billboardObj = billboardMgr.GetCrossBillboard(billboardType, groupValue1, groupValue2)
+            billboardObj.SaveDRData()
+    return
+
 #// C0 04 查看跨服排行榜 #tagCGViewCrossBillboard
 #
 #struct    tagCGViewCrossBillboard

--
Gitblit v1.8.0