| | |
| | | import PlayerMagicWeapon
|
| | | import time
|
| | | import json
|
| | | import FormulaControl
|
| | | #---------------------------------------------------------------------
|
| | |
|
| | | ##检查玩家是否可以换装
|
| | |
| | |
|
| | | if not ItemCommon.CheckItemCanUseByExpireTime(curItem):
|
| | | # 过期
|
| | | GameWorld.DebugLog("装备已过期!")
|
| | | return False
|
| | |
|
| | | changeItemEquipPlace = curItem.GetEquipPlace()
|
| | |
| | | equipPlaceList = [] # 有穿戴装备的装备位列表
|
| | | suitCntDict = {} #套装数量字典
|
| | | legendAttrDict = {} #所有传奇属性
|
| | | equipScoreTotal = 0 #为解决装备评分、战力不一致的情况,装备战力改为由评分作为参数计算战力
|
| | |
|
| | | #玩家当前可装备的装备类型
|
| | | for equipIndex in xrange(playerEquip.GetCount()):
|
| | |
| | | continue
|
| | |
|
| | | # 翅膀属性在翅膀功能单独刷新
|
| | | if equipIndex == ShareDefine.retWing:
|
| | | if equipIndex in ChConfig.EquipItemNoRefreshState:
|
| | | continue
|
| | |
|
| | | curEquip = playerEquip.GetAt(equipIndex)
|
| | |
| | | continue
|
| | |
|
| | | equipPlaceList.append(equipIndex)
|
| | | equipScoreTotal += ItemCommon.GetEquipGearScore(curEquip)
|
| | |
|
| | | #基础属性效果
|
| | | for i in range(0, curEquip.GetEffectCount()):
|
| | |
| | | PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_Wash, allAttrListWash)
|
| | | PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_EquipOutOfPrint, allAttrListOutOfPrintEquip)
|
| | |
|
| | | #计算装备基础属性附加战力
|
| | | LV = curPlayer.GetLV()
|
| | | Atk = baseEquipAttrDict.get(ShareDefine.Def_Effect_Atk, 0)
|
| | | MinAtk = baseEquipAttrDict.get(ShareDefine.Def_Effect_MinAtk, 0) + Atk
|
| | | MaxAtk = baseEquipAttrDict.get(ShareDefine.Def_Effect_MaxAtk, 0) + Atk
|
| | | MaxHP = baseEquipAttrDict.get(ShareDefine.Def_Effect_MaxHP, 0)
|
| | | Def = baseEquipAttrDict.get(ShareDefine.Def_Effect_Def, 0)
|
| | | fightPowerEx = eval(IpyGameDataPY.GetFuncCompileCfg("FightpowerFormula", 2))
|
| | | curPlayer.SetDict(ChConfig.Def_PlayerKey_MFPEx % ShareDefine.Def_MFPType_Equip, fightPowerEx)
|
| | | #计算装备基础属性附加战力 (目前组成: 评分战力 + ...)
|
| | | equipFightPowerEx = eval(IpyGameDataPY.GetFuncCompileCfg("FightpowerFormula", 2))
|
| | | #GameWorld.DebugLog("装备评分战力: equipScoreTotal=%s,equipFightPowerEx=%s" % (equipScoreTotal, equipFightPowerEx))
|
| | | curPlayer.SetDict(ChConfig.Def_PlayerKey_MFPEx % ShareDefine.Def_MFPType_Equip, equipFightPowerEx)
|
| | | return
|
| | |
|
| | |
|
| | |
| | | return
|
| | |
|
| | | lv = curPlayer.GetLV()
|
| | | OutOfPrintAttrFormatDict = IpyGameDataPY.GetFuncEvalCfg("OutOfPrintValue", 2, {})
|
| | | for i, attrID in enumerate(OutOfPrintAttrIDList):
|
| | | if str(attrID) not in OutOfPrintAttrFormatDict:
|
| | | continue
|
| | | attrFormat = OutOfPrintAttrFormatDict[str(attrID)]
|
| | | maxOOPValue = OutOfPrintAttrValueList[i]
|
| | | value = eval(IpyGameDataPY.GetFuncCompileCfg("OutOfPrintValue", 1))
|
| | | value = eval(FormulaControl.GetCompileFormula("OutOfPrintAttrFormat_%s" % attrID, attrFormat))
|
| | | GameWorld.DebugLog("加绝版属性: %s +%s" % (attrID, value))
|
| | | PlayerControl.CalcAttrDict_Type(attrID, value, allAttrListOutOfPrintEquip)
|
| | |
|