9415 【BT】【后端】古神战场(修复周榜结算、战场结算时,存在无奖励名次会报错bug)
| | |
| | | # @param order 名次,从1开始
|
| | | # @param isDefaultLast 找不到的名次是否默认取最后一名的
|
| | | # @return obj or None
|
| | | def GetOrderValueByDict(orderDict, order, isDefaultLast=True):
|
| | | def GetOrderValueByDict(orderDict, order, isDefaultLast=True, defaultValue=None):
|
| | | if order in orderDict:
|
| | | return orderDict[order]
|
| | |
|
| | |
| | | return orderDict[dOrder]
|
| | |
|
| | | # 找不到的默认取最后一名
|
| | | return orderDict[orderList[-1]] if isDefaultLast else None
|
| | | return orderDict[orderList[-1]] if isDefaultLast else defaultValue
|
| | |
|
| | | ##概率相关, 这个事件是否能够出现
|
| | | # @param rate 基础几率
|
| | |
| | | playerID = billboardData.ID
|
| | | cmpValue = billboardData.CmpValue
|
| | | rank = i + 1
|
| | | awardItemList = GameWorld.GetOrderValueByDict(awardDict, rank, False)
|
| | | awardItemList = GameWorld.GetOrderValueByDict(awardDict, rank, False, [])
|
| | | paramList = [rank]
|
| | | if billboardType == ShareDefine.Def_CBT_BattlefieldWJoin and enterWeekMoneyItemID:
|
| | | moneyBaseCount, multiValue = GameWorld.GetOrderValueByDict(enterWeekMoneyMultiIntDict, rank, False) # 奖励货币倍值
|
| | | moneyBaseCount, multiValue = GameWorld.GetOrderValueByDict(enterWeekMoneyMultiIntDict, rank, False, [0, 0]) # 奖励货币倍值
|
| | | #基础保底值(不同名次可能不一样) + 名次倍率*次数
|
| | | awardMoneyCount = int(moneyBaseCount + multiValue * cmpValue)
|
| | | awardItemList.append([enterWeekMoneyItemID, awardMoneyCount, 0])
|
| | | if awardItemList:
|
| | | PlayerCompensation.SendMailByKey(mailKey, [playerID], awardItemList, paramList, crossMail=True)
|
| | |
|
| | | billboardObj.ClearData()
|
| | |
| | | GameWorld.Log(" 失败阵营玩家: faction=%s,rank=%s,playerID=%s" % (faction, rank, playerID), fbPropertyID)
|
| | |
|
| | | # 排名奖励邮件
|
| | | if orderAwardItemList:
|
| | | PlayerCompensation.SendMailByKey(orderAwardMailKey, [playerID], orderAwardItemList, paramList, crossMail=True)
|
| | |
|
| | | # 更新周参与榜单
|