| | |
| | | ipyData = IpyGameDataPY.GetIpyGameData("ActBuyCountGift", cfgID) |
| | | if not ipyData: |
| | | return |
| | | resetCTGIDList = ipyData.GetCTGIDList() |
| | | ctgIDInfo = ipyData.GetCTGIDInfo() |
| | | resetCTGIDList = ctgIDInfo.keys() |
| | | PlayerCoin.DoResetCTGCountByIDList(curPlayer, "ActBuyCountGift", resetCTGIDList) |
| | | return |
| | | |
| | |
| | | ipyData = IpyGameDataPY.GetIpyGameData("ActBuyCountGift", cfgID) |
| | | if not ipyData: |
| | | return |
| | | CTGIDList = ipyData.GetCTGIDList() |
| | | CTGIDInfo= ipyData.GetCTGIDInfo() |
| | | CTGIDList = CTGIDInfo.keys() |
| | | CTGCountAwardInfo = ipyData.GetCTGCountAwardInfo() |
| | | if buyCount not in CTGCountAwardInfo: |
| | | GameWorld.DebugLog("购买次数礼包没有该次数礼包奖励! actNum=%s,cfgID=%s,buyCount=%s" % (actNum, cfgID, buyCount), playerID) |
| | | return |
| | | awardItemList = CTGCountAwardInfo[buyCount] |
| | | |
| | | awardRecord = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_BuyCountGiftAward % actNum) |
| | | if awardRecord & pow(2, buyCount): |
| | | GameWorld.Log("购买次数礼包活动已经领取过该奖励! actNum=%s,cfgID=%s,buyCount=%s,awardRecord=%s" |
| | | % (actNum, cfgID, buyCount, awardRecord), playerID) |
| | | return |
| | | |
| | | totalBuyCount = 0 |
| | | for ctgID in CTGIDList: |
| | |
| | | if totalBuyCount < buyCount: |
| | | GameWorld.Log("购买次数礼包活动累计购买次数不足,无法免费领取! actNum=%s,cfgID=%s,CTGIDList=%s,totalBuyCount=%s < %s" |
| | | % (actNum, cfgID, CTGIDList, totalBuyCount, buyCount), playerID) |
| | | return |
| | | |
| | | awardRecord = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_BuyCountGiftAward % actNum) |
| | | if awardRecord & pow(2, buyCount): |
| | | GameWorld.Log("购买次数礼包活动已经领取过该奖励! actNum=%s,cfgID=%s,buyCount=%s,awardRecord=%s" |
| | | % (actNum, cfgID, buyCount, awardRecord), playerID) |
| | | return |
| | | |
| | | # 检查背包 |
| | |
| | | ipyData = IpyGameDataPY.GetIpyGameData("ActBuyCountGift", cfgID) |
| | | if not ipyData: |
| | | return |
| | | CTGIDInfo = ipyData.GetCTGIDInfo() |
| | | CTGCountAwardInfo = ipyData.GetCTGCountAwardInfo() |
| | | |
| | | startDateStr, endDateStr = GameWorld.GetOperationActionDateStr(ipyData) |
| | |
| | | actInfo.LimitLV = ipyData.GetLVLimit() |
| | | actInfo.IsDayReset = ipyData.GetIsDayReset() |
| | | actInfo.ResetType = ipyData.GetResetType() |
| | | actInfo.CTGIDList = ipyData.GetCTGIDList() |
| | | actInfo.CTGIDCount = len(actInfo.CTGIDList) |
| | | actInfo.BuyCountGiftList = [] |
| | | actInfo.CTGIDInfoList = [] |
| | | for ctgID, discount in CTGIDInfo.items(): |
| | | ctg = ChPyNetSendPack.tagMCActBuyCountCTGID() |
| | | ctg.CTGID = ctgID |
| | | ctg.Discount = discount |
| | | actInfo.CTGIDInfoList.append(ctg) |
| | | actInfo.CTGIDCount = len(actInfo.CTGIDInfoList) |
| | | |
| | | actInfo.BuyCountGiftList = [] |
| | | for buyCount, awardItemList in CTGCountAwardInfo.items(): |
| | | giftbag = ChPyNetSendPack.tagMCActBuyCountGift() |
| | | giftbag.NeedBuyCount = buyCount |
| | |
| | | giftItem.IsBind = isAuctionItem |
| | | giftbag.AwardItemList.append(giftItem) |
| | | giftbag.Count = len(giftbag.AwardItemList) |
| | | |
| | | actInfo.BuyCountGiftList.append(giftbag) |
| | | |
| | | actInfo.GiftCount = len(actInfo.BuyCountGiftList) |
| | | |
| | | NetPackCommon.SendFakePack(curPlayer, actInfo) |
| | | return |