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