hxp
2025-12-30 0c69c775c09a25e1d3aa9ad4e62d7140ddfa98c1
383 【武将】武将宿缘-服务端(增加所需品质支持;)
3个文件已修改
14 ■■■■■ 已修改文件
PySysDB/PySysDBPY.h 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHero.py 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PySysDB/PySysDBPY.h
@@ -276,6 +276,7 @@
    BYTE        _FatesLV;    //宿缘等级
    BYTE        NeedStarTotal;    // 升到该级所需总星数
    BYTE        NeedHeroCnt;    // 所需品质武将数
    BYTE        NeedQuality;    // 所需武将品质
};
//属性条目表
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -270,6 +270,7 @@
                        ("BYTE", "FatesLV", 1),
                        ("BYTE", "NeedStarTotal", 0),
                        ("BYTE", "NeedHeroCnt", 0),
                        ("BYTE", "NeedQuality", 0),
                        ),
                "PlayerAttr":(
@@ -2553,7 +2554,8 @@
    def GetFatesQuality(self): return self.attrTuple[0] # 宿缘品质 BYTE
    def GetFatesLV(self): return self.attrTuple[1] # 宿缘等级 BYTE
    def GetNeedStarTotal(self): return self.attrTuple[2] #  升到该级所需总星数 BYTE
    def GetNeedHeroCnt(self): return self.attrTuple[3] #  所需品质武将数 BYTE
    def GetNeedHeroCnt(self): return self.attrTuple[3] #  所需品质武将数 BYTE
    def GetNeedQuality(self): return self.attrTuple[4] #  所需武将品质 BYTE
# 属性条目表
class IPY_PlayerAttr():
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHero.py
@@ -1607,6 +1607,7 @@
        return
    needStarTotal = qualityLVIpyData.GetNeedStarTotal()
    needHeroCnt = qualityLVIpyData.GetNeedHeroCnt()
    needQuality = qualityLVIpyData.GetNeedQuality()
    
    costItemList = []
    heroStarDict = {}
@@ -1620,7 +1621,7 @@
        
        # 材料卡
        if index in useIndexList:
            if __checkHeroFatesLVUPItem(olPlayer, fatesQuality, index, heroItem, heroID):
            if __checkHeroFatesLVUPItem(olPlayer, needQuality, index, heroItem, heroID):
                costItemList.append(heroItem)
                
        if heroID not in heroIDList:
@@ -1651,15 +1652,15 @@
    RefreshLordAttr(curPlayer) # 宿缘
    return
def __checkHeroFatesLVUPItem(olPlayer, fatesQuality, itemIndex, heroItem, heroID):
def __checkHeroFatesLVUPItem(olPlayer, needQuality, itemIndex, heroItem, heroID):
    ## 检查宿缘材料卡可否使用
    heroIpyData = IpyGameDataPY.GetIpyGameData("Hero", heroID)
    if not heroIpyData:
        return
    
    quality = heroIpyData.GetQuality()
    if quality != fatesQuality:
        GameWorld.DebugLog("    与宿缘品质不同的卡无法使用: itemIndex=%s,heroID=%s,quality=%s != %s" % (itemIndex, heroID, quality, fatesQuality))
    if quality != needQuality:
        GameWorld.DebugLog("    与宿缘所需品质不同的卡无法使用: itemIndex=%s,heroID=%s,quality=%s != %s" % (itemIndex, heroID, quality, needQuality))
        return
    
    #未生效、未上阵、未锁定、未进行过升级、突破、升星、觉醒