From 369e52f7a7b980c882ca322615b1995796fe9223 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期二, 06 十一月 2018 21:38:13 +0800 Subject: [PATCH] 4595 【1.2】【后端】装备战力、评分优化(角色装备、神兽装备 ) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py | 40 ++++++++++++++++++++-------------------- 1 files changed, 20 insertions(+), 20 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py index bb43579..4ee7cda 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py @@ -3395,8 +3395,7 @@ __AttrName = "%s" # 参数为ChConfig.Def_Calc_AllAttrType_MAX对应所有属性列表索引 __AttrNameNoline = "Noline_%s" # 参数为ChConfig.Def_Calc_AllAttrType_MAX对应所有属性列表索引 - __NolineAttrList = [ChConfig.TYPE_Calc_AttrSpeed, ChConfig.TYPE_Calc_AttrATKMin, ChConfig.TYPE_Calc_AttrATKMax, - ChConfig.TYPE_Calc_AttrMaxHP] # 需要记录的非线性战斗属性 + __NolineAttrList = [ChConfig.TYPE_Calc_AttrSpeed] # 需要记录的非线性战斗属性 ## 初始化 # @param self 类实例 @@ -3504,21 +3503,10 @@ #其他需作为公式参数的系数 AtkSpeedParameter = fpParam.GetCftAtkSpeed() LuckyHitParameter = fpParam.GetCftLuckyHit() - - fpEx = 0 - #装备模块特殊处理 - if self.mfpType == ShareDefine.Def_MFPType_Equip: - AtkPer = getattr(self, self.__AttrNameNoline % ChConfig.TYPE_Calc_AttrATKMax) * fpParam.GetCftAtkPer() # 攻击百分比系数 - MaxHPPer = getattr(self, self.__AttrNameNoline % ChConfig.TYPE_Calc_AttrMaxHP) * fpParam.GetCftMaxHPPer() # 生命百分比系数 - fpEx = eval(IpyGameDataPY.GetFuncCompileCfg("FightpowerFormula", 3)) - GameWorld.DebugLog("装备模块攻击生命百分比传奇属性战力: fpEx=%s" % fpEx) - else: - AtkPer = 0 - MaxHPPer = 0 #获取策划配置的表格 FightpowerFormula = IpyGameDataPY.GetFuncCfg("FightpowerFormula") - totalFightPower = eval(FormulaControl.GetCompileFormula("FightpowerFormula", FightpowerFormula)) + fpEx + totalFightPower = eval(FormulaControl.GetCompileFormula("FightpowerFormula", FightpowerFormula)) #GameWorld.DebugLog("MfpType=%s,FightPower=%s, %s" % (self.mfpType, totalFightPower, self.GetMFPAttrStr())) if totalFightPower > ShareDefine.Def_UpperLimit_DWord: @@ -6655,12 +6643,24 @@ def GetCalcAttrListValue(curPlayer, funcIndex): ## 获取功能点预先计算的所加属性值 attrList = [{} for _ in range(4)] - for attrIndex, attrDict in enumerate(attrList): - for i in xrange(Def_MaxAddAttrTypeCnt): - attrType = curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_CalcAddAttrType % (funcIndex, attrIndex, i)) - if attrType == 0: - break - attrDict[attrType] = curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_CalcAddAttrValue % (funcIndex, attrIndex, i)) + if isinstance(funcIndex, int): + funcIndexList = [funcIndex] + elif isinstance(funcIndex, list): + funcIndexList = funcIndex + else: + return attrList + + for funcIndex in funcIndexList: + for attrIndex, attrDict in enumerate(attrList): + for i in xrange(Def_MaxAddAttrTypeCnt): + attrType = curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_CalcAddAttrType % (funcIndex, attrIndex, i)) + if attrType == 0: + break + attrValue = curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_CalcAddAttrValue % (funcIndex, attrIndex, i)) + if attrType in attrDict: + attrDict[attrType] = attrValue + attrDict[attrType] + else: + attrDict[attrType] = attrValue return attrList ## 刷属性时累加功能事先计算好的属性值 -- Gitblit v1.8.0