From 88a9eda1278acaa0b0f66b35e2319d59a3e38eca Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 29 八月 2025 16:03:35 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(修复主线战斗中重登时会自动重新开始战斗bug;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHero.py |   14 +++++++++++---
 1 files changed, 11 insertions(+), 3 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 445c636..134fed7 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHero.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHero.py
@@ -554,11 +554,16 @@
     if not heroIpyData:
         return
     quality = heroIpyData.GetQuality()
+    heroLV = heroItem.GetUserAttr(ShareDefine.Def_IudetHeroLV)
     breakLV = heroItem.GetUserAttr(ShareDefine.Def_IudetHeroBreakLV)
-    GameWorld.DebugLog("请求武将突破: itemIndex=%s,heroID=%s,quality=%s,breakLV=%s" 
-                       % (itemIndex, heroID, quality, breakLV), playerID)
+    GameWorld.DebugLog("请求武将突破: itemIndex=%s,heroID=%s,quality=%s,heroLV=%s,breakLV=%s" 
+                       % (itemIndex, heroID, quality, heroLV, breakLV), playerID)
     ipyData = IpyGameDataPY.GetIpyGameData("HeroQualityBreak", quality, breakLV)
     if not ipyData:
+        return
+    LVMax = ipyData.GetLVMax()
+    if heroLV < LVMax:
+        GameWorld.DebugLog("未满级,无法突破: heroLV=%s < %s" % (heroLV, LVMax), playerID)
         return
     nextBreakLV = breakLV + 1
     if not IpyGameDataPY.GetIpyGameData("HeroQualityBreak", quality, nextBreakLV):
@@ -1134,6 +1139,9 @@
     __calcHeroBreakReturnitem(quality, breakLV, returnItemDict)
     __calcHeroAwakeReturnitem(quality, awakeLV, returnItemDict)
     
+    if moneyType and costMoney and not PlayerControl.PayMoney(curPlayer, moneyType, costMoney, "HeroRebirth"):
+        return
+    
     # 执行重生
     item = heroItem.GetItem()
     item.SetUserAttr(ShareDefine.Def_IudetHeroLV, 1)
@@ -1205,7 +1213,7 @@
 #struct    tagCSHeroDismiss
 #{
 #    tagHead         Head;
-#    BYTE        Count;
+#    WORD        Count;
 #    WORD        ItemIndexList[Count];    // 武将物品所在武将背包位置索引列表
 #};
 def OnHeroDismiss(index, clientData, tick):

--
Gitblit v1.8.0