ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGubao.py
@@ -25,7 +25,6 @@
import ItemControler
import PlayerOnline
import ChConfig
import ObjPool
GubaoEffType_GoldRush = 1 # 参与淘金
GubaoEffType_Arena = 2 # 参与演武场
@@ -38,7 +37,7 @@
    return lv, star, layer
def SetGubaoInfo(curPlayer, gubaoID, lv, star, layer):
    ## 特殊效果层*100000 + 等级*100 + 星级
    info = min(layer, 99) * 100000 + min(lv, 999) * 100 + min(star, 99)
    info = min(layer, 9999) * 100000 + min(lv, 999) * 100 + min(star, 99)
    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GubaoInfo % gubaoID, info)
    return
@@ -258,6 +257,8 @@
        if not IsGubaoActivated(curPlayer, gubaoID):
            continue
        
        quality = ipyData.GetGubaoQuality()
        lv, star, layer = GetGubaoInfo(curPlayer, gubaoID)
        gubaoStarDict[gubaoID] = star
        
@@ -276,15 +277,23 @@
        # 特殊属性
        attrID = ipyData.GetSpecAttrID()
        effType = ipyData.GetSpecEffType()
        layerMax = ipyData.GetSpecEffLayerMax()
        SpecAttrValue = ipyData.GetSpecAttrValue()
        SpecAttrPerLVAdd = ipyData.GetSpecAttrPerLVAdd()
        SpecAttrPerStarAdd = ipyData.GetSpecAttrPerStarAdd()
        attrValue = SpecAttrValue + SpecAttrPerLVAdd *  max(lv - 1, 0) + SpecAttrPerStarAdd * star
        if effType: # 有特殊效果类型的
            attrValue *= layer
        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,lv=%s,star=%s,effType=%s,layer=%s,attrID=%s,v=%s,perLV=%s,perStar=%s,attrValue=%s,%s"
                           % (gubaoID, lv, star, effType, layer, attrID, SpecAttrValue, SpecAttrPerLVAdd, SpecAttrPerStarAdd, attrValue, attrDict), playerID)
        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)
        
    # 共鸣
    for index in range(ipyDataMgr.GetGubaoResonanceCount()):
@@ -433,7 +442,7 @@
            # 没有指定时只同步激活的
            continue
        lv, star, layer = GetGubaoInfo(curPlayer, gubaoID)
        gubao = ObjPool.GetPoolMgr().acquire(ChPyNetSendPack.tagMCGubao)
        gubao = ChPyNetSendPack.tagMCGubao()
        gubao.GubaoID = gubaoID
        gubao.GubaoLV = lv
        gubao.GubaoStar = star
@@ -443,7 +452,7 @@
    if not gubaoInfoList:
        return
    
    clientPack = ObjPool.GetPoolMgr().acquire(ChPyNetSendPack.tagMCGubaoInfo)
    clientPack = ChPyNetSendPack.tagMCGubaoInfo()
    clientPack.GubaoInfoList = gubaoInfoList
    clientPack.Count = len(clientPack.GubaoInfoList)
    NetPackCommon.SendFakePack(curPlayer, clientPack)