| | |
| | | import ChPyNetSendPack
|
| | | import NetPackCommon
|
| | | import IpyGameDataPY
|
| | | import ShareDefine
|
| | | import CommFunc
|
| | | import ObjPool
|
| | |
|
| | |
| | |
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FirstChargeTime % firstID, int(time.time()))
|
| | | GameWorld.DebugLog("记录首充档位充值时间戳: ctgID=%s" % ctgID)
|
| | | Sync_FirstChargeInfo(curPlayer)
|
| | | Sync_FirstChargeInfo(curPlayer, firstID)
|
| | | return
|
| | |
|
| | | def GetPlayerFirstCharge(curPlayer, giftDay, firstIDStr):
|
| | |
| | | return
|
| | | awardList = getattr(ipyData, "GetAwardListDay%s" % giftDay)()
|
| | |
|
| | | if not ItemControler.CheckPackSpaceEnough(curPlayer, [itemInfo[:2] for itemInfo in awardList]):
|
| | | return
|
| | | |
| | | # 更新已领取成功标记
|
| | | updGetRecord = getRecord | pow(2, giftDay)
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FirstChargeRecord % firstID, updGetRecord)
|
| | | GameWorld.DebugLog("领取首充奖励: firstID=%s,giftDay=%s,getRecord=%s,updGetRecord=%s, %s" % (firstID, giftDay, getRecord, updGetRecord, awardList))
|
| | | Sync_FirstChargeInfo(curPlayer, firstID)
|
| | |
|
| | | ItemControler.GivePlayerItemOrMail(curPlayer, awardList, event=["FirstCharge", False, {}])
|
| | | |
| | | Sync_FirstChargeInfo(curPlayer)
|
| | | isAuctionItem = 0
|
| | | notifyAwardList = []
|
| | | for itemID, itemCount, appointID in awardList:
|
| | | setAttrDict = {ShareDefine.Def_CItemKey_AppointID:appointID} if appointID else {}
|
| | | if not ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, isAuctionItem, event=["FirstCharge", False, {}], setAttrDict=setAttrDict):
|
| | | continue
|
| | | notifyAwardList.append([itemID, itemCount, isAuctionItem])
|
| | | ItemControler.NotifyGiveAwardInfo(curPlayer, notifyAwardList, "FirstCharge")
|
| | | return
|
| | |
|
| | | def Sync_FirstChargeInfo(curPlayer):
|
| | | def Sync_FirstChargeInfo(curPlayer, firstID=0):
|
| | | ## 通知首充信息
|
| | | clientPack = ObjPool.GetPoolMgr().acquire(ChPyNetSendPack.tagSCFirstChargeInfo)
|
| | | clientPack.FirstChargeList = []
|
| | | ipyDataMgr = IpyGameDataPY.IPY_Data()
|
| | | for index in range(ipyDataMgr.GetFirstChargeCount()):
|
| | | ipyData = ipyDataMgr.GetFirstChargeByIndex(index)
|
| | | firstID = ipyData.GetFirstID()
|
| | | if firstID:
|
| | | syncIDList = [firstID]
|
| | | else:
|
| | | syncIDList = []
|
| | | ipyDataMgr = IpyGameDataPY.IPY_Data()
|
| | | for index in range(ipyDataMgr.GetFirstChargeCount()):
|
| | | ipyData = ipyDataMgr.GetFirstChargeByIndex(index)
|
| | | syncIDList.append(ipyData.GetFirstID())
|
| | | |
| | | firstChargeList = []
|
| | | for firstID in syncIDList:
|
| | | firstCharge = ObjPool.GetPoolMgr().acquire(ChPyNetSendPack.tagSCFirstCharge)
|
| | | firstCharge.FirstID = firstID
|
| | | firstCharge.ChargeTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FirstChargeTime % firstID)
|
| | | firstCharge.AwardRecord = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FirstChargeRecord % firstID)
|
| | | clientPack.FirstChargeList.append(firstCharge)
|
| | | firstChargeList.append(firstCharge)
|
| | | |
| | | if not firstChargeList:
|
| | | return
|
| | | |
| | | clientPack = ObjPool.GetPoolMgr().acquire(ChPyNetSendPack.tagSCFirstChargeInfo)
|
| | | clientPack.FirstChargeList = firstChargeList
|
| | | clientPack.Count = len(clientPack.FirstChargeList)
|
| | | NetPackCommon.SendFakePack(curPlayer, clientPack)
|
| | | return
|