9415 【BT】【后端】古神战场(修复周参与榜结算奖励某些名次多结算神玉奖励bug; 每天过天时增加记录跨服榜单数据流向)

# Conflicts:
# ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py
3个文件已修改
19 ■■■■ 已修改文件
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossActCTGBillboard.py 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossBattlefield.py 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossBillboard.py 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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))
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)
                
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