From c314c46725f1e5c090d655f1341c11886afb53a9 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 29 四月 2025 17:07:25 +0800
Subject: [PATCH] 10367 【越南】【英语】【BT】【砍树】仙盟攻城战-服务端(大本营单次批量捐献大量经验支持连续升级;)

---
 ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossFamilyGCZ.py |   25 ++++++++++++++-----------
 1 files changed, 14 insertions(+), 11 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossFamilyGCZ.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossFamilyGCZ.py
index 9f8fc27..58e6e9c 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossFamilyGCZ.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossFamilyGCZ.py
@@ -352,26 +352,29 @@
         updCampLV = campLV
         
         # 满级了也不限制捐献,让玩家可以继续消耗多余的道具
-        campIpyData = IpyGameDataPY.GetIpyGameData("CrossActFamilyGCZCampLV", campLV)
-        if campIpyData and campIpyData.GetLVUPNeedExp():
-            lvupNeedExp = campIpyData.GetLVUPNeedExp()
-            if updCampExp >= lvupNeedExp and IpyGameDataPY.GetIpyGameDataNotLog("CrossActFamilyGCZCampLV", campLV + 1):
-                updCampExp -= lvupNeedExp
-                updCampLV = campLV + 1
-        
+        campIpyData = IpyGameDataPY.GetIpyGameData("CrossActFamilyGCZCampLV", updCampLV)
+        lvupNeedExp = campIpyData.GetLVUPNeedExp() if campIpyData else 0
+        nextIpyData = IpyGameDataPY.GetIpyGameDataNotLog("CrossActFamilyGCZCampLV", updCampLV + 1)
+        GameWorld.DebugLog("增加大本营经验: familyID=%s,playerID=%s,addCampExp=%s,campLV-Exp=%s-%s,updLV-Exp=%s-%s,lvupNeedExp=%s" 
+                           % (self.familyID, playerID, addCampExp, campLV, campExp, updCampLV, updCampExp, lvupNeedExp))
+        while lvupNeedExp > 0 and updCampExp >= lvupNeedExp and nextIpyData:
+            updCampLV += 1
+            updCampExp -= lvupNeedExp
+            campIpyData = IpyGameDataPY.GetIpyGameData("CrossActFamilyGCZCampLV", updCampLV)
+            lvupNeedExp = campIpyData.GetLVUPNeedExp() if campIpyData else 0
+            nextIpyData = IpyGameDataPY.GetIpyGameDataNotLog("CrossActFamilyGCZCampLV", updCampLV + 1)
+            GameWorld.DebugLog("    大本营升级: updCampLV=%s,updCampExp=%s,lvupNeedExp=%s" % (updCampLV, updCampExp, lvupNeedExp))
+            
         self.campLV = updCampLV
         self.campExp = updCampExp
         self.memAddCampExpInfo[playerID] = self.memAddCampExpInfo.get(playerID, 0) + addCampExp
-        
-        GameWorld.DebugLog("增加大本营经验: familyID=%s,playerID=%s,addCampExp=%s,campLV-Exp=%s-%s,updLV-Exp=%s-%s,playerAddExpTotal=%s" 
-                           % (self.familyID, playerID, addCampExp, campLV, campExp, updCampLV, updCampExp, self.memAddCampExpInfo[playerID]))
         
         # 升级了
         defMemIDList = [] # 加经验默认不通知防守成员属性
         isLVUP = False
         if campLV != updCampLV:
             isLVUP = True
-            GameWorld.DebugLog("大本营升级了! familyID=%s,campLV=%s to %s" % (self.familyID, campLV, updCampLV))
+            GameWorld.DebugLog("大本营等级变更! familyID=%s,campLV=%s to %s" % (self.familyID, campLV, updCampLV))
             if self.RefreshFamilyAttr(False):
                 defMemIDList = None # 升级后成功刷成员属性后,额外附带所有防守成员信息,战斗阶段属性是锁定的
                 

--
Gitblit v1.8.0