ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTreasure.py
@@ -113,15 +113,27 @@
    # 寻宝道具, 目前默认消耗1个
    elif costType == 2:
        costItemList = IpyGameDataPY.GetFuncEvalCfg(TreasureSet1, 3) # 消耗道具物品ID列表
        costItemID = costItemList[treasureIndex]
        if not costItemID:
        if not costItemList:
            GameWorld.ErrLog("该寻宝类型索引不支持消耗道具寻宝!treasureType=%s,treasureIndex=%s" % (treasureType, treasureIndex), playerID)
            return
        costItem = ItemCommon.FindItemInPackByItemID(curPlayer, costItemID, IPY_GameWorld.rptItem)
        if not costItem:
            GameWorld.DebugLog("寻宝消耗道具不足!costItemID=%s" % (costItemID), playerID)
        costItemID, costItemNeedCount = costItemList[treasureIndex]
        if not costItemID or not costItemNeedCount:
            return
        costItemIndexList, bindCnt, unBindCnt = ItemCommon.GetPackItemBindStateIndexInfo(curPlayer, costItemID)
        lackCount = max(0, costItemNeedCount - bindCnt - unBindCnt)
        delCostItemCount = costItemNeedCount - lackCount
        lackCountCostMoney = 0
        if lackCount > 0:
            lackCountCostMoney = ItemCommon.GetAutoBuyItemNeedGold({costItemID:lackCount})
            if lackCountCostMoney:
                moneyType = IPY_GameWorld.TYPE_Price_Gold_Money
                infoDict = {ChConfig.Def_Cost_Reason_SonKey:costItemID}
                if not PlayerControl.HaveMoney(curPlayer, moneyType, lackCountCostMoney):
                    return
            else:
                GameWorld.DebugLog("寻宝消耗道具不足!costItemID=%s,costItemNeedCount=%s,bindCnt=%s,unBindCnt=%s"
                                   % (costItemID, costItemNeedCount, bindCnt, unBindCnt), playerID)
                return
        
    # 仙玉寻宝
    else:
@@ -296,8 +308,11 @@
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TreasureFreeTime % (treasureType, treasureIndex), curTime)
        GameWorld.DebugLog("消耗免费次数,更新免费CD计算时间: %s" % curTime, playerID)
    elif costType == 2:
        ItemCommon.DelItem(curPlayer, costItem, 1, True, ChConfig.ItemDel_Treasure)
        GameWorld.DebugLog("扣除寻宝道具,costItemID=%s" % costItemID, playerID)
        ItemCommon.DelCostItemByBind(curPlayer, costItemIndexList, bindCnt, unBindCnt, delCostItemCount, ChConfig.ItemDel_Treasure)
        GameWorld.DebugLog("扣除寻宝道具,costItemID=%s,delCostItemCount=%s" % (costItemID, delCostItemCount), playerID)
        if lackCountCostMoney:
            infoDict = {"TreasureType":treasureType, "TreasureIndex":treasureIndex, "CostItemID":costItemID, "LackCount":lackCount}
            PlayerControl.PayMoney(curPlayer, moneyType, lackCountCostMoney, ChConfig.Def_Cost_Treasure, infoDict, lackCount)
    else:
        infoDict = {"TreasureType":treasureType, "TreasureIndex":treasureIndex}
        PlayerControl.PayMoney(curPlayer, IPY_GameWorld.TYPE_Price_Gold_Money, costGold, ChConfig.Def_Cost_Treasure, infoDict)