hxp
2024-05-11 a6b6d774e4039fe551bfe2fbf82182ca1714479c
10071 【后端】灵宠改版(升阶增加玩家属性)
3个文件已修改
18 ■■■■■ 已修改文件
PySysDB/PySysDBPY.h 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPet.py 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PySysDB/PySysDBPY.h
@@ -391,6 +391,8 @@
    DWORD        _Class;    //灵兽阶数
    DWORD        UpNeedExp;    //灵兽升阶所需经验数
    DWORD        AtkAdd;    //每阶攻击力加成
    list        AttrType;    //累计总属性类型
    list        AttrValue;    //累计总属性值
};
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -330,6 +330,8 @@
                        ("DWORD", "Class", 1),
                        ("DWORD", "UpNeedExp", 0),
                        ("DWORD", "AtkAdd", 0),
                        ("list", "AttrType", 0),
                        ("list", "AttrValue", 0),
                        ),
                "PetEatEquip":(
@@ -2732,7 +2734,9 @@
    def GetPetID(self): return self.attrTuple[0] # 灵兽NPCID DWORD
    def GetClass(self): return self.attrTuple[1] # 灵兽阶数 DWORD
    def GetUpNeedExp(self): return self.attrTuple[2] # 灵兽升阶所需经验数 DWORD
    def GetAtkAdd(self): return self.attrTuple[3] # 每阶攻击力加成 DWORD
    def GetAtkAdd(self): return self.attrTuple[3] # 每阶攻击力加成 DWORD
    def GetAttrType(self): return self.attrTuple[4] # 累计总属性类型 list
    def GetAttrValue(self): return self.attrTuple[5] # 累计总属性值 list
# 灵兽吸收装备表
class IPY_PetEatEquip():
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPet.py
@@ -825,6 +825,16 @@
                attrValue = starAttrValue[i]
                PlayerControl.CalcAttrDict_Type(attrID, attrValue, allAttrListStar)
                
        #升阶
        classlv = petItem.GetUserAttr(ShareDefine.Def_IudetPet_ClassLV) + 1
        classIpyData = IpyGameDataPY.GetIpyGameDataNotLog("PetClassCost", petItemNPCID, classlv)
        if classIpyData:
            attrTypeList = classIpyData.GetAttrType()
            attrValueList = classIpyData.GetAttrValue()
            for i, attrID in enumerate(attrTypeList):
                attrValue = attrValueList[i]
                PlayerControl.CalcAttrDict_Type(attrID, attrValue, allAttrListStar)
    PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_PetSkin, allAttrListPetSkin)
    PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_PetStar, allAttrListStar)
    curPlayer.SetDict(ChConfig.Def_PlayerKey_MFPEx % ShareDefine.Def_MFPType_Pet, fpExTotal)