9762 【BT8】【后端】藏宝阁(9767 【BT8】新增古宝特效效果) 冲突 yn_1.0.1
1个文件已修改
65 ■■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChEquip.py 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChEquip.py
@@ -877,18 +877,19 @@
    baseEquipBaseAttrDict = {} # 基础装备基础属性{attrID:value, ...}
    equipBaseAttrDict = {} # 装备基础属性 {装备位:{attrID:value, ...}, ...}
    
    equipColorDict = {} # 装备品质信息 {装备位:itemColor, ...}
    allAttrListEquip = [{} for _ in range(4)]  # 装备属性
    equip_addEquipBaseAttrPerList = [{}, {}, {}] # 装备功能点对装备基础的加成信息 [所有部位, 基础部位, 指定部位]
    baseAttrDictStar = {}
    baseAttrDictStar, totalStarLV = {}, 0
    allAttrListStar = [{} for _ in range(4)]  # 升星属性
    star_addEquipBaseAttrPerList = [{}, {}, {}] # 升星功能点对装备基础的加成信息 [所有部位, 基础部位, 指定部位]
    baseAttrDictPlus = {}
    baseAttrDictPlus, totalPlusLV = {}, 0
    allAttrListPlus = [{} for _ in range(4)]  # 强化属性
    plus_addEquipBaseAttrPerList = [{}, {}, {}] # 强化功能点对装备基础的加成信息 [所有部位, 基础部位, 指定部位]
    baseAttrDictStone = {}
    baseAttrDictStone, totalStoneLV = {}, 0
    allAttrListStone = [{} for _ in range(4)]  # 宝石属性
    #stone_addEquipBaseAttrPerList = [{}, {}, {}] # 宝石功能点对装备基础的加成信息 [所有部位, 基础部位, 指定部位]
    baseAttrDictWash = {}
    baseAttrDictWash, totalWashLV = {}, 0
    allAttrListWash = [{} for _ in range(4)]  # 洗练属性
    #wash_addEquipBaseAttrPerList = [{}, {}, {}] # 洗练功能点对装备基础的加成信息 [所有部位, 基础部位, 指定部位]
    
@@ -920,6 +921,9 @@
        #equipPlaceList.append(equipIndex)
        equipScoreTotal += ItemCommon.GetEquipGearScore(curEquip)
        
        itemColor = curEquip.GetItemColor()
        equipColorDict[equipPlace] = itemColor
        baseAttrDict = {} # 装备位基础属性: 物品表 + 星级基础
        isBaseEquip = equipPlace in ChConfig.EquipPlace_Base
        
@@ -947,6 +951,7 @@
        #星数属性
        equipPartStar = GetEquipPartStarByRank(curPlayer, equipIndex, curEquip) # 生效的星数
        if equipPartStar:
            totalStarLV += equipPartStar
            #GameWorld.DebugLog("    星级属性: classLV=%s, equipPlace=%s, equipPartStar=%s" % (classLV, equipPlace, equipPartStar))
            ipyData = IpyGameDataPY.GetIpyGameData('EquipStarUp', classLV, equipPlace, equipPartStar)
            starBaseAttrDict = {} if not ipyData else ipyData.GetBaseAttrInfo() # 星级基础
@@ -984,14 +989,17 @@
        
        #物品强化属性
        plusLV = __CalcAttr_ItemPlus(curPlayer, curEquip, packType, equipIndex, baseAttrDictPlus, allAttrListPlus, plus_addEquipBaseAttrPerList)
        totalPlusLV += plusLV
        if isBaseEquip:
            basePlusLVMin = plusLV if basePlusLVMin == None else min(basePlusLVMin, plusLV)
            
        #计算装备宝石加成
        CalcEquipStone_Effect(curPlayer, equipIndex, baseAttrDictStone, allAttrListStone)
        gemLVList = CalcEquipStone_Effect(curPlayer, equipIndex, baseAttrDictStone, allAttrListStone)
        totalStoneLV += (sum(gemLVList) if gemLVList else 0)
        
        #洗练属性
        Operate_EquipWash.CalcAttr_EquipWash(curPlayer, equipIndex, equipPlace, baseAttrDictWash, allAttrListWash)
        washLV = Operate_EquipWash.CalcAttr_EquipWash(curPlayer, equipIndex, equipPlace, baseAttrDictWash, allAttrListWash)
        totalWashLV += washLV
    
