| | |
| | | SyncShopItemBuyCntInfo(curPlayer, syncIDList)
|
| | | return
|
| | |
|
| | | def ResetShopItemBuyCountByShopType(curPlayer, shopTypeList):
|
| | | def ResetShopItemBuyCountByShopType(curPlayer, shopTypeList, recycleItemMail=""):
|
| | | ##根据商店类型重置商店限购物品次数
|
| | | # @param recycleItemMail: 商店消耗物品回收通知邮件,为空时不回收
|
| | | if not shopTypeList:
|
| | | return
|
| | | recycleCostItemIDList = []
|
| | | syncIDList = []
|
| | | for shopType in shopTypeList:
|
| | | ipyDataList = IpyGameDataPY.GetIpyGameDataByCondition("Store", {"ShopType":shopType}, True, True)
|
| | | if not ipyDataList:
|
| | | continue
|
| | | for ipyData in ipyDataList:
|
| | | |
| | | # 消耗道具回收
|
| | | costItemID = ipyData.GetCostItemID()
|
| | | if recycleItemMail and costItemID and costItemID not in recycleCostItemIDList:
|
| | | recycleCostItemIDList.append(costItemID)
|
| | | ItemControler.RecycleItem(curPlayer, costItemID, recycleItemMail)
|
| | | |
| | | if not ipyData.GetLimitCnt():
|
| | | continue
|
| | | shopID = ipyData.GetID()
|
| | |
| | | GameWorld.Log("Store shop item lock! shopID=%s,shopID=%s" % (shopType, shopID), curPlayer.GetPlayerID())
|
| | | return
|
| | |
|
| | | costItemID = ipyData.GetCostItemID()
|
| | | priceType, itemPrice = ipyData.GetMoneyType(), ipyData.GetMoneyNum()
|
| | | itemPrice *= clientBuyCount
|
| | | #if not PlayerControl.HaveMoney(curPlayer, priceType, itemPrice):
|
| | |
| | |
|
| | | infoDict = {"TotalItemList":totalItemList, "ClientBuyCount":clientBuyCount, "ShopType":shopType,
|
| | | "ShopID":shopID, ChConfig.Def_Cost_Reason_SonKey:mainItemID}
|
| | | if priceType and itemPrice and not PlayerControl.PayMoney(curPlayer, priceType, itemPrice, ChConfig.Def_Cost_BuyStoreItem, infoDict, clientBuyCount):
|
| | | # 支持消耗货币或道具二选一
|
| | | if priceType:
|
| | | if itemPrice and not PlayerControl.PayMoney(curPlayer, priceType, itemPrice, ChConfig.Def_Cost_BuyStoreItem, infoDict, clientBuyCount):
|
| | | return
|
| | | elif costItemID and itemPrice:
|
| | | needItemCnt = itemPrice
|
| | | costItemIndexList, bindCnt, unBindCnt = ItemCommon.GetPackItemBindStateIndexInfo(curPlayer, costItemID, needItemCnt)
|
| | | lackCnt = needItemCnt - bindCnt - unBindCnt
|
| | | if lackCnt > 0:
|
| | | GameWorld.DebugLog("所需消耗道具不足! costItemID=%s,needItemCnt=%s,lackCnt=%s" % (costItemID, needItemCnt, lackCnt))
|
| | | return
|
| | | ItemCommon.DelCostItemByBind(curPlayer, costItemIndexList, bindCnt, unBindCnt, needItemCnt, "BuyItem")
|
| | |
|
| | | # 今日购买次数+1
|
| | | if limitBuyCnt > 0:
|