10033 【后端】仙树升级系统及砍树产出规则(增加装备评分参数支持: 攻速、击晕、连击、抗连击、反击、抗反击、吸血、抗吸血)
3个文件已修改
57 ■■■■■ 已修改文件
PySysDB/PySysDBPY.h 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/ItemCommon.py 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PySysDB/PySysDBPY.h
@@ -1032,6 +1032,14 @@
    DWORD        ProDefPerC;    // 防护百分比系数
    DWORD        FinalHurtPerC;    // 最终伤害加成系数
    DWORD        FinalHurtReducePerC;    // 最终伤害减免系数
    DWORD        AtkSpeedC;    // 攻速系数
    DWORD        FaintRateC;    // 击晕率系数
    DWORD        ComboRateC;    // 连击率系数
    DWORD        ComboDefRateC;    // 抗连击系数
    DWORD        AtkBackRateC;    // 反击率系数
    DWORD        AtkBackDefRateC;    // 抗反击系数
    DWORD        SuckHPPerC;    // 吸血率系数
    DWORD        SuckHPDefPerC;    // 抗吸血系数
};
//成就表
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -857,6 +857,14 @@
                        ("DWORD", "ProDefPerC", 0),
                        ("DWORD", "FinalHurtPerC", 0),
                        ("DWORD", "FinalHurtReducePerC", 0),
                        ("DWORD", "AtkSpeedC", 0),
                        ("DWORD", "FaintRateC", 0),
                        ("DWORD", "ComboRateC", 0),
                        ("DWORD", "ComboDefRateC", 0),
                        ("DWORD", "AtkBackRateC", 0),
                        ("DWORD", "AtkBackDefRateC", 0),
                        ("DWORD", "SuckHPPerC", 0),
                        ("DWORD", "SuckHPDefPerC", 0),
                        ),
                "Success":(
@@ -3947,7 +3955,15 @@
        self.IgnoreDefRateReduceC = 0
        self.ProDefPerC = 0
        self.FinalHurtPerC = 0
        self.FinalHurtReducePerC = 0
        self.FinalHurtReducePerC = 0
        self.AtkSpeedC = 0
        self.FaintRateC = 0
        self.ComboRateC = 0
        self.ComboDefRateC = 0
        self.AtkBackRateC = 0
        self.AtkBackDefRateC = 0
        self.SuckHPPerC = 0
        self.SuckHPDefPerC = 0
        return
        
    def GetClassLV(self): return self.ClassLV #  装备阶级
@@ -3995,7 +4011,15 @@
    def GetIgnoreDefRateReduceC(self): return self.IgnoreDefRateReduceC #  无视防御减免系数
    def GetProDefPerC(self): return self.ProDefPerC #  防护百分比系数
    def GetFinalHurtPerC(self): return self.FinalHurtPerC #  最终伤害加成系数
    def GetFinalHurtReducePerC(self): return self.FinalHurtReducePerC #  最终伤害减免系数
    def GetFinalHurtReducePerC(self): return self.FinalHurtReducePerC #  最终伤害减免系数
    def GetAtkSpeedC(self): return self.AtkSpeedC #  攻速系数
    def GetFaintRateC(self): return self.FaintRateC #  击晕率系数
    def GetComboRateC(self): return self.ComboRateC #  连击率系数
    def GetComboDefRateC(self): return self.ComboDefRateC #  抗连击系数
    def GetAtkBackRateC(self): return self.AtkBackRateC #  反击率系数
    def GetAtkBackDefRateC(self): return self.AtkBackDefRateC #  抗反击系数
    def GetSuckHPPerC(self): return self.SuckHPPerC #  吸血率系数
    def GetSuckHPDefPerC(self): return self.SuckHPDefPerC #  抗吸血系数
# 成就表
class IPY_Success():
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/ItemCommon.py
@@ -669,6 +669,15 @@
    itemQuality = curItem.GetItemQuality()
    isSuit = 1 if curItem.GetSuiteID() > 0 else 0
    gsParamIpyData = IpyGameDataPY.GetIpyGameDataNotLog("EquipGSParam", classLV, color, isSuit, itemQuality)
    baseAttrIDCnt = curItem.GetUserAttrCount(ShareDefine.Def_IudetBaseAttrID)
    baseAttrValueCnt = curItem.GetUserAttrCount(ShareDefine.Def_IudetBaseAttrValue)
    if baseAttrIDCnt == baseAttrValueCnt:
        for i in xrange(baseAttrIDCnt):
            baseAttrID = curItem.GetUserAttrByIndex(ShareDefine.Def_IudetBaseAttrID, i)
            baseAttrValue = curItem.GetUserAttrByIndex(ShareDefine.Def_IudetBaseAttrValue, i)
            attrDict[baseAttrID] = attrDict.get(baseAttrID, 0) + baseAttrValue
    # 传奇属性
    legAttrIDList, legAttrValueList = ItemControler.GetEquipLegendAttrAll(curItem)
    for i, legendAttrID in enumerate(legAttrIDList):
@@ -751,13 +760,19 @@
    FinalHurtPerC = attrDict.get(ShareDefine.Def_Effect_FinalHurtPer, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetFinalHurtPerC())
    FinalHurtReducePerC = attrDict.get(ShareDefine.Def_Effect_FinalHurtReducePer, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetFinalHurtReducePerC())
    
    # 攻速不默认乘,仅作为参数提供策划使用
    AtkSpeed = 0#attrDict.get(ShareDefine.Def_Effect_AtkSpeed, 0)
    AtkSpeedC = 1#1 if not gsParamIpyData else gsParamIpyData.GetAtkSpeedC()
    AtkSpeed = attrDict.get(ShareDefine.Def_Effect_AtkSpeed, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetAtkSpeedC())
    
    OnlyFinalHurt = attrDict.get(ShareDefine.Def_Effect_OnlyFinalHurt, 0)
    PVPAtkBackHP = attrDict.get(ShareDefine.Def_Effect_PVPAtkBackHP, 0)  
    
    FaintRate = attrDict.get(ShareDefine.Def_Effect_FaintRate, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetFaintRateC())
    ComboRate = attrDict.get(ShareDefine.Def_Effect_ComboRate, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetComboRateC())
    ComboDefRate = attrDict.get(ShareDefine.Def_Effect_ComboDefRate, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetComboDefRateC())
    AtkBackRate = attrDict.get(ShareDefine.Def_Effect_AtkBackRate, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetAtkBackRateC())
    AtkBackDefRate = attrDict.get(ShareDefine.Def_Effect_AtkBackDefRate, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetAtkBackDefRateC())
    SuckHPPer = attrDict.get(ShareDefine.Def_Effect_SuckHPPer, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSuckHPPerC())
    SuckHPDefPer = attrDict.get(ShareDefine.Def_Effect_SuckHPDefPer, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSuckHPDefPerC())
    if GetIsDogzEquip(curItem):
        # 神兽装备用不同公式
        value = eval(FormulaControl.GetCompileFormula("EquipGSFormula3", IpyGameDataPY.GetFuncCfg("EquipGSFormula", 3)))