From 893793104afc854bd134bc15da4946ec8d639b12 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 08 九月 2025 15:26:56 +0800
Subject: [PATCH] 121 【武将】武将系统-服务端(吞噬升星材料卡仅限制已觉醒的卡,已升级或突破的卡会返还材料;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHero.py |   21 ++++++++++++++++-----
 1 files changed, 16 insertions(+), 5 deletions(-)

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 03ee833..9a2ca8a 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHero.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHero.py
@@ -374,10 +374,9 @@
     if awakeRandCnt:
         GameWorld.ErrLog("武将觉醒解锁天赋未选择,无法升星! itemIndex=%s,heroID=%s" % (itemIndex, heroID), playerID)
         return
-    useBreakLV = useItem.GetUserAttr(ShareDefine.Def_IudetHeroBreakLV)
     useAwakeLV = useItem.GetUserAttr(ShareDefine.Def_IudetHeroAwakeLV)
-    if useBreakLV or useAwakeLV:
-        GameWorld.DebugLog("材料卡突破或觉醒等级不为0暂时无法升星!useBreakLV=%s,useAwakeLV=%s" % (useBreakLV, useAwakeLV), playerID)
+    if useAwakeLV:
+        GameWorld.DebugLog("材料卡觉醒等级不为0暂时无法升星!useAwakeLV=%s" % (useAwakeLV), playerID)
         return
     
     heroIpyData = IpyGameDataPY.GetIpyGameData("Hero", heroID)
@@ -394,10 +393,22 @@
     useStar = useItem.GetUserAttr(ShareDefine.Def_IudetHeroStar)
     addStar = useStar + 1
     updStar = star + addStar
-    GameWorld.DebugLog("武将升星: itemIndex=%s,heroID=%s,star=%s,useStar=%s,addStar=%s,updStar=%s" 
-                       % (itemIndex, heroID, star, useStar, addStar, updStar), playerID)
+    useHeroLV = useItem.GetUserAttr(ShareDefine.Def_IudetHeroLV)
+    useBreakLV = useItem.GetUserAttr(ShareDefine.Def_IudetHeroBreakLV)
+    GameWorld.DebugLog("武将升星: itemIndex=%s,heroID=%s,star=%s,useStar=%s,addStar=%s,updStar=%s,useHeroLV=%s,useBreakLV=%s" 
+                       % (itemIndex, heroID, star, useStar, addStar, updStar, useHeroLV, useBreakLV), playerID)
     ItemCommon.DelItem(curPlayer, useItem, useItem.GetCount(), False, "HeroStarUP")
     DoHeroUpdStar(curPlayer, heroItem, updStar)
+    
+    returnItemDict = {}
+    if useHeroLV > 1:
+        __calcHeroLVReturnitem(quality, useHeroLV, returnItemDict)
+    if useBreakLV:
+        __calcHeroBreakReturnitem(quality, useBreakLV, returnItemDict)
+    if returnItemDict:
+        returnItemList = [[k, v] for k, v in returnItemDict.items()]
+        ItemControler.GivePlayerItemOrMail(curPlayer, returnItemList, event=["HeroStarUP", False, {}])
+        
     return
 
 def GetHeroStarMax(heroItem):

--
Gitblit v1.8.0