|  |  | 
 |  |  |     if hasUseCnt <= 0:
 | 
 |  |  |         return DefaultReturn
 | 
 |  |  |     PlayerControl.NomalDictSetProperty(curPlayer, eatCntKey, eatCnt)
 | 
 |  |  |      | 
 |  |  |     if funcIndex == ShareDefine.Def_AttrFruitFunc_Stove:
 | 
 |  |  |         PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_UseStoveBylv, hasUseCnt, [item.GetLV()])
 | 
 |  |  |          | 
 |  |  |     ItemCommon.DelItem(curPlayer, item, hasUseCnt, True, ChConfig.ItemDel_AttrFruit)
 | 
 |  |  |     return addValue, hasUseCnt
 | 
 |  |  | 
 | 
 |  |  | 
 |  |  |     
 | 
 |  |  |     
 | 
 |  |  |     limitType = Def_LimitType_Cnt #默认按个数
 | 
 |  |  | 
 | 
 |  |  |      | 
 |  |  |     # 增加附加战力,仅按个数时有效
 | 
 |  |  |     fightPowerExfigKey = ChConfig.Def_PlayerKey_FruitFightPowerEx % (funcIndex)
 | 
 |  |  |     fightPowerEx = curPlayer.GetDictByKey(fightPowerExfigKey)
 | 
 |  |  |     fruitIpyData = GetAttrFruitIpyData(fruitItemID)
 | 
 |  |  |     addFightPowerEx = 0 if not fruitIpyData else fruitIpyData.GetFightPowerEx()
 | 
 |  |  |     fightPowerEx = fightPowerEx + addFightPowerEx * addValue
 | 
 |  |  |     curPlayer.SetDict(fightPowerExfigKey, fightPowerEx)
 | 
 |  |  |     GameWorld.DebugLog("    Add funcIndex=%s,addFightPowerEx=%s,addValue=%s,fightPowerEx=%s" % (funcIndex, addFightPowerEx, addValue, fightPowerEx))
 | 
 |  |  |      | 
 |  |  |     for i in range(itemData.GetEffectCount()):
 | 
 |  |  |         curEffect = itemData.GetEffectByIndex(i)
 | 
 |  |  |         effectID = curEffect.GetEffectID()
 | 
 |  |  | 
 |  |  |         #GameWorld.DebugLog("    effectID=%s,addValue=%s" % (effectID, addValue))
 | 
 |  |  |         PlayerControl.CalcAttrDict_Type(effectID, addValue, allAttrList)
 | 
 |  |  | 
 | 
 |  |  |     #GameWorld.DebugLog("    有果实属性 allAttrList=%s" % str(allAttrList))
 | 
 |  |  |     return
 | 
 |  |  |     fightPowerEx = curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_FruitFightPowerEx % (funcIndex))
 | 
 |  |  |     #GameWorld.DebugLog("    有果实属性funcIndex=%s,fightPowerEx=%s,allAttrList=%s" % (funcIndex, fightPowerEx, allAttrList))
 | 
 |  |  |     return fightPowerEx
 | 
 |  |  |     
 | 
 |  |  | 
 | 
 |  |  | ## 统计百分比属性对功能内层的属性增加
 | 
 |  |  | 
 |  |  |         
 | 
 |  |  |     return eatCntDict
 | 
 |  |  | 
 | 
 |  |  | def IsFruitEatFull(curPlayer, itemID):
 | 
 |  |  |     #使用次数是否已满
 | 
 |  |  |     ipyData = GetAttrFruitIpyData(itemID)
 | 
 |  |  |     if not ipyData:
 | 
 |  |  |         return
 | 
 |  |  |      | 
 |  |  |     maxEatCnt = ipyData.GetMaxUseCnt()
 | 
 |  |  |     eatCntKey = ChConfig.Def_PDict_AttrFruitEatCnt % itemID
 | 
 |  |  |     limitType = Def_LimitType_Cnt
 | 
 |  |  |     if limitType == Def_LimitType_Attr:
 | 
 |  |  |         eatCntKey = ChConfig.Def_PDict_AttrFruitAddValue % itemID
 | 
 |  |  |     eatCnt = curPlayer.NomalDictGetProperty(eatCntKey) # 已吃次数/属性值
 | 
 |  |  |     if eatCnt >= maxEatCnt:
 | 
 |  |  |         return True
 | 
 |  |  |     return |