From 063c37a60dfad1fad8e31ee235e0d69c3ae35481 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 12 一月 2023 17:12:08 +0800
Subject: [PATCH] 9762 【BT8】【后端】藏宝阁(古宝特殊效果属性支持)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHorse.py |   26 +++++++++++++++++++++++++-
 1 files changed, 25 insertions(+), 1 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHorse.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHorse.py
index 926e4fd..ca0e5b0 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHorse.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHorse.py
@@ -404,6 +404,8 @@
     allAttrListSkin = [{} for _ in range(4)]
     allAttrListTrain = [{} for _ in range(4)]
     
+    customAttrDictSkin = {}
+    
     horseSpeed = 0 # 坐骑功能增加的速度值,骑乘时才有效果
     horseLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HorserLV)
     # 等阶培养属性
@@ -436,6 +438,7 @@
         
     # 幻化属性
     initFPAdd = 0 #初始战力
+    horseSkinQualityAttrInfo = {}
     for index in xrange(ipyDataMgr.GetHorseSkinPlusCount()):
         skinPlusIpyData = ipyDataMgr.GetHorseSkinPlusByIndex(index)
         if not CheckHorseSkinState(curPlayer, skinPlusIpyData):
@@ -459,6 +462,17 @@
             for attrID, attrValue in skinIpyData.GetAttrInfo().items():
                 PlayerControl.CalcAttrDict_Type(attrID, attrValue, allAttrListSkin)
                 
+        hIpyData = IpyGameDataPY.GetIpyGameData("Horse", horseID)
+        if hIpyData:
+            quality = hIpyData.GetQuality()
+            if quality not in horseSkinQualityAttrInfo:
+                horseSkinQualityAttrInfo[quality] = {}
+            qualityAttrDict = horseSkinQualityAttrInfo[quality]
+            for i, attrID in enumerate(attrTypeList):
+                attrValue = attrValueList[i]
+                qualityAttrDict[attrID] = qualityAttrDict.get(attrID, 0) + attrValue
+    customAttrDictSkin["horseSkinQualityAttrInfo"] = horseSkinQualityAttrInfo
+    
     # 新培养属性
     for index in xrange(ipyDataMgr.GetHorseTrainCount()):
         trainIpyData = ipyDataMgr.GetHorseTrainByIndex(index)
@@ -507,10 +521,20 @@
     # 保存计算值
     PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_Horse, allAttrList)
     PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_HorseSoul, allAttrListHorseSoul)
-    PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_HorseSkin, allAttrListSkin)
+    PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_HorseSkin, allAttrListSkin, customAttrDict=customAttrDictSkin)
     PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_HorseTarin, allAttrListTrain)
     return
 
+def GetHorseSkinActCount(curPlayer):
+    horseSkinActCount = 0
+    ipyDataMgr = IpyGameDataPY.IPY_Data()
+    for index in xrange(ipyDataMgr.GetHorseSkinPlusCount()):
+        skinPlusIpyData = ipyDataMgr.GetHorseSkinPlusByIndex(index)
+        if not CheckHorseSkinState(curPlayer, skinPlusIpyData):
+            continue
+        horseSkinActCount += 1
+    return horseSkinActCount
+
 #// A5 27 坐骑提升 #tagCMHorseUp
 #
 #struct    tagCMHorseUp

--
Gitblit v1.8.0