| | |
| | | if costRebateID == playerCostRebateID:
|
| | | #GameWorld.DebugLog("消费返利活动ID不变,不处理!", curPlayer.GetPlayerID())
|
| | | return
|
| | | |
| | | actWorldLV = actCostRebateInfo.get(ShareDefine.ActKey_WorldLV, 0)
|
| | | playerWorldLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CostRebateWorldLV)
|
| | | templateID = GetTemplateID(actCostRebateInfo.get(ShareDefine.ActKey_CfgID, 0), actCostRebateInfo.get(ShareDefine.ActKey_DayIndex, 0))
|
| | | playerTemplateID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CostRebateTemplateID)
|
| | |
|
| | |
| | | % (costRebateID, playerCostRebateID, state, templateID, playerTemplateID), playerID)
|
| | |
|
| | | # 未领取的奖励邮件发放
|
| | | __SendCostRebateMail(curPlayer, playerTemplateID)
|
| | | __SendCostRebateMail(curPlayer, playerTemplateID, playerWorldLV)
|
| | |
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_CostRebateID, costRebateID)
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_CostRebateTemplateID, templateID)
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_CostRebateWorldLV, actWorldLV)
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_CostRebateGold, 0)
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_CostRebateAwardRecord, 0)
|
| | |
|
| | |
| | | Sync_CostRebateInfo(curPlayer)
|
| | | return True
|
| | |
|
| | | def __SendCostRebateMail(curPlayer, playerTemplateID):
|
| | | def __SendCostRebateMail(curPlayer, playerTemplateID, playerWorldLV):
|
| | | # 未领取的奖励邮件发放
|
| | |
|
| | | if not playerTemplateID:
|
| | |
| | | ipyDataList = IpyGameDataPY.GetIpyGameDataList("CostRebateTemplate", playerTemplateID)
|
| | | if not ipyDataList:
|
| | | return
|
| | | |
| | | job = curPlayer.GetJob()
|
| | | playerID = curPlayer.GetPlayerID()
|
| | | batchPlayerIDList, batchAddItemList, batchParamList = [], [], []
|
| | | awardRecord = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CostRebateAwardRecord)
|
| | |
| | | continue
|
| | | awardRecord |= pow(2, awardIndex)
|
| | |
|
| | | awardItemList = ipyData.GetAwardItemList()
|
| | | awardItemList = __GetItemList(ipyData.GetAwardItemList(), job, playerWorldLV)
|
| | | batchPlayerIDList.append([playerID])
|
| | | batchAddItemList.append(awardItemList)
|
| | | batchParamList.append([needCostGold])
|
| | |
| | | PlayerControl.SendMailBatch("ConsumptionRebateMail", batchPlayerIDList, batchAddItemList, batchParamList)
|
| | |
|
| | | return
|
| | |
|
| | |
|
| | | def __GetItemList(itemDict, job, worldLV):
|
| | | #{世界等级范围:[(物品ID,个数,是否绑定), ...]},若物品ID要区分职业则配{世界等级范围:[({职业:物品ID,..},个数,是否绑定), ...]}
|
| | | itemList = []
|
| | | itemInfoList = GameWorld.GetDictValueByRangeKey(itemDict, worldLV, [])
|
| | | for itemInfo in itemInfoList:
|
| | | if type(itemInfo[0]) == dict:
|
| | | itemID = itemInfo[0].get(job)
|
| | | if not itemID:
|
| | | GameWorld.ErrLog('累计充值奖励未配置该职业itemDict=%s,job=%s'%(itemDict, job))
|
| | | continue
|
| | | else:
|
| | | itemID = itemInfo[0]
|
| | | itemList.append([itemID, itemInfo[1], itemInfo[2]])
|
| | | return itemList
|
| | |
|
| | |
|
| | | def AddCostRebateGold(curPlayer, costType, costGold, infoDict):
|
| | | if costGold <= 0:
|
| | |
| | | return
|
| | |
|
| | | needCostGold = awardIpyData.GetNeedCostGold()
|
| | | awardItemList = awardIpyData.GetAwardItemList()
|
| | | actWorldLV = actCostRebateInfo.get(ShareDefine.ActKey_WorldLV, 0)
|
| | | awardItemList = __GetItemList(awardIpyData.GetAwardItemList(), curPlayer.GetJob(), actWorldLV)
|
| | |
|
| | | curCostGold = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CostRebateGold)
|
| | | if curCostGold < needCostGold:
|