| | |
| | | def EatItems(curPlayer, eatIndexList, eatItemIDList, isAuto=False):
|
| | | if len(eatIndexList) != len(eatItemIDList):
|
| | | return 0, 0
|
| | | drDelItemList, totalAddExp, delAllCnt = __GetCanEatItemInfo(curPlayer, eatIndexList, eatItemIDList)
|
| | | drDelItemList, totalAddExp, delAllCnt, giveItemIDDict = __GetCanEatItemInfo(curPlayer, eatIndexList, eatItemIDList)
|
| | | if not totalAddExp:
|
| | | GameWorld.DebugLog(" 装备吸收 没有可吞噬物品!")
|
| | | return 0, 0
|
| | |
| | | minCnt = cnt
|
| | | minItemID = itemid
|
| | |
|
| | | giveItemIDDict = {}
|
| | | #giveItemIDDict = {}
|
| | | for _ in xrange(giveCnt):
|
| | | itmeID = GameWorld.GetResultByRandomList(awardRateList)
|
| | | if not itmeID:
|
| | |
| | | itmeID = minItemID
|
| | |
|
| | | giveItemIDDict[itmeID] = giveItemIDDict.get(itmeID, 0) + 1
|
| | | |
| | | if giveItemIDDict:
|
| | | for giveItemID, itemCnt in giveItemIDDict.items():
|
| | | jsonItemList.append(ItemCommon.GetJsonItem([giveItemID,itemCnt,1]))
|
| | |
| | | eatItemList = []
|
| | | totalAddExp = 0
|
| | | allitemCnt = 0
|
| | | awardItemDict = {}
|
| | | eatEquipAwardDict = IpyGameDataPY.GetFuncEvalCfg('EquipDecomposeAward', 4, {})
|
| | | eatEquipAwardDictSuite = IpyGameDataPY.GetFuncEvalCfg('EquipDecomposeAward', 5, {})
|
| | | petEatItemAddExpPer = PlayerVip.GetPrivilegeValue(curPlayer, ChConfig.VIPPrivilege_EatItem)
|
| | | itemPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptItem)
|
| | | for i, index in enumerate(expIndexList):
|
| | |
| | | GameWorld.DebugLog(" tagPetEatEquip.txt,未配置该物品! eatItemID=%s, EquipColor=%s,EquipClass=%s" % (eatItemID, itemColor, itemClass))
|
| | | continue
|
| | | baseExp = ipyData.GetExp()
|
| | | |
| | | equipAwardDict = eatEquipAwardDictSuite if eatItem.GetSuiteID() else eatEquipAwardDict
|
| | | if str(itemColor) in equipAwardDict:
|
| | | awardItemList = equipAwardDict[str(itemColor)]
|
| | | for awardID, awardCount in awardItemList:
|
| | | awardItemDict[awardID] = awardItemDict.get(awardID, 0) + awardCount
|
| | | GameWorld.DebugLog("分解装备额外奖励: eatEquip=%s,itemColor=%s,suiteID=%s,awardItemList=%s total:%s" |
| | | % (eatItem.GetItemTypeID(), itemColor, eatItem.GetSuiteID(), awardItemList, awardItemDict))
|
| | | |
| | | else:
|
| | | GameWorld.ErrLog(' 不可分解的道具index=%s eatItemID=%s'%(index, eatItemID))
|
| | | continue
|
| | |
| | | totalAddExp += totalAddExp * petEatItemAddExpPer / ChConfig.Def_MaxRateValue
|
| | |
|
| | | PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_DecomposeEquip, allitemCnt)
|
| | | return eatItemList, totalAddExp, allitemCnt
|
| | | return eatItemList, totalAddExp, allitemCnt, awardItemDict
|
| | |
|
| | |
|
| | | ##获取吞噬结果
|