| | |
| | | washType = GetEquipWashType(equipPlace)
|
| | | if not washType:
|
| | | return 0
|
| | | maxLVDict = IpyGameDataPY.GetFuncEvalCfg("EquipWashGroup%s" % washType, 2)
|
| | | if not maxLVDict:
|
| | | return 0
|
| | | |
| | | equipPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptEquip)
|
| | | curEquip = equipPack.GetAt(equipPackindex)
|
| | | if not curEquip or curEquip.IsEmpty():
|
| | |
| | | return 0
|
| | |
|
| | | equipStar = ChEquip.GetEquipPartStarByRank(curPlayer, equipPackindex, curEquip)
|
| | | minStarCfg = min(maxLVDict)
|
| | | if equipStar < minStarCfg:
|
| | | GameWorld.DebugLog("该装备位装备星数=%s < minStarCfg(%s),无法洗练!equipPackindex=%s" |
| | | % (equipStar, minStarCfg, equipPackindex))
|
| | | ipyData = IpyGameDataPY.InterpolationSearch('ItemWashMax', 'Star', equipStar, {'Type':washType})
|
| | | if not ipyData:
|
| | | return 0
|
| | | if equipStar in maxLVDict:
|
| | | maxWashLV = maxLVDict[equipStar]
|
| | | if not maxWashLV:
|
| | | GameWorld.DebugLog("该装备位装备星数=%s,maxWashLV=%s,无法洗练!equipPackindex=%s" |
| | | % (equipStar, maxWashLV, equipPackindex))
|
| | | return 0
|
| | | return maxWashLV
|
| | | maxStarCfg = max(maxLVDict)
|
| | | if equipStar > maxStarCfg:
|
| | | return maxLVDict[maxStarCfg]
|
| | | # 默认返回当前部位洗练等级
|
| | | return curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_EquipWashLV % equipPackindex) + 1
|
| | | return ipyData.GetLevelMax()
|
| | | |
| | | |
| | |
|
| | | def GetEquipWashPlaceList(washType):
|
| | | ## 获取洗练类型对应的所有装备位
|
| | | placeList = IpyGameDataPY.GetFuncEvalCfg("EquipWashGroup%s" % washType, 1)
|
| | | if placeList:
|
| | | return placeList
|
| | | return []
|
| | |
|
| | | def GetEquipWashType(equipPlace):
|
| | | ## 获取装备位对应的洗练类型
|
| | | for washType in range(1, Def_EquipWashMaxType + 1):
|
| | | placeList = GetEquipWashPlaceList(washType)
|
| | | if equipPlace in placeList:
|
| | | return washType
|
| | | return
|
| | | return IpyGameDataPY.GetFuncEvalCfg('EquipWashGroup', 1, {}).get(equipPlace)
|
| | | |
| | |
|
| | | def GetEquipWashData(washType, washLV):
|
| | | return IpyGameDataPY.GetIpyGameData("EquipWash", washType, washLV)
|
| | |
| | | global g_allIndexList
|
| | | if not g_allIndexList:
|
| | | maxClasslv = IpyGameDataPY.GetFuncCfg('EquipMaxClasslv')
|
| | | for washType in range(1, Def_EquipWashMaxType + 1):
|
| | | for equipPlace in GetEquipWashPlaceList(washType):
|
| | | for classLV in xrange(1, maxClasslv+1):
|
| | | ipyData = IpyGameDataPY.GetIpyGameData('EquipPlaceIndexMap', classLV, equipPlace)
|
| | | if not ipyData:
|
| | | continue
|
| | | g_allIndexList.append(ipyData.GetGridIndex())
|
| | | for equipPlace in IpyGameDataPY.GetFuncEvalCfg('EquipWashGroup', 1, {}):
|
| | | for classLV in xrange(1, maxClasslv+1):
|
| | | ipyData = IpyGameDataPY.GetIpyGameData('EquipPlaceIndexMap', classLV, equipPlace)
|
| | | if not ipyData:
|
| | | continue
|
| | | g_allIndexList.append(ipyData.GetGridIndex())
|
| | | return g_allIndexList
|
| | |
|
| | | #// A3 25 装备洗炼 #tagCMEquipXLAttrChange
|
| | |
| | | return
|
| | | equipPlace = ipyData.GetEquipPlace()
|
| | | classLV = ipyData.GetClassLV()
|
| | | washLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_EquipWashLV % equipPlace) + 1
|
| | | washLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_EquipWashLV % equipPackindex) + 1
|
| | | maxWashLV = GetEquipWashMaxLV(curPlayer, equipPackindex, equipPlace)
|
| | | GameWorld.DebugLog("确认洗练结果: classLV=%s, equipPlace=%s,isSave=%s,washLV=%s,maxWashLV=%s"
|
| | | % (classLV, equipPlace, isSave, washLV, maxWashLV), playerID)
|
| | |
| | | def CalcAttr_EquipWash(curPlayer, equipIndex, equipPlace, allAttrList):
|
| | | ## 装备位洗练属性
|
| | | washLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_EquipWashLV % equipIndex) + 1
|
| | | maxWashLV = GetEquipWashMaxLV(curPlayer, equipIndex, equipPlace)
|
| | | washLV = min(washLV, maxWashLV)
|
| | | washType = GetEquipWashType(equipPlace)
|
| | | if washType is None:
|
| | | return
|
| | |
| | | #GameWorld.DebugLog("装备位属性: equipPlace=%s,washLV=%s" % (equipPlace, washLV))
|
| | | for attrNum in range(1, Def_EquipWashMaxAttrCount + 1):
|
| | | attrID = getattr(washData, "GetAttrType%s" % attrNum)()
|
| | | maxValue = getattr(washData, "GetAttrMax%s" % attrNum)()
|
| | | attrValue = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_EquipWashValue % (equipIndex, attrNum))
|
| | | attrValue = min(attrValue, maxValue)
|
| | | #GameWorld.DebugLog(" attrNum=%s,attrID=%s, attrValue=%s" % (attrNum, attrID, attrValue))
|
| | | if attrValue:
|
| | | PlayerControl.CalcAttrDict_Type(attrID, attrValue, allAttrList)
|
| | | return
|
| | |
|
| | | def EquipWashSuccess(curPlayer):
|
| | | succList = [ShareDefine.SuccType_EquipWashLV1,ShareDefine.SuccType_EquipWashLV2,ShareDefine.SuccType_EquipWashLV3]
|
| | | for washType in range(1, Def_EquipWashMaxType + 1):
|
| | | washTypeLV = 999
|
| | | placeList = GetEquipWashPlaceList(washType)
|
| | | for equipPlace in placeList:
|
| | | washLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_EquipWashLV % equipPlace) + 1
|
| | | washTypeLV = min(washTypeLV, washLV)
|
| | | |
| | | if not washTypeLV:
|
| | | continue
|
| | | PlayerSuccess.DoAddSuccessProgress(curPlayer, succList[washType-1], 1, [washTypeLV])
|
| | | # succList = [ShareDefine.SuccType_EquipWashLV1,ShareDefine.SuccType_EquipWashLV2,ShareDefine.SuccType_EquipWashLV3]
|
| | | # for washType in range(1, Def_EquipWashMaxType + 1):
|
| | | # washTypeLV = 999
|
| | | # placeList = GetEquipWashPlaceList(washType)
|
| | | # for equipPlace in placeList:
|
| | | # washLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_EquipWashLV % equipPlace) + 1
|
| | | # washTypeLV = min(washTypeLV, washLV)
|
| | | # |
| | | # if not washTypeLV:
|
| | | # continue
|
| | | # PlayerSuccess.DoAddSuccessProgress(curPlayer, succList[washType-1], 1, [washTypeLV])
|
| | | return
|
| | |
|