From b3b1e0603fdd1340cdaf0eb12350fe1f9cb23443 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 09 二月 2023 17:55:14 +0800
Subject: [PATCH] 9762 【BT8】【后端】藏宝阁(9767 【BT8】新增古宝特效效果) 冲突 yn_1.0.1

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChEquip.py |   69 ++++++++++++++++++++++------------
 1 files changed, 45 insertions(+), 24 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChEquip.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChEquip.py
index 138086c..510ee42 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChEquip.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChEquip.py
@@ -876,19 +876,20 @@
     allEquipBaseAttrDict = {} # 所有装备基础属性 {attrID:value, ...}
     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,15 +989,18 @@
         
         #物品强化属性
         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))
 #    GameWorld.DebugLog("    强化循环属性: %s" % (allAttrListPlus))
@@ -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)

--
Gitblit v1.8.0