| | |
| | | DWORD CftAtkSpeed; //攻速系数
|
| | | DWORD CftLuckyHit; //会心一击系数
|
| | | DWORD CftSpeedPer; //移动速度百分比系数
|
| | | DWORD CftAtkPer; //攻击百分比系数
|
| | | DWORD CftMaxHPPer; //生命百分比系数
|
| | | };
|
| | |
|
| | | //NPC掉落表
|
| | |
| | | ("DWORD", "CftAtkSpeed", 0),
|
| | | ("DWORD", "CftLuckyHit", 0),
|
| | | ("DWORD", "CftSpeedPer", 0),
|
| | | ("DWORD", "CftAtkPer", 0),
|
| | | ("DWORD", "CftMaxHPPer", 0),
|
| | | ),
|
| | |
|
| | | "NPCDropItem":(
|
| | |
| | | self.CftFaintDefRate = 0
|
| | | self.CftAtkSpeed = 0
|
| | | self.CftLuckyHit = 0
|
| | | self.CftSpeedPer = 0 |
| | | self.CftSpeedPer = 0
|
| | | self.CftAtkPer = 0
|
| | | self.CftMaxHPPer = 0 |
| | | return |
| | | |
| | | def GetLV(self): return self.LV # 等级
|
| | |
| | | def GetCftFaintDefRate(self): return self.CftFaintDefRate # 控制抵抗系数
|
| | | def GetCftAtkSpeed(self): return self.CftAtkSpeed # 攻速系数
|
| | | def GetCftLuckyHit(self): return self.CftLuckyHit # 会心一击系数
|
| | | def GetCftSpeedPer(self): return self.CftSpeedPer # 移动速度百分比系数 |
| | | def GetCftSpeedPer(self): return self.CftSpeedPer # 移动速度百分比系数
|
| | | def GetCftAtkPer(self): return self.CftAtkPer # 攻击百分比系数
|
| | | def GetCftMaxHPPer(self): return self.CftMaxHPPer # 生命百分比系数 |
| | | |
| | | # NPC掉落表 |
| | | class IPY_NPCDropItem(): |
| | |
| | |
|
| | | __AttrName = "%s" # 参数为ChConfig.Def_Calc_AllAttrType_MAX对应所有属性列表索引
|
| | | __AttrNameNoline = "Noline_%s" # 参数为ChConfig.Def_Calc_AllAttrType_MAX对应所有属性列表索引
|
| | | __NolineAttrList = [ChConfig.TYPE_Calc_AttrSpeed] # 需要记录的非线性战斗属性
|
| | | __NolineAttrList = [ChConfig.TYPE_Calc_AttrSpeed, ChConfig.TYPE_Calc_AttrATKMin, ChConfig.TYPE_Calc_AttrATKMax, |
| | | ChConfig.TYPE_Calc_AttrMaxHP] # 需要记录的非线性战斗属性
|
| | |
|
| | | ## 初始化
|
| | | # @param self 类实例
|
| | |
| | | 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))
|
| | | totalFightPower = eval(FormulaControl.GetCompileFormula("FightpowerFormula", FightpowerFormula)) + fpEx
|
| | |
|
| | | #GameWorld.DebugLog("MfpType=%s,FightPower=%s, %s" % (self.mfpType, totalFightPower, self.GetMFPAttrStr()))
|
| | | if totalFightPower > ShareDefine.Def_UpperLimit_DWord:
|
| | |
| | | # @change: "2013-11-13 21:00" Alee 移动速度独立处理
|
| | | # @change: "2015-07-29 17:30" hxp 伤害减免改为线性
|
| | | #---------------------------------------------------------------------
|
| | | """Version = 2015-07-29 17:30"""
|
| | | #"""Version = 2015-07-29 17:30"""
|
| | | #---------------------------------------------------------------------
|
| | | import ChConfig
|
| | | import EffGetSet
|
| | | import GameWorld
|
| | | import ShareDefine
|
| | | #---------------------------------------------------------------------
|
| | |
|
| | | ## 给玩家添加非线性Buff效果
|
| | |
| | | #if not attrDict.has_key(key): # 如果该模块没有增加该属性,则跳过
|
| | | if key not in attrDict: # 如果该模块没有增加该属性,则跳过
|
| | | continue
|
| | | #装备模块攻击、生命非线性属性提升的属性不计算战力,战力另外算
|
| | | if mfpObj.mfpType == ShareDefine.Def_MFPType_Equip \
|
| | | and key in [ChConfig.TYPE_Calc_AttrATKMin, ChConfig.TYPE_Calc_AttrATKMax, ChConfig.TYPE_Calc_AttrMaxHP]:
|
| | | GameWorld.DebugLog("装备模块某些属性不计入战力计算: key=%s,value=%s" % (key, attrDict[key]))
|
| | | continue
|
| | | curMValue = attrDict[key]
|
| | | curMAddValue = curValue * curMValue / ChConfig.Def_MaxRateValue # 相对增加值
|
| | | mfpObj.AddCalcMFPAttr(key, curMAddValue) # 给对应模块累加上非线性增加的战斗属性值
|