xdh
2018-12-21 e781de21766e3ea4e768eaa9ebab2fc9a694cefe
5539 【后端】【1.4】聚魂副本怪物和守卫成长支持新的成长公式
4个文件已修改
10 ■■■■ 已修改文件
PySysDB/PySysDBPY.h 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGatherSoul.py 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PySysDB/PySysDBPY.h
@@ -353,6 +353,7 @@
{
    DWORD        _NPCID;    //NPCID
    BYTE        IsStrengthenByPlayerCount;//是否根据人数成长
    BYTE        LVStrengthenMark;//等级成长属性公式标记
    BYTE        LVStrengthenType;//等级成长类型, 0-不按等级成长;1-按玩家平均等级;2-按玩家最大等级;3-按世界等级;
    BYTE        CmpNPCBaseLV;//是否比较NPC表等级, 是的话取NPC表配置等级与成长等级中较大等级
    DWORD        HitTime;//受击次数
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -298,6 +298,7 @@
                "NPCStrengthen":(
                        ("DWORD", "NPCID", 1),
                        ("BYTE", "IsStrengthenByPlayerCount", 0),
                        ("BYTE", "LVStrengthenMark", 0),
                        ("BYTE", "LVStrengthenType", 0),
                        ("BYTE", "CmpNPCBaseLV", 0),
                        ("DWORD", "HitTime", 0),
@@ -1713,6 +1714,7 @@
    def __init__(self):
        self.NPCID = 0
        self.IsStrengthenByPlayerCount = 0
        self.LVStrengthenMark = 0
        self.LVStrengthenType = 0
        self.CmpNPCBaseLV = 0
        self.HitTime = 0
@@ -1731,6 +1733,7 @@
        
    def GetNPCID(self): return self.NPCID # NPCID
    def GetIsStrengthenByPlayerCount(self): return self.IsStrengthenByPlayerCount # 是否根据人数成长
    def GetLVStrengthenMark(self): return self.LVStrengthenMark # 等级成长属性公式标记
    def GetLVStrengthenType(self): return self.LVStrengthenType # 等级成长类型, 0-不按等级成长;1-按玩家平均等级;2-按玩家最大等级;3-按世界等级;
    def GetCmpNPCBaseLV(self): return self.CmpNPCBaseLV # 是否比较NPC表等级, 是的话取NPC表配置等级与成长等级中较大等级
    def GetHitTime(self): return self.HitTime # 受击次数
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py
@@ -285,7 +285,7 @@
    
    attrDict = {}
    paramDict = attrStrengthenInfo[NPCAttr_ParamDict] # 过程参数公式字典
    attrStrengthenList = attrStrengthenInfo[NPCAttr_AttrStrengthenList] # 属性成长公式字典
    attrStrengthenDict = attrStrengthenInfo[NPCAttr_AttrStrengthenList] # 属性成长公式字典
    playerCntCoefficient = attrStrengthenInfo[NPCAttr_PlayerCntCoefficient] # 人数系数
    npcIDPlayerCntCoefficient = attrStrengthenInfo[NPCAttr_NPCPlayerCntCoefficient] # 特殊NPC人数系数
    baseMaxHP = npcData.GetHPEx() * ShareDefine.Def_PerPointValue + npcData.GetHP()
@@ -349,6 +349,7 @@
        MonterHurt = eval(FormulaControl.GetCompileFormula("NPCParam_MonterHurt", paramDict["MonterHurt"])) # 怪物固定伤害
        LostHPPerSecond = eval(FormulaControl.GetCompileFormula("NPCParam_LostHPPerSecond", paramDict["LostHPPerSecond"])) # 玩家每秒掉血量
        
        attrStrengthenList = attrStrengthenDict.get(strengthenIpyData.GetLVStrengthenMark(), [])
        for attrKey, strengthenFormat in attrStrengthenList:
            strengthenValue = int(eval(FormulaControl.GetCompileFormula("NPCStrengthen_%s" % attrKey, strengthenFormat)))
            #GameWorld.DebugLog("    %s=%s" % (attrKey, strengthenValue))
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGatherSoul.py
@@ -374,8 +374,9 @@
    return
def __GetGatherSoulSplitMaterial(gathersoulID, soulidList=[], soulSplinters=0, soulCore=0):
def __GetGatherSoulSplitMaterial(gathersoulID):
    ##拆解多属性聚魂 返回单属性聚魂ID,材料
    soulidList, soulSplinters, soulCore= [], 0, 0
    compoundIpyData = IpyGameDataPY.GetIpyGameDataNotLog('GatherSoulCompound', gathersoulID)
    if compoundIpyData:
        materialList = compoundIpyData.GetNeedItem()