| | |
| | | import ChItem
|
| | | import IpyGameDataPY
|
| | | import ChPyNetSendPack
|
| | | import GameWorldEvent
|
| | | import NetPackCommon
|
| | | import PyGameData
|
| | | import ChEquip
|
| | |
| | |
|
| | | #---------------------------------------------------------------------
|
| | | def InitPyItem():
|
| | | if PyGameData.InitPyItem:
|
| | | if PyGameData.g_initPyItem:
|
| | | return
|
| | | GameWorld.Log("加载物品数据...")
|
| | |
|
| | |
| | | GameWorld.Log("货币类型1个数量对应物品ID: %s" % PyGameData.MoneyItemIDDict)
|
| | | if not PyGameData.MoneyItemIDDict:
|
| | | GameWorld.SendGameErrorEx("InitPyItemError", "启动加载物品数据异常! itemCount=%s" % gameData.GetItemCount())
|
| | | PyGameData.InitPyItem = True
|
| | | PyGameData.g_initPyItem = True
|
| | | GameWorldEvent.OnServerInitOK()
|
| | | return
|
| | |
|
| | | def GetMoneyItemID(moneyType):
|
| | |
| | | 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()],
|
| | | }
|
| | | batAttrBaseDict = gwIpyData.GetBatAttrBaseDict() # 其他战斗属性基础值字典,{属性ID:基础值, ...}
|
| | |
|
| | | # 四维占比
|
| | | 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
|
| | | |
| | | 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))
|
| | |
| | | libAttrCnt = 0 # 随机属性个数
|
| | | libAttrCntNeedLVList = IpyGameDataPY.GetFuncEvalCfg("MinggeCfg", 1)
|
| | | for needGWLV in libAttrCntNeedLVList:
|
| | | if gwLV >= needGWLV:
|
| | | if itemLV >= needGWLV:
|
| | | libAttrCnt += 1
|
| | | else:
|
| | | break
|