#    GameWorld.DebugLog("    装备循环属性: %s" % (allAttrListEquip))
#    GameWorld.DebugLog("    升星循环属性: %s" % (allAttrListStar))
@@ -1029,9 +1037,13 @@
    if playerID not in PyGameData.g_playerEquipPartAttrDict:
        PyGameData.g_playerEquipPartAttrDict[playerID] = {}
    equipPartAttrDict = PyGameData.g_playerEquipPartAttrDict[playerID]
    equipPartAttrDict[classLV] = [equipFightPowerEx, allAttrListEquip, insideAttrDictEquip, baseAttrDictStar, allAttrListStar, insideAttrDictStar,
                                  baseAttrDictPlus, allAttrListPlus, insideAttrDictPlus, baseAttrDictStone, allAttrListStone, insideAttrDictStone,
                                  baseAttrDictWash, allAttrListWash, insideAttrDictWash]
    equipPartAttrDict[classLV] = [equipFightPowerEx,
                                  allAttrListEquip, insideAttrDictEquip, equipColorDict,
                                  baseAttrDictStar, allAttrListStar, insideAttrDictStar, totalStarLV,
                                  baseAttrDictPlus, allAttrListPlus, insideAttrDictPlus, totalPlusLV,
                                  baseAttrDictStone, allAttrListStone, insideAttrDictStone, totalStoneLV,
                                  baseAttrDictWash, allAttrListWash, insideAttrDictWash, totalWashLV,
                                  ]
    
#    GameWorld.DebugLog("    ----- 累加所有阶装备位养成属性")
#    GameWorld.DebugLog("    本阶装备战力: equipScoreTotal=%s,equipFightPowerEx=%s" % (equipScoreTotal, equipFightPowerEx))
@@ -1042,15 +1054,18 @@
#    GameWorld.DebugLog("    本阶洗练属性: %s, 内部加成=%s" % (allAttrListWash, insideAttrDictWash))
    
    allClassEquipFightPowerEx = 0
    allClassAttrListEquip, allClassInsideAttrDictEquip = [{} for _ in range(4)], {}
    allClassAttrListStar, allClassInsideAttrDictStar, customAttrDictStar, classBaseAttrDictStar = [{} for _ in range(4)], {}, {}, {}
    allClassAttrListPlus, allClassInsideAttrDictPlus, customAttrDictPlus, classBaseAttrDictPlus = [{} for _ in range(4)], {}, {}, {}
    allClassAttrListStone, allClassInsideAttrDictStone, customAttrDictStone, classBaseAttrDictStone = [{} for _ in range(4)], {}, {}, {}
    allClassAttrListWash, allClassInsideAttrDictWash, customAttrDictWash, classBaseAttrDictWash = [{} for _ in range(4)], {}, {}, {}
    allClassAttrListEquip, allClassInsideAttrDictEquip, classEquipColorDict = [{} for _ in range(4)], {}, {}
    allClassAttrListStar, allClassInsideAttrDictStar, classBaseAttrDictStar, classStarLVDict = [{} for _ in range(4)], {}, {}, {}
    allClassAttrListPlus, allClassInsideAttrDictPlus, classBaseAttrDictPlus, classPlusLVDict = [{} for _ in range(4)], {}, {}, {}
    allClassAttrListStone, allClassInsideAttrDictStone, classBaseAttrDictStone, classStoneLVDict = [{} for _ in range(4)], {}, {}, {}
    allClassAttrListWash, allClassInsideAttrDictWash, classBaseAttrDictWash, classWashLVDict = [{} for _ in range(4)], {}, {}, {}
    for classLV, attrList in equipPartAttrDict.items():
        equipFightPowerEx, allAttrListEquip, insideAttrDictEquip, baseAttrDictStar, allAttrListStar, insideAttrDictStar, \
            baseAttrDictPlus, allAttrListPlus, insideAttrDictPlus, baseAttrDictStone, allAttrListStone, insideAttrDictStone, \
            baseAttrDictWash, allAttrListWash, insideAttrDictWash = attrList
        equipFightPowerEx, \
        allAttrListEquip, insideAttrDictEquip, equipColorDict, \
        baseAttrDictStar, allAttrListStar, insideAttrDictStar, totalStarLV, \
        baseAttrDictPlus, allAttrListPlus, insideAttrDictPlus, totalPlusLV, \
        baseAttrDictStone, allAttrListStone, insideAttrDictStone, totalStoneLV, \
        baseAttrDictWash, allAttrListWash, insideAttrDictWash, totalWashLV = attrList
        #GameWorld.DebugLog("    classLV=%s, %s" % (classLV, attrList))
        allClassEquipFightPowerEx += equipFightPowerEx
        for i in xrange(4):
