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