From 11692fc9b47b4fc2dd079a2e019d980ff67d1003 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 17 三月 2026 19:57:53 +0800
Subject: [PATCH] 541 【幻境阁】新增称号加成效果-服务端(废弃红颜额外返还字段,统一使用称号额外返还;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerOnline.py |   19 ++++++++++++++++---
 1 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerOnline.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerOnline.py
index 2bedd38..aaf5e53 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerOnline.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerOnline.py
@@ -27,6 +27,7 @@
 import FormulaControl
 import PlayerPrestigeSys
 import GameLogic_Dingjunge
+import OpenServerActivity
 import PlayerMingge
 import PlayerBeauty
 import PlayerHorse
@@ -34,7 +35,6 @@
 import PlayerHero
 import PlayerHJG
 import GameWorld
-import ChPlayer
 import ChConfig
 import ChEquip
 
@@ -94,6 +94,7 @@
         self._effectiveCardDict[heroID] = [cardAddPer, itemIndex, inThis]
         return
         
+    def GetEffectiveCardDict(self): return self._effectiveCardDict
     def SetEffectiveCardDict(self, effectiveCardDict): self._effectiveCardDict = effectiveCardDict
     def GetEffCardAddPer(self):
         effCardAddPer = 0
@@ -234,6 +235,11 @@
     def GetCalcSpecInfo(self, calcIndex, presetID=0):
         calcKey = (calcIndex, presetID) if presetID else calcIndex
         return self._calcSpecEffDict.get(calcKey, {})
+    def SetCalcSpecInfo(self, calcKey, specEffInfo, presetID=0):
+        # @param calcKey: 与calcIndex公用,只是使用其他自定义key,一般用于同个属性功能点,但是又需要区分不同的子功能点时可用
+        calcKey = (calcKey, presetID) if presetID else calcKey
+        self._calcSpecEffDict[calcKey] = specEffInfo
+        return
     def GetCalcAttr(self, calcIndex, presetID=0):
         calcKey = (calcIndex, presetID) if presetID else calcIndex
         return self._calcAttrDict.get(calcKey, {})
@@ -619,6 +625,7 @@
     for syncItem in syncItemDict.values():
         syncItem.Sync_Item()
         
+    OpenServerActivity.UpdOSA_HeroTrainBillboard(curPlayer) # 重载生效卡
     return
 
 def getHeroCardAddPer(heroItem):
@@ -811,10 +818,16 @@
         heroSelfAttrInfo[heroID] = selfAttrDict
         
         # 时装属性
+        attrSkinID = 0
+        attrSkinIndex = heroItem.GetUserAttr(ShareDefine.Def_IudetHeroSkinAttr)
+        if attrSkinIndex < 0 or attrSkinIndex >= len(skinIDList):
+            attrSkinID = skinIDList[0]
+        elif skinIDList:
+            attrSkinID = skinIDList[attrSkinIndex]
         heroSkinAttrDict = {}
-        skinIpyData = IpyGameDataPY.GetIpyGameDataNotLog("HeroSkinAttr", skinID)
+        skinIpyData = IpyGameDataPY.GetIpyGameDataNotLog("HeroSkinAttr", attrSkinID)
         if skinIpyData:
-            skinStar = PlayerHero.GetHeroSkinStar(curPlayer, skinID)
+            skinStar = PlayerHero.GetHeroSkinStar(curPlayer, attrSkinID)
             wearAttrIDList = skinIpyData.GetWearAttrIDList()
             wearAttrValueList = skinIpyData.GetWearAttrValueList()
             wearAttrPerStarAddList = skinIpyData.GetWearAttrPerStarAddList()

--
Gitblit v1.8.0