@@ -1065,15 +1080,21 @@
        PlayerControl.AddAttrDictValue(allClassInsideAttrDictStone, insideAttrDictStone)
        PlayerControl.AddAttrDictValue(allClassInsideAttrDictWash, insideAttrDictWash)
        
        classEquipColorDict[classLV] = equipColorDict
        classBaseAttrDictStar[classLV] = baseAttrDictStar
        classBaseAttrDictPlus[classLV] = baseAttrDictPlus
        classBaseAttrDictStone[classLV] = baseAttrDictStone
        classBaseAttrDictWash[classLV] = baseAttrDictWash
        classStarLVDict[classLV] = totalStarLV
        classPlusLVDict[classLV] = totalPlusLV
        classStoneLVDict[classLV] = totalStoneLV
        classWashLVDict[classLV] = totalWashLV
        
    customAttrDictStar["classBaseAttrDictStar"] = classBaseAttrDictStar
    customAttrDictPlus["classBaseAttrDictPlus"] = classBaseAttrDictPlus
    customAttrDictStone["classBaseAttrDictStone"] = classBaseAttrDictStone
    customAttrDictWash["classBaseAttrDictWash"] = classBaseAttrDictWash
    customAttrDictEquip = {"classEquipColorDict":classEquipColorDict}
    customAttrDictStar = {"classBaseAttrDictStar":classBaseAttrDictStar, "classStarLVDict":classStarLVDict}
    customAttrDictPlus = {"classBaseAttrDictPlus":classBaseAttrDictPlus, "classPlusLVDict":classPlusLVDict}
    customAttrDictStone = {"classBaseAttrDictStone":classBaseAttrDictStone, "classStoneLVDict":classStoneLVDict}
    customAttrDictWash = {"classBaseAttrDictWash":classBaseAttrDictWash, "classWashLVDict":classWashLVDict}
    
#    GameWorld.DebugLog("    所有阶装备战力: %s" % (allClassEquipFightPowerEx))
#    GameWorld.DebugLog("    所有阶装备属性: %s, 内部加成=%s" % (allClassAttrListEquip, allClassInsideAttrDictEquip))
@@ -1082,7 +1103,7 @@
#    GameWorld.DebugLog("    所有阶宝石属性: %s, 内部加成=%s" % (allClassAttrListStone, allClassInsideAttrDictStone))
#    GameWorld.DebugLog("    所有阶洗练属性: %s, 内部加成=%s" % (allClassAttrListWash, allClassInsideAttrDictWash))
    curPlayer.SetDict(ChConfig.Def_PlayerKey_MFPEx % ShareDefine.Def_MFPType_Equip, allClassEquipFightPowerEx)
    PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_Equip, allClassAttrListEquip, allClassInsideAttrDictEquip)
    PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_Equip, allClassAttrListEquip, allClassInsideAttrDictEquip, customAttrDict=customAttrDictEquip)
    PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_Star, allClassAttrListStar, allClassInsideAttrDictStar, customAttrDict=customAttrDictStar)
    PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_Plus, allClassAttrListPlus, allClassInsideAttrDictPlus, customAttrDict=customAttrDictPlus)
    PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_Stone, allClassAttrListStone, allClassInsideAttrDictStone, customAttrDict=customAttrDictStone)