9790 9762 【BT9】【后端】藏宝阁修改(增加古宝分类;等级属性改为由分类及品质决定)
4个文件已修改
23 ■■■■ 已修改文件
PySysDB/PySysDBPY.h 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/Gubao.py 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGubao.py 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PySysDB/PySysDBPY.h
@@ -443,6 +443,7 @@
struct tagGubao
{
    WORD        _GubaoID;    //古宝ID
    BYTE        GubaoType;    //古宝分类
    BYTE        GubaoQuality;    //古宝品质
    DWORD        UnlockItemID;    //解锁所需物品ID
    BYTE        UnlockItemCnt;    //解锁所需物品数量
@@ -478,6 +479,7 @@
struct tagGubaoLV
{
    BYTE        _GubaoType;    //古宝分类
    BYTE        _GubaoQuality;    //古宝品质
    BYTE        _GubaoLV;    //古宝等级
    list        LVUPNeedItemInfo;    //升级所需物品 [[物品ID,个数], ...]
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/Gubao.py
@@ -66,10 +66,11 @@
        if not starIpyData:
            GameWorld.DebugAnswer(curPlayer, "不存在该古宝星级!gubaoID=%s,star=%s" % (gubaoID, star))
            return
        gubaoType = ipyData.GetGubaoType()
        quality = ipyData.GetGubaoQuality()
        lvIpyData = IpyGameDataPY.GetIpyGameData("GubaoLV", quality, lv)
        lvIpyData = IpyGameDataPY.GetIpyGameData("GubaoLV", gubaoType, quality, lv)
        if not lvIpyData:
            GameWorld.DebugAnswer(curPlayer, "不存在该古宝品质等级!gubaoID=%s,quality=%s,lv=%s" % (gubaoID, quality, lv))
            GameWorld.DebugAnswer(curPlayer, "不存在该古宝品质等级!gubaoID=%s,gubaoType=%s,quality=%s,lv=%s" % (gubaoID, gubaoType, quality, lv))
            return
        GameWorld.DebugAnswer(curPlayer, "设置古宝:%s,等级(%s),星(%s)" % (gubaoID, lv, star))
        PlayerGubao.SetGubaoLVInfo(curPlayer, gubaoID, lv, star)
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -365,6 +365,7 @@
                "Gubao":(
                        ("WORD", "GubaoID", 1),
                        ("BYTE", "GubaoType", 0),
                        ("BYTE", "GubaoQuality", 0),
                        ("DWORD", "UnlockItemID", 0),
                        ("BYTE", "UnlockItemCnt", 0),
@@ -391,6 +392,7 @@
                        ),
                "GubaoLV":(
                        ("BYTE", "GubaoType", 1),
                        ("BYTE", "GubaoQuality", 1),
                        ("BYTE", "GubaoLV", 1),
                        ("list", "LVUPNeedItemInfo", 0),
@@ -2795,12 +2797,14 @@
    
    def __init__(self):
        self.GubaoID = 0
        self.GubaoType = 0
        self.GubaoQuality = 0
        self.UnlockItemID = 0
        self.UnlockItemCnt = 0
        return
        
    def GetGubaoID(self): return self.GubaoID # 古宝ID
    def GetGubaoType(self): return self.GubaoType # 古宝分类
    def GetGubaoQuality(self): return self.GubaoQuality # 古宝品质
    def GetUnlockItemID(self): return self.UnlockItemID # 解锁所需物品ID
    def GetUnlockItemCnt(self): return self.UnlockItemCnt # 解锁所需物品数量
@@ -2851,6 +2855,7 @@
class IPY_GubaoLV():
    
    def __init__(self):
        self.GubaoType = 0
        self.GubaoQuality = 0
        self.GubaoLV = 0
        self.LVUPNeedItemInfo = []
@@ -2858,6 +2863,7 @@
        self.LVAttrValueList = []
        return
        
    def GetGubaoType(self): return self.GubaoType # 古宝分类
    def GetGubaoQuality(self): return self.GubaoQuality # 古宝品质
    def GetGubaoLV(self): return self.GubaoLV # 古宝等级
    def GetLVUPNeedItemInfo(self): return self.LVUPNeedItemInfo # 升级所需物品 [[物品ID,个数], ...]
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGubao.py
@@ -161,13 +161,14 @@
    ipyData = IpyGameDataPY.GetIpyGameData("Gubao", gubaoID)
    if not ipyData:
        return
    gubaoType = ipyData.GetGubaoType()
    quality = ipyData.GetGubaoQuality()
    
    if not IpyGameDataPY.GetIpyGameDataNotLog("GubaoLV", quality, lv + 1):
    if not IpyGameDataPY.GetIpyGameDataNotLog("GubaoLV", gubaoType, quality, lv + 1):
        GameWorld.DebugLog("古宝已满级! gubaoID=%s,quality=%s,lv=%s" % (gubaoID, quality, lv), playerID)
        return
    
    lvIpyData = IpyGameDataPY.GetIpyGameData("GubaoLV", quality, lv)
    lvIpyData = IpyGameDataPY.GetIpyGameData("GubaoLV", gubaoType, quality, lv)
    if not lvIpyData:
        return
    needItemList = lvIpyData.GetLVUPNeedItemInfo()
@@ -185,7 +186,7 @@
    
    updLV = lv + 1
    SetGubaoLVInfo(curPlayer, gubaoID, updLV, star)
    GameWorld.Log("古宝升级: gubaoID=%s,quality=%s,updLV=%s" % (gubaoID, quality, updLV), playerID)
    GameWorld.Log("古宝升级: gubaoID=%s,gubaoType=%s,quality=%s,updLV=%s" % (gubaoID, gubaoType, quality, updLV), playerID)
    RefreshGubaoAttr(curPlayer)
    Sync_GubaoInfo(curPlayer, [gubaoID])
    return
@@ -207,8 +208,9 @@
        if not star:
            continue
        
        gubaoType = ipyData.GetGubaoType()
        quality = ipyData.GetGubaoQuality()
        lvIpyData = IpyGameDataPY.GetIpyGameData("GubaoLV", quality, lv)
        lvIpyData = IpyGameDataPY.GetIpyGameData("GubaoLV", gubaoType, quality, lv)
        if lvIpyData:
            lvAttrTypeList = lvIpyData.GetLVAttrTypeList()
            lvAttrValueList = lvIpyData.GetLVAttrValueList()