From edee680110d69fc509142a9bf306c7c3141cfb19 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 03 七月 2025 09:44:40 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(初始战斗防范没有阵容的情况;角色初始章节刷怪兼容;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py |   27 ++++++++++++++++++---------
 1 files changed, 18 insertions(+), 9 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py
index f0c06e5..f0fb744 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py
@@ -583,6 +583,9 @@
         if heroCount >= ShareDefine.LineupObjMax:
             break
         
+    if not heroDict:
+        return {}
+    
     # 主公属性
     lordAttrDict = PlayerControl.GetLordAttr(curPlayer)
     
@@ -783,12 +786,9 @@
     # @param isRestStart: 是否从休息状态重新开始的
     playerID = curPlayer.GetPlayerID()
     chapterID, levelNum, wave = PlayerControl.GetMainLevelNowInfo(curPlayer)
-    if not chapterID:
-        chapterID = 1
-    if not levelNum:
-        levelNum =1
-    if not wave:
-        wave = 1
+    if not chapterID and not levelNum:
+        PlayerControl.SetMainLevelNowInfo(curPlayer, 1, 1, 1)
+        chapterID, levelNum, wave = PlayerControl.GetMainLevelNowInfo(curPlayer)
     GameWorld.DebugLog("请求关卡波战斗: chapterID=%s,levelNum=%s,wave=%s,isRestStart=%s" % (chapterID, levelNum, wave, isRestStart), playerID)
     fightPoint = max(curPlayer.GetFightPoint(), 1)
     if not PlayerControl.HaveMoney(curPlayer, ShareDefine.TYPE_Price_Xiantao, fightPoint):
@@ -824,6 +824,11 @@
     teamNum = 1
     lineupID = waveLineupList[teamNum - 1] # NPC阵容ID
     
+    lineupMainInfo = GetPlayerLineup(curPlayer, ShareDefine.Lineup_Main)
+    if not lineupMainInfo:
+        GameWorld.DebugLog("没有设置主阵容!", playerID)
+        return
+    
     mainFightMgr = GetMainFightMgr(curPlayer)
     mainFightMgr.nextTeam = False
     mainFightMgr.chapterID = chapterID
@@ -840,7 +845,7 @@
     
     turnFight = mainFightMgr.turnFight
     turnFight.setTurn(mapID, funcLineID, turnMax, False, {"teamNum":teamNum, "teamMax":teamMax})
-    turnFight.setFactionLineup(Def_FactionA, {1:GetPlayerLineup(curPlayer, ShareDefine.Lineup_Main)}, True)
+    turnFight.setFactionLineup(Def_FactionA, {1:lineupMainInfo}, True)
     turnFight.setFactionLineup(Def_FactionB, {1:GetNPCLineup(lineupID)})
     turnFight.sortActionQueue()
     turnFight.syncInit()
@@ -893,6 +898,11 @@
     
     wave = waveMax = 1 # 关卡boss固定只有一波
     
+    lineupMainInfo = GetPlayerLineup(curPlayer, ShareDefine.Lineup_Main)
+    if not lineupMainInfo:
+        GameWorld.DebugLog("没有设置主阵容!", playerID)
+        return
+    
     mainFightMgr = GetMainFightMgr(curPlayer)
     mainFightMgr.nextTeam = False
     mainFightMgr.chapterID = chapterID
@@ -909,7 +919,7 @@
     
     turnFight = mainFightMgr.turnFight
     turnFight.setTurn(mapID, funcLineID, turnMax, False, {"teamNum":teamNum, "teamMax":teamMax})
-    turnFight.setFactionLineup(Def_FactionA, {1:GetPlayerLineup(curPlayer, ShareDefine.Lineup_Main)}, True)
+    turnFight.setFactionLineup(Def_FactionA, {1:lineupMainInfo}, True)
     turnFight.setFactionLineup(Def_FactionB, {1:GetNPCLineup(lineupID)})
     turnFight.sortActionQueue()
     turnFight.syncInit()
@@ -931,7 +941,6 @@
             teamNum = mainFightMgr.teamNum = mainFightMgr.teamNum + 1
             GameWorld.DebugLog("开始进入下一小队: teamNum=%s" % teamNum)
             if teamNum < 1 or teamNum > len(mainFightMgr.waveLineupList):
-                GameWorld.DebugLog("111111 teamNum=%s,mainFightMgr.waveLineupList=%s" % (teamNum, mainFightMgr.waveLineupList))
                 return
             lineupID = mainFightMgr.waveLineupList[teamNum - 1] # NPC阵容ID
             GameWorld.DebugLog("teamNum=%s,lineupID=%s" % (teamNum, lineupID))

--
Gitblit v1.8.0