ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActBuyCountGift.py
@@ -86,7 +86,8 @@
    ipyData = IpyGameDataPY.GetIpyGameData("ActBuyCountGift", cfgID)
    if not ipyData:
        return
    resetCTGIDList = ipyData.GetCTGIDList()
    ctgIDInfo = ipyData.GetCTGIDInfo()
    resetCTGIDList = ctgIDInfo.keys()
    PlayerCoin.DoResetCTGCountByIDList(curPlayer, "ActBuyCountGift", resetCTGIDList)
    return
@@ -108,12 +109,19 @@
    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:
@@ -122,12 +130,6 @@
    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
    
    # 检查背包
@@ -166,6 +168,7 @@
    ipyData = IpyGameDataPY.GetIpyGameData("ActBuyCountGift", cfgID)
    if not ipyData:
        return
    CTGIDInfo = ipyData.GetCTGIDInfo()
    CTGCountAwardInfo = ipyData.GetCTGCountAwardInfo()
    
    startDateStr, endDateStr = GameWorld.GetOperationActionDateStr(ipyData)
@@ -177,10 +180,15 @@
    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
@@ -192,9 +200,8 @@
            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