|  |  |  | 
|---|
|  |  |  | import ChConfig | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def GetGiftbagTypeList(cfgID, dayIndex): | 
|---|
|  |  |  | def GetGiftbagTypeList(cfgID, dayIndex, woldLV): | 
|---|
|  |  |  | if cfgID == None or dayIndex == None: | 
|---|
|  |  |  | return [] | 
|---|
|  |  |  | ipyData = IpyGameDataPY.GetIpyGameData("ActFlashGiftbag", cfgID) | 
|---|
|  |  |  | if not ipyData: | 
|---|
|  |  |  | return [] | 
|---|
|  |  |  | giftbagTypeList = ipyData.GetGiftbagTypeList() | 
|---|
|  |  |  | giftbagTypeList = GameWorld.GetDictValueByRangeKey(ipyData.GetGiftbagTypeList(), woldLV, []) | 
|---|
|  |  |  | todayGiftbag = giftbagTypeList[-1] if dayIndex >= len(giftbagTypeList) else giftbagTypeList[dayIndex] | 
|---|
|  |  |  | return todayGiftbag | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | cfgID = actInfo.get(ShareDefine.ActKey_CfgID, 0) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | playerActID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FlashGiftbagID) # 玩家身上的活动ID | 
|---|
|  |  |  | giftbagTypeList = [] if not cfgID else GetGiftbagTypeList(cfgID, actInfo.get(ShareDefine.ActKey_DayIndex, 0)) | 
|---|
|  |  |  | giftbagTypeList = [] if not cfgID else GetGiftbagTypeList(cfgID, actInfo.get(ShareDefine.ActKey_DayIndex, 0), actInfo.get(ShareDefine.ActKey_WorldLV, 0)) | 
|---|
|  |  |  | isReset = False | 
|---|
|  |  |  | if actID != playerActID: | 
|---|
|  |  |  | isReset = True | 
|---|
|  |  |  | 
|---|
|  |  |  | DataRecordPack.DR_CTGError(curPlayer, "FlashGiftbag state is 0!", addDRDict) | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | giftbagTypeList = GetGiftbagTypeList(actInfo.get(ShareDefine.ActKey_CfgID, 0), actInfo.get(ShareDefine.ActKey_DayIndex, 0)) | 
|---|
|  |  |  | giftbagTypeList = GetGiftbagTypeList(actInfo.get(ShareDefine.ActKey_CfgID, 0), actInfo.get(ShareDefine.ActKey_DayIndex, 0), actInfo.get(ShareDefine.ActKey_WorldLV, 0)) | 
|---|
|  |  |  | if not giftbagTypeList: | 
|---|
|  |  |  | DataRecordPack.DR_CTGError(curPlayer, "FlashGiftbag GiftbagTypeList is null!", addDRDict) | 
|---|
|  |  |  | return | 
|---|
|  |  |  | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | giftbagID = giftbagIpyData.GetGiftbagID() | 
|---|
|  |  |  | giftItemList = giftbagIpyData.GetGiftItemList() | 
|---|
|  |  |  | giftItemList = __GetJobItemList(giftbagIpyData.GetGiftItemList(), curPlayer.GetJob()) | 
|---|
|  |  |  | addDRDict.update({"giftbagID":giftbagID, "giftItemList":giftItemList}) | 
|---|
|  |  |  | buyCountLimit = giftbagIpyData.GetBuyCountLimit() | 
|---|
|  |  |  | buyCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FlashGiftbagBuyCount % giftbagID) | 
|---|
|  |  |  | 
|---|
|  |  |  | SyncFlashGiftbagBuyCount(curPlayer, [giftbagID]) | 
|---|
|  |  |  | PlayerWeekParty.AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_GiftBag, actGiftbagType, False) | 
|---|
|  |  |  | return True | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def __GetJobItemList(itemList, job): | 
|---|
|  |  |  | jobItemList = [] | 
|---|
|  |  |  | for itemID, itemCnt, isBind in itemList: | 
|---|
|  |  |  | if type(itemID) == int: | 
|---|
|  |  |  | jobItemList.append([itemID, itemCnt, isBind]) | 
|---|
|  |  |  | elif job in itemID: | 
|---|
|  |  |  | jobItemList.append([itemID[job], itemCnt, isBind]) | 
|---|
|  |  |  | return jobItemList | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def SyncFlashGiftbagBuyCount(curPlayer, syncIDList=[], giftbagTypeList=[]): | 
|---|
|  |  |  | ## 通知限时礼包玩家活动信息 | 
|---|
|  |  |  | 
|---|
|  |  |  | cfgID = actInfo.get(ShareDefine.ActKey_CfgID, 0) | 
|---|
|  |  |  | if not cfgID: | 
|---|
|  |  |  | return | 
|---|
|  |  |  | giftbagTypeList = GetGiftbagTypeList(cfgID, actInfo.get(ShareDefine.ActKey_DayIndex, 0)) | 
|---|
|  |  |  | giftbagTypeList = GetGiftbagTypeList(cfgID, actInfo.get(ShareDefine.ActKey_DayIndex, 0), actInfo.get(ShareDefine.ActKey_WorldLV, 0)) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if not giftbagTypeList: | 
|---|
|  |  |  | return | 
|---|
|  |  |  | 
|---|
|  |  |  | giftBag.RMB = 0 if not orderIpyData else int(orderIpyData.GetPayRMBNum()) | 
|---|
|  |  |  | giftBag.RMBOriginal = giftIpyData.GetOriginalRMB() | 
|---|
|  |  |  | giftBag.ItemInfo = [] | 
|---|
|  |  |  | for itemID, itemCount, isBind in giftIpyData.GetGiftItemList(): | 
|---|
|  |  |  | for itemID, itemCount, isBind in __GetJobItemList(orderIpyData.GetGiftItemList(), curPlayer.GetJob()): | 
|---|
|  |  |  | item = ChPyNetSendPack.tagMCFlashGiftbagItem() | 
|---|
|  |  |  | item.ItemID = itemID | 
|---|
|  |  |  | item.ItemCount = itemCount | 
|---|