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/PlayerHero.py |   47 +++++++++++++++++++++++------------------------
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py     |    8 +++-----
 PySysDB/PySysDBPY.h                                                                      |    3 +--
 3 files changed, 27 insertions(+), 31 deletions(-)

diff --git a/PySysDB/PySysDBPY.h b/PySysDB/PySysDBPY.h
index ca1b02f..6b549b1 100644
--- a/PySysDB/PySysDBPY.h
+++ b/PySysDB/PySysDBPY.h
@@ -235,8 +235,7 @@
 	DWORD		StarAddPer;	// 卡牌每星级加成
 	list		BookActAwardMoney;	// 图鉴激活奖励货币 类型|值
 	list		DismissReturnItems;	// 遣散每星返还道具 [[物品ID,个数], ...]
-	list		BeautyReturnItems;	// 红颜效果返还道具基数 [[物品ID,个数], ...]
-	list		TitleReturnItems;	// 称号效果返还道具基数 [[物品ID,个数], ...]
+	list		ReturnItemsEx;	// 额外返还道具基数 [[物品ID,个数], ...]
 	list		RecommendAwardMoney;	// 阵容推荐激活奖励货币 类型|值
 };
 
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
index b121ca4..f56d528 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -239,8 +239,7 @@
                         ("DWORD", "StarAddPer", 0),
                         ("list", "BookActAwardMoney", 0),
                         ("list", "DismissReturnItems", 0),
-                        ("list", "BeautyReturnItems", 0),
-                        ("list", "TitleReturnItems", 0),
+                        ("list", "ReturnItemsEx", 0),
                         ("list", "RecommendAwardMoney", 0),
                         ),
 
@@ -2054,9 +2053,8 @@
     def GetStarAddPer(self): return self.attrTuple[6] #  卡牌每星级加成 DWORD
     def GetBookActAwardMoney(self): return self.attrTuple[7] #  图鉴激活奖励货币 类型|值 list
     def GetDismissReturnItems(self): return self.attrTuple[8] #  遣散每星返还道具 [[物品ID,个数], ...] list
-    def GetBeautyReturnItems(self): return self.attrTuple[9] #  红颜效果返还道具基数 [[物品ID,个数], ...] list
-    def GetTitleReturnItems(self): return self.attrTuple[10] #  称号效果返还道具基数 [[物品ID,个数], ...] list
-    def GetRecommendAwardMoney(self): return self.attrTuple[11] #  阵容推荐激活奖励货币 类型|值 list
+    def GetReturnItemsEx(self): return self.attrTuple[9] #  额外返还道具基数 [[物品ID,个数], ...] list
+    def GetRecommendAwardMoney(self): return self.attrTuple[10] #  阵容推荐激活奖励货币 类型|值 list
 
 # 武将品质突破表
 class IPY_HeroQualityBreak():
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHero.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHero.py
index b46800b..9aab297 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHero.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHero.py
@@ -1557,32 +1557,31 @@
 def __calcHeroQualityReturnItemEx(curPlayer, qualityIpyData, returnItemExDict):
     ## 其他功能额外返还
     
+    returnItemsEx = qualityIpyData.GetReturnItemsEx()
+    if not returnItemsEx:
+        return
+    
     # 红颜特殊效果: 遣散/吞噬额外返还百分比
-    beautyReturnItems = qualityIpyData.GetBeautyReturnItems()
-    if beautyReturnItems:
-        isBind = ItemControler.GetIsBindValue(srcSign=ChConfig.ItemSrcSign_BeautyEff)
-        retPer = PlayerBeauty.GetBeautyEffInfo(curPlayer, PlayerBeauty.EffType_HeroItemExPer)[0]
-        for itemID, itemCount in beautyReturnItems:
-            if not retPer:
-                break
-            key = (itemID, isBind)
-            retCnt = max(1, int(math.ceil(itemCount * retPer / 100.0)))
-            returnItemExDict[key] = returnItemExDict.get(key, 0) + retCnt
-        GameWorld.DebugLog("    红颜返还: retPer=%s,%s,总%s" % (retPer, beautyReturnItems, returnItemExDict))
-        
+    isBind = ItemControler.GetIsBindValue(srcSign=ChConfig.ItemSrcSign_BeautyEff)
+    retPer = PlayerBeauty.GetBeautyEffInfo(curPlayer, PlayerBeauty.EffType_HeroItemExPer)[0]
+    for itemID, itemCount in returnItemsEx:
+        if not retPer:
+            break
+        key = (itemID, isBind)
+        retCnt = max(1, int(math.ceil(itemCount * retPer / 100.0)))
+        returnItemExDict[key] = returnItemExDict.get(key, 0) + retCnt
+    GameWorld.DebugLog("    红颜返还: retPer=%s,%s,总%s" % (retPer, returnItemsEx, returnItemExDict))
+    
     # 称号特殊效果: 遣散/吞噬额外返还百分比
-    titleReturnItems = qualityIpyData.GetTitleReturnItems()
-    if titleReturnItems:
-        isBind = ItemControler.GetIsBindValue(srcSign=ChConfig.ItemSrcSign_TitleEff)
-        retPer = PlayerHJG.GetTitleEffInfo(curPlayer, PlayerHJG.TitleEff_HeroItemExPer)[0]
-        for itemID, itemCount in titleReturnItems:
-            if not retPer:
-                break
-            key = (itemID, isBind)
-            retCnt = max(1, int(math.ceil(itemCount * retPer / 100.0)))
-            returnItemExDict[key] = returnItemExDict.get(key, 0) + retCnt
-        GameWorld.DebugLog("    称号返还: retPer=%s,%s,总%s" % (retPer, titleReturnItems, returnItemExDict))
-        
+    isBind = ItemControler.GetIsBindValue(srcSign=ChConfig.ItemSrcSign_TitleEff)
+    retPer = PlayerHJG.GetTitleEffInfo(curPlayer, PlayerHJG.TitleEff_HeroItemExPer)[0]
+    for itemID, itemCount in returnItemsEx:
+        if not retPer:
+            break
+        key = (itemID, isBind)
+        retCnt = max(1, int(math.ceil(itemCount * retPer / 100.0)))
+        returnItemExDict[key] = returnItemExDict.get(key, 0) + retCnt
+    GameWorld.DebugLog("    称号返还: retPer=%s,%s,总%s" % (retPer, returnItemsEx, returnItemExDict))
     return
 
 #// B4 12 战斗阵容预设保存 #tagCSHeroPresetSave

--
Gitblit v1.8.0