| | |
| | | import ItemControler
|
| | | import IpyGameDataPY
|
| | | import ChConfig
|
| | | import PlayerSuccess
|
| | | import DataRecordPack
|
| | |
|
| | | import random
|
| | |
| | | return
|
| | |
|
| | | itemPack = curPlayer.GetItemManager().GetPack(packType)
|
| | | unfixedItemPack, fixedItemPack = None, None # 目标物品与材料可能在不同背包,区分开
|
| | | itemExpireTime = 0
|
| | | # 检查不固定消耗道具
|
| | | if unfixedItemIDList:
|
| | | unfixedItem = GameWorld.GetGameData().GetItemByTypeID(unfixedItemIDList[0])
|
| | | if not unfixedItem:
|
| | | return
|
| | | unfixedItemCostInfo = __CheckUnfixedItem(curPlayer, compoundID, makeItemData, itemPack, unfixedItemIndexList, |
| | | unfixedPackType = ChConfig.GetItemPackType(unfixedItem, IPY_GameWorld.rptItem)
|
| | | unfixedItemPack = curPlayer.GetItemManager().GetPack(unfixedPackType)
|
| | | GameWorld.DebugLog("unfixedPackType=%s" % (unfixedPackType), playerID)
|
| | | if not unfixedItemPack:
|
| | | return
|
| | | unfixedItemCostInfo = __CheckUnfixedItem(curPlayer, compoundID, makeItemData, unfixedItemPack, unfixedItemIndexList, |
| | | unfixedItemIDList, needUnfixedItemCount)
|
| | | if not unfixedItemCostInfo:
|
| | | return
|
| | |
| | |
|
| | | # 检查固定消耗道具
|
| | | if fixedItemIDList:
|
| | | fixedItemInfo = __CheckFixedItem(playerID, compoundID, itemPack, fixedItemIndexList, fixedItemIDList, fixedItemCountList, compoundCnt)
|
| | | fixedItem = GameWorld.GetGameData().GetItemByTypeID(fixedItemIDList[0])
|
| | | if not fixedItem:
|
| | | return
|
| | | fixedPackType = ChConfig.GetItemPackType(fixedItem, IPY_GameWorld.rptItem)
|
| | | fixedItemPack = curPlayer.GetItemManager().GetPack(fixedPackType)
|
| | | GameWorld.DebugLog("fixedPackType=%s" % (fixedPackType), playerID)
|
| | | if not fixedItemPack:
|
| | | return
|
| | | fixedItemInfo = __CheckFixedItem(playerID, compoundID, fixedItemPack, fixedItemIndexList, fixedItemIDList, fixedItemCountList, compoundCnt)
|
| | | if not fixedItemInfo:
|
| | | return
|
| | | fixedItemIndexDict, fixedItemNeedCntDict, compoundBindCnt, expireTime = fixedItemInfo
|
| | |
| | | # 扣不固定消耗物品
|
| | | if unfixedItemIDList:
|
| | | bindUnfixedIndexList, unbindUnfixedIndexList = unfixedItemCostList
|
| | | hasBind = ItemCommon.ReduceItem(curPlayer, itemPack, bindUnfixedIndexList + unbindUnfixedIndexList, needUnfixedItemCount, |
| | | hasBind = ItemCommon.ReduceItem(curPlayer, unfixedItemPack, bindUnfixedIndexList + unbindUnfixedIndexList, needUnfixedItemCount, |
| | | False, ChConfig.ItemDel_ItemCompound, drDict)
|
| | | makeItemBind = True if hasBind else makeItemBind
|
| | |
|
| | |
| | | bindFixedIndexList, unbindFixedIndexList = fixedItemIndexDict[fixedItemID]
|
| | | if delBindCnt:
|
| | | makeItemBind = True
|
| | | ItemCommon.ReduceItem(curPlayer, itemPack, bindFixedIndexList, delBindCnt, False, ChConfig.ItemDel_ItemCompound, drDict)
|
| | | ItemCommon.ReduceItem(curPlayer, fixedItemPack, bindFixedIndexList, delBindCnt, False, ChConfig.ItemDel_ItemCompound, drDict)
|
| | | if delUnBindCnt:
|
| | | ItemCommon.ReduceItem(curPlayer, itemPack, unbindFixedIndexList, delUnBindCnt, False, ChConfig.ItemDel_ItemCompound, drDict)
|
| | | ItemCommon.ReduceItem(curPlayer, fixedItemPack, unbindFixedIndexList, delUnBindCnt, False, ChConfig.ItemDel_ItemCompound, drDict)
|
| | |
|
| | | # 扣提升概率道具
|
| | | if incRateItemCostList:
|
| | |
| | |
|
| | | # 通知合成成功
|
| | | ItemCommon.SyncMakeItemAnswer(curPlayer, ShareDefine.Def_mitItemCompound, ChConfig.Def_ComposeState_Sucess, makeItemID)
|
| | | #成功合成1个物品成就
|
| | | PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_CompoundItemEx, compoundCnt, [makeItemID])
|
| | | #合成X阶X颜色X星级以上装备, 星级改为装备位了,暂时没有用,屏蔽
|
| | | #classLV = ItemCommon.GetItemClassLV(makeItemData)
|
| | | #itemColor = makeItemData.GetItemColor()
|
| | | #itemQuality = makeItemData.GetItemQuality()
|
| | | #PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_CompoundEquip, compoundCnt, [classLV, itemColor, itemQuality])
|
| | | # 合成失败
|
| | | else:
|
| | | GameWorld.DebugLog("合成失败!")
|
| | |
| | | curSingleItem.Clear()
|
| | | return
|
| | |
|
| | | ItemControler.NotifyGiveAwardInfo(curPlayer, {newItemID:itemCount}, "Compound")
|
| | | return userData
|
| | |
|
| | | #// A3 13 物品拆解 #tagCMItemDecompound
|