hxp
2018-10-30 50e41acd370d6545269cc59f7bed734ea9f7b398
4380 【主干】【后端】装备传奇属性战力优化
4个文件已修改
36 ■■■■ 已修改文件
PySysDB/PySysDBPY.h 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/CalcNoLineEffect.py 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PySysDB/PySysDBPY.h
@@ -450,6 +450,8 @@
    DWORD        CftAtkSpeed;    //攻速系数
    DWORD        CftLuckyHit;    //会心一击系数
    DWORD        CftSpeedPer;    //移动速度百分比系数
    DWORD        CftAtkPer;    //攻击百分比系数
    DWORD        CftMaxHPPer;    //生命百分比系数
};
//NPC掉落表
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -377,6 +377,8 @@
                        ("DWORD", "CftAtkSpeed", 0),
                        ("DWORD", "CftLuckyHit", 0),
                        ("DWORD", "CftSpeedPer", 0),
                        ("DWORD", "CftAtkPer", 0),
                        ("DWORD", "CftMaxHPPer", 0),
                        ),
                "NPCDropItem":(
@@ -1757,7 +1759,9 @@
        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 # 等级
@@ -1780,7 +1784,9 @@
    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():
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
@@ -3356,7 +3356,8 @@
    
    __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 类实例
@@ -3465,9 +3466,20 @@
        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:
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/CalcNoLineEffect.py
@@ -16,11 +16,12 @@
# @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效果 
@@ -69,6 +70,11 @@
                #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) # 给对应模块累加上非线性增加的战斗属性值