| | |
| | |
|
| | | # 终身卡
|
| | | elif investType == ChConfig.InvestType_Life:
|
| | | __GiveUnGetPerDayReward(curPlayer, investType)
|
| | | for keyNum in range(ChConfig.Def_PDict_InvestKeyCount):
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_InvestReward % (investType, keyNum), 0)
|
| | |
|
| | | Sync_InvestInfo(curPlayer, investType)
|
| | | return
|
| | |
|
| | | def __GiveUnGetPerDayReward(curPlayer, investType):
|
| | | ## 补发未领取的每日奖励,一般用于 每日可领取的固定奖励,如永久卡等
|
| | | playerID = curPlayer.GetPlayerID()
|
| | | curTime = int(time.time())
|
| | | lastRewardTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_InvestRewardTime % investType)
|
| | | if not lastRewardTime:
|
| | | passDays = __GetInvestPassDays(curPlayer, investType)
|
| | | #GameWorld.DebugLog("补发奖励时,距离开通投资已过天数: %s" % passDays, playerID)
|
| | | else:
|
| | | passDays = GameWorld.GetDiff_Day(curTime, lastRewardTime)
|
| | | #GameWorld.DebugLog("补发奖励时,距离上次领奖已过天数: %s" % passDays, playerID)
|
| | | |
| | | rewardDays = passDays - 1 # # 需要补发的奖励天数,只补到昨天,不算当天
|
| | | if rewardDays <= 0:
|
| | | GameWorld.DebugLog("不用补发投资卡每日奖励: investType=%s,rewardDays=%s" % (investType, rewardDays), playerID)
|
| | | return
|
| | | updRewardTime = curTime - 3600 * 24 # 最后一次领奖强制设置到昨天
|
| | | |
| | | rewardIndex = 0 # 每日奖励默认0索引
|
| | | ipyData = IpyGameDataPY.GetIpyGameData("Invest", investType * 100 + rewardIndex)
|
| | | if not ipyData:
|
| | | return
|
| | | rewardInfo = ipyData.GetReward()
|
| | | |
| | | rewardKey = "1" # 默认1
|
| | | rewardItemList = rewardInfo.get(str(rewardKey), [])
|
| | | if not rewardItemList:
|
| | | return
|
| | | |
| | | mailItemList = []
|
| | | for itemID, itemCount, isAuctionItem in rewardItemList:
|
| | | mailItemList.append([itemID, itemCount * rewardDays, isAuctionItem])
|
| | | |
| | | GameWorld.DebugLog("邮件补发投资卡每日奖励! investType=%s, rewardDays=%s, updRewardTime=%s, mailItemList=%s" |
| | | % (investType, rewardDays, updRewardTime, mailItemList), playerID)
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_InvestRewardTime % investType, updRewardTime)
|
| | | PlayerControl.SendMailByKey("InvestDayReward_%s" % investType, [playerID], mailItemList, [rewardDays])
|
| | | return
|
| | |
|
| | | def __GetInvestPassDays(curPlayer, investType):
|
| | |
| | | Sync_InvestInfo(curPlayer, investType)
|
| | | GameWorld.DebugLog(" rewardValue=%s,updRewardValue=%s,rewardItemList=%s" % (rewardValue, updRewardValue, rewardItemList))
|
| | |
|
| | | # 记录最后一次领奖时间
|
| | | if investType == ChConfig.InvestType_Life:
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_InvestRewardTime % (investType), int(time.time()))
|
| | | |
| | | for itemID, itemCount, isAuctionItem in rewardItemList:
|
| | | ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, isAuctionItem, [IPY_GameWorld.rptItem],
|
| | | event=["Invest", False, {}])
|