| | |
| | | curItemData.ItemID = curItemDict['ItemID']
|
| | | curItemData.Count = curItemDict['Count']
|
| | | #curItemData.IsBind = curItemDict.get('IsBind',0)
|
| | | curItemData.IsBind = 1 if not curItemDict.get('IsAuctionItem',0) else 0
|
| | | curItemData.IsBind = curItemDict.get('IsAuctionItem',0)
|
| | | curItemData.UserData = curItemDict.get('UserData', '')
|
| | | return curItemData
|
| | |
|
| | |
| | | title = ""
|
| | | content = "<MailTemplate>%s</MailTemplate>%s" % (mailTypeKey, json.dumps(paramList, ensure_ascii=False))
|
| | | return SendPersonalItemMailEx(title, content, 30, playerIDList, addItemList, gold, goldPaper, silver, detail, moneySource)
|
| | |
|
| | | def CrossServerMsg_SendMail(msgData):
|
| | | ## 收到跨服服务器同步的发送邮件
|
| | | mailTypeKey = msgData["MailTypeKey"]
|
| | | playerIDList = msgData["Player"]
|
| | | addItemList = msgData.get("Item", [])
|
| | | paramList = msgData.get("Param", [])
|
| | | SendMailByKey(mailTypeKey, playerIDList, addItemList, paramList)
|
| | | return
|
| | |
|
| | | # 此处货币playerIDList发放统一,如根据玩家不同而变,则应需修改
|
| | | ## 功能发放物品补偿/奖励邮件
|
| | |
| | |
|
| | | compensationDict = {"GUID":GUID, "CheckState":checkState, "LimitLVType":limitLVType, "LimitLV":limitLV,
|
| | | "Gold":compensation.Gold, "GoldPaper":compensation.GoldPaper, "Silver":compensation.Silver,
|
| | | "PlayerJob":compensation.PlayerJob, "Sender":sender, "Title":title, "Content":content,
|
| | | "PlayerJob":compensation.PlayerJob, "Sender":sender, "Title":title, "Content":content, "OnlyServerID":compensation.ServerID,
|
| | | "CreateTime":compensation.CreateTime, "LimitTime":compensation.LimitTime, "ItemList":itemList}
|
| | | return compensationDict
|
| | |
|
| | |
| | | SetPrizeState(curPlayerID, curRequire.GUID, Disable_State, readState)
|
| | | continue
|
| | |
|
| | | if curRequire.ServerID and curRequire.ServerID != GameWorld.GetPlayerServerID(curPlayer):
|
| | | # 指定服务器邮件
|
| | | SetPrizeState(curPlayerID, curRequire.GUID, Disable_State, readState)
|
| | | continue
|
| | | |
| | | #可以用的奖励
|
| | | if Enable_State != curState:
|
| | | SetPrizeState(curPlayerID, curRequire.GUID, Enable_State, readState)
|
| | |
| | | # @return None
|
| | | def SendGMRequestCompensationResult(routeIndex, mapID, curPlayer, GUID, compensationType, curEntireRequire):
|
| | |
|
| | | Text, gold, goldPaper, silver, moneySource, createTime = curEntireRequire.Text, curEntireRequire.Gold, \
|
| | | curEntireRequire.GoldPaper, curEntireRequire.Silver, curEntireRequire.Type, curEntireRequire.CreateTime
|
| | | Text, gold, goldPaper, silver, createTime = curEntireRequire.Text, curEntireRequire.Gold, \
|
| | | curEntireRequire.GoldPaper, curEntireRequire.Silver, curEntireRequire.CreateTime
|
| | | # 全服邮件没有 Type 字段
|
| | | moneySource = curEntireRequire.Type if compensationType == Personal_CompensationType else 0
|
| | | |
| | | sendPack = ChGameToMapPyPack.tagGMRequestCompensationResult()
|
| | | sendPack.PlayerID = curPlayer.GetID()
|
| | | sendPack.CompensationType = compensationType
|
| | |
| | | return
|
| | |
|
| | |
|
| | | ##清理超时30天的个人邮件, 否则流失玩家在不断合服情况下数据会累积
|
| | | # 个人邮件暂无过期时间设定,只有30天清理逻辑,以创建时间为准
|
| | | # @param None
|
| | | # @return None
|
| | | def ClearUpPersonalCompensation():
|
| | | #校验过期补偿
|
| | | curTime = datetime.datetime.today()
|
| | | needClearGUIDList = []
|
| | | allCnt = GameWorld.GetCompensationMgr().GetAllPersonalCompensationCount()
|
| | | for i in xrange(allCnt):
|
| | | curMail = GameWorld.GetCompensationMgr().AtAllPersonalCompensation(i)
|
| | | # 超过接收邮件30天则完全删除此邮件
|
| | | limitTime = datetime.datetime.strptime(curMail.CreateTime, ChConfig.TYPE_Time_Format) + datetime.timedelta(days = 30)
|
| | | if limitTime < curTime:
|
| | | needClearGUIDList.append([curMail.PlayerID, curMail.GUID])
|
| | | |
| | | GameWorld.Log("ClearUpPersonalCompensation count=%s"%len(needClearGUIDList))
|
| | | |
| | | #删除过期补偿信息, 没有主动通知在线玩家
|
| | | for playerID, GUID in needClearGUIDList:
|
| | | ClearPersonalCompensation(playerID, GUID)
|
| | | return
|
| | |
|
| | | ## 清理超时补偿, 个人邮件在超过上限后才会自动删除
|
| | | # @param None
|
| | | # @return None
|
| | | def ClearUpTimeOutCompensation():
|
| | |
|
| | | ClearUpPersonalCompensation()
|
| | | ClearUpEntireCompensation()
|
| | | return
|
| | |
|