| | |
| | | return
|
| | |
|
| | | gwLV = max(1, curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_MGGanwuLV))
|
| | | gwIpyData = IpyGameDataPY.GetIpyGameData("MGGanwuLV", gwLV)
|
| | | colorIpyData = IpyGameDataPY.GetIpyGameData("MGGuayuQuality", itemColor)
|
| | | typeIpyData = IpyGameDataPY.GetIpyGameData("MGGuayuType", itemType)
|
| | | if not gwIpyData or not colorIpyData or not typeIpyData:
|
| | | if not colorIpyData or not typeIpyData:
|
| | | return
|
| | |
|
| | | # 四维基础值、加成值
|
| | | baseAttrDict = {ChConfig.AttrID_Atk:[gwIpyData.GetAtkBase(), colorIpyData.GetAtkPlus()],
|
| | | ChConfig.AttrID_Def:[gwIpyData.GetDefBase(), colorIpyData.GetDefPlus()],
|
| | | ChConfig.AttrID_MaxHP:[gwIpyData.GetHPBase(), colorIpyData.GetHPPlus()],
|
| | | ChConfig.AttrID_AtkSpeed:[gwIpyData.GetAtkSpeedBase(), colorIpyData.GetAtkSpeedPlus()],
|
| | | }
|
| | | # 四维占比
|
| | | attrProportion = typeIpyData.GetBaseAttrProportion()
|
| | |
|
| | |
| | | if not itemLV:
|
| | | # 随机等级
|
| | | lowLV, highLV = IpyGameDataPY.GetFuncEvalCfg("MinggeTY", 2)
|
| | | randLVList = range(max(gwLV + lowLV, 1), gwLV + highLV)
|
| | | randLVList = range(max(gwLV + lowLV, 1), gwLV + highLV + 1)
|
| | | itemLV = random.choice(randLVList)
|
| | | equipAttrDict[str(ShareDefine.Def_IudetItemLV)] = itemLV
|
| | |
|
| | | GameWorld.DebugLog("生成命格卦玉: itemID=%s,itemLV=%s,itemColor=%s,itemType=%s" % (itemID, itemLV, itemColor, itemType), playerID)
|
| | | gwIpyData = IpyGameDataPY.GetIpyGameData("MGGanwuLV", itemLV)
|
| | | if not gwIpyData:
|
| | | return
|
| | | |
| | | # 四维基础值、加成值
|
| | | baseAttrDict = {ChConfig.AttrID_Atk:[gwIpyData.GetAtkBase(), colorIpyData.GetAtkPlus()],
|
| | | ChConfig.AttrID_Def:[gwIpyData.GetDefBase(), colorIpyData.GetDefPlus()],
|
| | | ChConfig.AttrID_MaxHP:[gwIpyData.GetHPBase(), colorIpyData.GetHPPlus()],
|
| | | ChConfig.AttrID_AtkSpeed:[gwIpyData.GetAtkSpeedBase(), colorIpyData.GetAtkSpeedPlus()],
|
| | | }
|
| | | batAttrBaseDict = gwIpyData.GetBatAttrBaseDict() # 其他战斗属性基础值字典,{属性ID:基础值, ...}
|
| | | |
| | | GameWorld.DebugLog("生成命格卦玉: gwLV=%s,itemID=%s,itemLV=%s,itemColor=%s,itemType=%s" % (gwLV, itemID, itemLV, itemColor, itemType), playerID)
|
| | | legendAttrIDList = setAttrDict.get(str(ShareDefine.Def_IudetLegendAttrID))
|
| | | legendAttrValueList = setAttrDict.get(str(ShareDefine.Def_IudetLegendAttrValue))
|
| | | if legendAttrIDList != None and legendAttrValueList != None and len(legendAttrIDList) == len(legendAttrValueList):
|
| | |
| | | else:
|
| | | fixedAttrID = typeIpyData.GetFixedAttrID() # 固定属性
|
| | | attrIDLib = typeIpyData.GetAttrIDLib() # 随机属性库
|
| | | libAttrCnt = colorIpyData.GetAttrLibCnt() # 随机属性个数
|
| | | |
| | | libAttrCnt = 0 # 随机属性个数
|
| | | libAttrCntNeedLVList = IpyGameDataPY.GetFuncEvalCfg("MinggeCfg", 1)
|
| | | for needGWLV in libAttrCntNeedLVList:
|
| | | if itemLV >= needGWLV:
|
| | | libAttrCnt += 1
|
| | | else:
|
| | | break
|
| | | attrRangeDefault = colorIpyData.GetAttrRange()
|
| | | attrRangeDict = colorIpyData.GetAttrRangeDict()
|
| | |
|
| | |
| | |
|
| | | # 其他战斗属性
|
| | | else:
|
| | | baseValue = batAttrBaseDict.get(attrID, 0)
|
| | | attrRange = attrRangeDict.get(attrID, attrRangeDefault)
|
| | | if not attrRange or len(attrRange) != 2:
|
| | | continue
|
| | | attrMin, attrMax = attrRange
|
| | | attrValue = random.randint(attrMin, attrMax)
|
| | | GameWorld.DebugLog(" attrID=%s,attrValue=%s(%s~%s)" % (attrID, attrValue, attrMin, attrMax), playerID)
|
| | | plusValue = random.randint(attrMin, attrMax)
|
| | | attrValue = baseValue + plusValue
|
| | | GameWorld.DebugLog(" attrID=%s,attrValue=%s,baseValue=%s,plusValue=%s,(%s~%s)" % (attrID, attrValue, baseValue, plusValue, attrMin, attrMax), playerID)
|
| | |
|
| | | legendAttrIDList.append(attrID)
|
| | | legendAttrValueList.append(attrValue)
|