hxp
2019-06-26 5161659a2719bc028835b344fa204a3b5377e004
7564 【后端】【主干】神兽装备传奇属性
4个文件已修改
19 ■■■■ 已修改文件
PySysDB/PySysDBPY.h 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/ClearPack.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PySysDB/PySysDBPY.h
@@ -149,6 +149,7 @@
    BYTE        _ItemType;    //物品类型
    BYTE        _ItemColor;    //物品颜色
    BYTE        _IsSuit;    //是否套装
    BYTE        _ItemQuality;    //物品星级
    list        LegendAttrCountInfo;    //传奇属性条数信息 [[条数, [属性类型库编号, ...]], ...]
};
@@ -176,6 +177,7 @@
    BYTE        _ItemClassLV;    //物品阶级
    BYTE        _ItemColor;    //物品颜色
    BYTE        _IsSuit;    //是否套装
    BYTE        _ItemQuality;    //物品星级
    dict        LVLegendAttrLibNumInfo;    //属性ID等级段对应数值库编号 {属性ID:{等级:库编号, ...}}
};
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/ClearPack.py
@@ -26,7 +26,7 @@
#  @remarks 函数详细说明.
def OnExec(curPlayer, playerList):
    if not playerList:
        GameWorld.DebugAnswer(curPlayer, "背包类型:1-装备;2-背包;5-仓库;30-寻宝;32-神兽;33-神兽装备;;34-诛仙;35-诛仙装备;")
        GameWorld.DebugAnswer(curPlayer, "背包类型:1-装备;2-背包;5-仓库;30-寻宝;32-神兽;33-神兽装备;")
        return
    
    if len(playerList) == 1:
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -143,6 +143,7 @@
                        ("BYTE", "ItemType", 1),
                        ("BYTE", "ItemColor", 1),
                        ("BYTE", "IsSuit", 1),
                        ("BYTE", "ItemQuality", 1),
                        ("list", "LegendAttrCountInfo", 0),
                        ),
@@ -161,6 +162,7 @@
                        ("BYTE", "ItemClassLV", 1),
                        ("BYTE", "ItemColor", 1),
                        ("BYTE", "IsSuit", 1),
                        ("BYTE", "ItemQuality", 1),
                        ("dict", "LVLegendAttrLibNumInfo", 0),
                        ),
@@ -1694,12 +1696,14 @@
        self.ItemType = 0
        self.ItemColor = 0
        self.IsSuit = 0
        self.ItemQuality = 0
        self.LegendAttrCountInfo = []
        return
        
    def GetItemType(self): return self.ItemType # 物品类型
    def GetItemColor(self): return self.ItemColor # 物品颜色
    def GetIsSuit(self): return self.IsSuit # 是否套装
    def GetItemQuality(self): return self.ItemQuality # 物品星级
    def GetLegendAttrCountInfo(self): return self.LegendAttrCountInfo # 传奇属性条数信息 [[条数, [属性类型库编号, ...]], ...]
# 装备传奇属性类型表
@@ -1732,6 +1736,7 @@
        self.ItemClassLV = 0
        self.ItemColor = 0
        self.IsSuit = 0
        self.ItemQuality = 0
        self.LVLegendAttrLibNumInfo = {}
        return
        
@@ -1739,6 +1744,7 @@
    def GetItemClassLV(self): return self.ItemClassLV # 物品阶级
    def GetItemColor(self): return self.ItemColor # 物品颜色
    def GetIsSuit(self): return self.IsSuit # 是否套装
    def GetItemQuality(self): return self.ItemQuality # 物品星级
    def GetLVLegendAttrLibNumInfo(self): return self.LVLegendAttrLibNumInfo # 属性ID等级段对应数值库编号 {属性ID:{等级:库编号, ...}}
# 神兽表
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py
@@ -2321,9 +2321,10 @@
    itemID = curItem.GetItemTypeID()
    itemType = curItem.GetType()
    itemColor = curItem.GetItemColor()
    itemQuality = curItem.GetItemQuality()
    isSuit = 1 if curItem.GetSuiteID() else 0
    # 1. 定条数
    attrCountIpyData = IpyGameDataPY.GetIpyGameDataNotLog("EquipLegendAttrCount", itemType, itemColor, isSuit)
    attrCountIpyData = IpyGameDataPY.GetIpyGameDataNotLog("EquipLegendAttrCount", itemType, itemColor, isSuit, itemQuality)
    if not attrCountIpyData:
        if itemColor >= ChConfig.Def_Quality_Purple:
            GameWorld.DebugLog("该装备没有传奇属性: itemID=%s" % (itemID))
@@ -2371,10 +2372,10 @@
            #                   % (attrCount, libNumList, attrIDList, curLegAttrIDList), playerID)
            
    # 3. 定数值
    attrValueIpyData = IpyGameDataPY.GetIpyGameData("EquipLegendAttrValue", itemType, itemClassLV, itemColor, isSuit)
    attrValueIpyData = IpyGameDataPY.GetIpyGameData("EquipLegendAttrValue", itemType, itemClassLV, itemColor, isSuit, itemQuality)
    if not attrValueIpyData:
        GameWorld.ErrLog("传奇属性等级数值表找不到配置!itemID=%s,itemType=%s,itemClassLV=%s,itemColor=%s,isSuit=%s"
                         % (itemID, itemType, itemClassLV, itemColor, isSuit), playerID)
        GameWorld.ErrLog("传奇属性等级数值表找不到配置!itemID=%s,itemType=%s,itemClassLV=%s,itemColor=%s,isSuit=%s,itemQuality=%s"
                         % (itemID, itemType, itemClassLV, itemColor, isSuit, itemQuality), playerID)
        return
    
    attrLVLibNumDict = attrValueIpyData.GetLVLegendAttrLibNumInfo() # {属性ID:{等级:库编号, ...}}