| | |
| | | allAttrList1 = [{} for _ in range(4)] #人族法宝
|
| | | allAttrList2 = [{} for _ in range(4)] #魔族法宝
|
| | | allAttrList3 = [{} for _ in range(4)] #仙族法宝
|
| | |
|
| | | mwTypeMfpTypeDict = {1:ShareDefine.Def_MFPType_MagicWeapon1,2:ShareDefine.Def_MFPType_MagicWeapon2,3:ShareDefine.Def_MFPType_MagicWeapon3}
|
| | | addPowerDict = {} #额外战力
|
| | | signDayMWID = IpyGameDataPY.GetFuncCfg('MWSignDayAttr', 2)
|
| | | ipyDataMgr = IpyGameDataPY.IPY_Data()
|
| | | for i in xrange(ipyDataMgr.GetTreasureCount()):
|
| | |
| | | #=======================================================================
|
| | | treasureType = treasureIpyData.GetTreasureType()
|
| | | if isActive:
|
| | | mfpType = mwTypeMfpTypeDict.get(treasureType, ShareDefine.Def_MFPType_Role)
|
| | | #等级属性
|
| | | curMWLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_MagicWeaponLV % magicWeaponID)
|
| | | for lv in xrange(curMWLV+1):
|
| | |
| | | if upIpyData:
|
| | | attrDict = upIpyData.GetAddAttr()
|
| | | GameWorld.AddDictValue(allAttrDict, attrDict)
|
| | | addPowerDict[mfpType] = addPowerDict.get(mfpType, 0) + upIpyData.GetPowerEx()
|
| | |
|
| | | if magicWeaponID == signDayMWID:
|
| | | #签到属性
|
| | |
| | | for attid, attnum in IpyGameDataPY.GetFuncEvalCfg('MWSignDayAttr', 1, {}).items():
|
| | | addAttr[int(attid)] = attnum * totalSignNum
|
| | | GameWorld.AddDictValue(allAttrDict, addAttr)
|
| | | else:
|
| | | fbpasslv = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_MWFBPassLevel % magicWeaponID)
|
| | | if fbpasslv: #副本关卡属性
|
| | | fbipyData = IpyGameDataPY.GetIpyGameData('MagicWeaponFB', magicWeaponID, fbpasslv)
|
| | | if fbipyData:
|
| | | attrDict = fbipyData.GetAttrDict()
|
| | | for effID, value in attrDict.items():
|
| | | effID = int(effID)
|
| | | allAttrDict[effID] = allAttrDict.get(effID, 0) + value
|
| | | |
| | | fbpasslv = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_MWFBPassLevel % magicWeaponID)
|
| | | #老号已激活的魔族法宝没有关卡属性,直接设置满关卡
|
| | | if isActive and not fbpasslv:
|
| | | ipyDataList = IpyGameDataPY.GetIpyGameDataByCondition('MagicWeaponFB', {'MWID':magicWeaponID}, True, False)
|
| | | if ipyDataList:
|
| | | maxLevel = ipyDataList[-1].GetLevel()
|
| | | fbpasslv = maxLevel
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_MWFBPassLevel % magicWeaponID, maxLevel)
|
| | | GameWorld.Log('老号已激活的魔族法宝没有关卡属性,直接设置满关卡 magicWeaponID=%s,maxLevel=%s'%(magicWeaponID, maxLevel), curPlayer.GetID())
|
| | | if fbpasslv: #副本关卡属性
|
| | | fbipyData = IpyGameDataPY.GetIpyGameData('MagicWeaponFB', magicWeaponID, fbpasslv)
|
| | | if fbipyData:
|
| | | attrDict = fbipyData.GetAttrDict()
|
| | | for effID, value in attrDict.items():
|
| | | effID = int(effID)
|
| | | allAttrDict[effID] = allAttrDict.get(effID, 0) + value
|
| | |
|
| | |
|
| | | for effID, value in allAttrDict.items():
|
| | |
| | | PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_MagicWeapon3, allAttrList3)
|
| | | #技能解锁战力
|
| | | nextSkillDict = GetPotentialsSkillInfo(curPlayer)
|
| | | addPowerDict = {}
|
| | | for skillID, info in nextSkillDict.items():
|
| | | needSkilllv, nextSkillID, addPower = info
|
| | | skillManager = curPlayer.GetSkillManager()
|
| | |
| | | return
|
| | |
|
| | | def UptateMWFBPasslv(curPlayer, mwID, passLV):
|
| | | GameWorld.Log('更新关卡 mwID=%s,level=%s'%(mwID, passLV))
|
| | | GameWorld.Log('更新关卡 mwID=%s,level=%s'%(mwID, passLV), curPlayer.GetID())
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_MWFBPassLevel % mwID, passLV)
|
| | | CalcMagicWeaponAttr(curPlayer)
|
| | | PlayerControl.PlayerControl(curPlayer).RefreshPlayerAttrState()
|
| | | Sycn_MagicWeaponLV(curPlayer, mwID)
|
| | | |
| | | EventShell.EventRespons_MagicWeaponFBPassLV(curPlayer, mwID, passLV)
|
| | | return |