hxp
2019-05-11 7ae9db7a15248cdc6dff8970b55b2efb424d8b5a
6747 【后端】【2.0】灵根调整
3个文件已修改
26 ■■■■■ 已修改文件
PySysDB/PySysDBPY.h 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PySysDB/PySysDBPY.h
@@ -15,7 +15,8 @@
struct    tagRolePoint
{
    BYTE        _AttrID;    //属性ID
    dict        AddAttrInfoPerPoint;    //每点增加属性信息
    dict        AddAttrInfoPerPoint;    //每点增加属性信息 {"职业":[[每X点,属性ID,值], ...], ..}
    BYTE        FightPowerPerPoint;        //每点附加战斗力
    dict        PointQualityAttrIDDict;        //点数品质进阶增加属性ID, 根据职业区分
    dict        PointQualityAttrValueDict;        //点数品质进阶增加属性值列表, 根据职业区分
    list        PointQualityIntervalList;        //点数品质进阶属性点区间列表
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -44,6 +44,7 @@
                "RolePoint":(
                        ("BYTE", "AttrID", 1),
                        ("dict", "AddAttrInfoPerPoint", 0),
                        ("BYTE", "FightPowerPerPoint", 0),
                        ("dict", "PointQualityAttrIDDict", 0),
                        ("dict", "PointQualityAttrValueDict", 0),
                        ("list", "PointQualityIntervalList", 0),
@@ -1495,13 +1496,15 @@
    def __init__(self):
        self.AttrID = 0
        self.AddAttrInfoPerPoint = {}
        self.FightPowerPerPoint = 0
        self.PointQualityAttrIDDict = {}
        self.PointQualityAttrValueDict = {}
        self.PointQualityIntervalList = []
        return
        
    def GetAttrID(self): return self.AttrID # 属性ID
    def GetAddAttrInfoPerPoint(self): return self.AddAttrInfoPerPoint # 每点增加属性信息
    def GetAddAttrInfoPerPoint(self): return self.AddAttrInfoPerPoint # 每点增加属性信息 {"职业":[[每X点,属性ID,值], ...], ..}
    def GetFightPowerPerPoint(self): return self.FightPowerPerPoint # 每点附加战斗力
    def GetPointQualityAttrIDDict(self): return self.PointQualityAttrIDDict # 点数品质进阶增加属性ID, 根据职业区分
    def GetPointQualityAttrValueDict(self): return self.PointQualityAttrValueDict # 点数品质进阶增加属性值列表, 根据职业区分
    def GetPointQualityIntervalList(self): return self.PointQualityIntervalList # 点数品质进阶属性点区间列表
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
@@ -4085,6 +4085,7 @@
        #GameWorld.DebugLog("等级加属性: %s" % allAttrList)
        
        # 属性点属性
        pointFightPowerEx = 0
        pointValueInfo = {ShareDefine.Def_Effect_Metal:[lambda curObj:GetMetal(curObj), lambda curObj, value:SetMetalQualityLV(curObj, value)],
                          ShareDefine.Def_Effect_Wood:[lambda curObj:GetWood(curObj), lambda curObj, value:SetWoodQualityLV(curObj, value)],
                          ShareDefine.Def_Effect_Water:[lambda curObj:GetWater(curObj), lambda curObj, value:SetWaterQualityLV(curObj, value)],
@@ -4101,12 +4102,15 @@
            if not ipyData:
                continue
            # 每点属性
            perPointAddAttrDict = ipyData.GetAddAttrInfoPerPoint()
            for perPointAttrID, perPointAttrValue in perPointAddAttrDict.items():
                pointAddValue = perPointAttrValue * pointValue
                CalcAttrDict_Type(perPointAttrID, pointAddValue, allAttrList)
                #GameWorld.DebugLog("    属性点(%s)加属性: pointValue=%s,perPointAttrID=%s,pointAddValue=%s" % (pointAttrID, pointValue, perPointAttrID, pointAddValue))
            perPointAddAttrDict = ipyData.GetAddAttrInfoPerPoint() # {"职业":[[每X点,属性ID,值], ...], ..}
            addAttrList = perPointAddAttrDict.get(str(job), [])
            for needPoint, pointAddAttrID, pointAddAttrValue in addAttrList:
                pointAddValueTotal = pointAddAttrValue * (pointValue / needPoint)
                CalcAttrDict_Type(pointAddAttrID, pointAddValueTotal, allAttrList)
                #GameWorld.DebugLog("    属性点(%s)加属性: pointValue=%s,pointAddAttrID=%s,pointAddValueTotal=%s" % (pointAttrID, pointValue, pointAddAttrID, pointAddValueTotal))
                
            pointFightPowerEx += (ipyData.GetFightPowerPerPoint() * pointValue)
            # 点数品质属性
            curPQLV = 0
            pqIntervalList = ipyData.GetPointQualityIntervalList()
@@ -4127,7 +4131,9 @@
            #GameWorld.DebugLog("        属性点(%s)品阶等级属性: curPQLV=%s,pqAttrID=%s,pqAttrValue=%s" % (pointAttrID, curPQLV, pqAttrID, pqAttrValue))
            
        #GameWorld.DebugLog("等级属性点加属性: %s" % allAttrList)
        #GameWorld.DebugLog("灵根品阶等级属性: %s" % lingGenQualityAttrList)
        #GameWorld.DebugLog("灵根品阶等级属性: %s" % lingGenQualityAttrList)
        #GameWorld.DebugLog("灵根点数附加战力: %s" % pointFightPowerEx)
        curPlayer.SetDict(ChConfig.Def_PlayerKey_MFPEx % ShareDefine.Def_MFPType_Role, pointFightPowerEx)
        SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_RoleBase, allAttrList)
        SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_LingGenQuailty, lingGenQualityAttrList)
        return