From 8b4c8fa8a2e3d00c231ac6d2c08bcb0a735d52f2 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 13 三月 2026 17:30:57 +0800
Subject: [PATCH] 16 卡牌服务端(同步中心数据增加ClientVersion信息;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerOnline.py |   21 +++++++++++++++++----
 1 files changed, 17 insertions(+), 4 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 ae38c35..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):
@@ -636,7 +643,7 @@
     star = heroItem.GetUserAttr(ShareDefine.Def_IudetHeroStar)
     breakLV = heroItem.GetUserAttr(ShareDefine.Def_IudetHeroBreakLV)
     
-    starMax = PlayerHero.GetHeroStarMax(heroItem)
+    starMax = PlayerHero.GetHeroStarMax(heroID, heroItem)
     addPer = qualityIpyData.GetInitAddPer()
     addPer += qualityIpyData.GetLVAddPer() * max(0, heroLV - 1)
     addPer += qualityIpyData.GetBreakLVAddPer() * breakLV
@@ -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