ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGubao.py
@@ -37,6 +37,7 @@
# 特权效果类型
GubaoPowerType_TravelMultiRate = 1 # 游历双倍奖励概率
GubaoPowerType_InvestMonthAwardPer = 2 # 月卡领取额外奖励
GubaoPowerType_InvestLifeAwardPer = 3 # 永久卡领取额外奖励
def GetGubaoInfo(curPlayer, gubaoID):
    info = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GubaoInfo % gubaoID)
@@ -301,24 +302,25 @@
        
        # 特殊属性
        attrID = ipyData.GetSpecAttrID()
        #effType = ipyData.GetSpecEffType()
        layerMax = ipyData.GetSpecEffLayerMax()
        SpecAttrValue = ipyData.GetSpecAttrValue()
        SpecAttrPerStarAdd = ipyData.GetSpecAttrPerStarAdd()
        specLVAttr = 0
        lvAttrIpyData = IpyGameDataPY.GetIpyGameData("GubaoLVAttr", quality, lv)
        if lvAttrIpyData:
            specAttrIDList = lvAttrIpyData.GetSpecAttrIDList()
            specAttrValueList = lvAttrIpyData.GetSpecAttrValueList()
            for sIndex in range(min(len(specAttrIDList), len(specAttrValueList))):
                if specAttrIDList[sIndex] == attrID:
                    specLVAttr = specAttrValueList[sIndex]
        if not layerMax:
            layer, layerMax = 1, 1 # 无层级限制的默认1层
        attrValue = int((SpecAttrValue + SpecAttrPerStarAdd * star + specLVAttr / float(layerMax)) * layer)
        attrDict[attrID] = attrDict.get(attrID, 0) + attrValue
        #GameWorld.DebugLog("古宝特殊属性! gubaoID=%s,quality=%s,lv=%s,star=%s,effType=%s,layer=%s/%s,attrID=%s,v=%s,perStar=%s,specLVAttr=%s,attrValue=%s,%s"
        #                   % (gubaoID, quality, lv, star, effType, layer, layerMax, attrID, SpecAttrValue, SpecAttrPerStarAdd, specLVAttr, attrValue, attrDict), playerID)
        if attrID:
            effType = ipyData.GetSpecEffType()
            layerMax = ipyData.GetSpecEffLayerMax()
            SpecAttrValue = ipyData.GetSpecAttrValue()
            SpecAttrPerStarAdd = ipyData.GetSpecAttrPerStarAdd()
            specLVAttr = 0
            lvAttrIpyData = IpyGameDataPY.GetIpyGameData("GubaoLVAttr", quality, lv)
            if lvAttrIpyData:
                specAttrIDList = lvAttrIpyData.GetSpecAttrIDList()
                specAttrValueList = lvAttrIpyData.GetSpecAttrValueList()
                for sIndex in range(min(len(specAttrIDList), len(specAttrValueList))):
                    if specAttrIDList[sIndex] == attrID:
                        specLVAttr = specAttrValueList[sIndex]
            if not layerMax or not effType:
                layer, layerMax = 1, 1 # 无层级限制的默认1层
            attrValue = int((SpecAttrValue + SpecAttrPerStarAdd * star + specLVAttr / float(layerMax)) * layer)
            attrDict[attrID] = attrDict.get(attrID, 0) + attrValue
            #GameWorld.DebugLog("古宝特殊属性! gubaoID=%s,quality=%s,lv=%s,star=%s,effType=%s,layer=%s/%s,attrID=%s,v=%s,perStar=%s,specLVAttr=%s,attrValue=%s,%s"
            #                   % (gubaoID, quality, lv, star, effType, layer, layerMax, attrID, SpecAttrValue, SpecAttrPerStarAdd, specLVAttr, attrValue, attrDict), playerID)
        
        # 特权
        powerType = ipyData.GetPowerType()
@@ -337,8 +339,11 @@
        gubaoIDList = ipyData.GetGubaoIDList()
        if not gubaoIDList:
            continue
        starList = [gubaoStarDict.get(gubaoID, 0) for gubaoID in gubaoIDList]
        starList = [gubaoStarDict.get(gubaoID, -1) for gubaoID in gubaoIDList]
        minStar = min(starList) # 共鸣星级,取组合中最低古宝星级
        if minStar < 0:
            #GameWorld.DebugLog("共鸣存在未激活的古宝,无效")
            continue
        
        attrIpyDataList = IpyGameDataPY.GetIpyGameDataList("GubaoResonanceAttr", resonanceID)
        if not attrIpyDataList: