From 726517b2002ec6dd46e07f89c10fdfe0274243af Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期四, 04 九月 2025 19:47:26 +0800 Subject: [PATCH] 129 【战斗】战斗系统-服务端(修复buff报错;) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_MainLevel.py | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 46 insertions(+), 0 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_MainLevel.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_MainLevel.py index fba8115..cef5c8b 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_MainLevel.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_MainLevel.py @@ -17,6 +17,7 @@ import ChConfig import GameWorld +import TurnAttack import ShareDefine import IpyGameDataPY import PlayerControl @@ -408,3 +409,48 @@ clientPack.Count = len(clientPack.DropBootyList) NetPackCommon.SendFakePack(curPlayer, clientPack) return + +def OnTurnFightOver(curPlayer, turnFight, mapID, funcLineID, overMsg): + ## 回合战斗结束 + + if not curPlayer: + return + + #winFaction = turnFight.winFaction + isWin = turnFight.isWin + + playerID = curPlayer.GetPlayerID() + mainFightMgr = TurnAttack.GetMainFightMgr(curPlayer) + chapterID, levelNum, wave = PlayerControl.GetMainLevelNowInfo(curPlayer) + + if not isWin: + nextWave = max(1, wave - 1) + nowValue = PlayerControl.SetMainLevelNowInfo(curPlayer, chapterID, levelNum, nextWave) + GameWorld.DebugLog("主线小怪战斗失败,降一波! chapterID=%s,levelNum=%s,wave=%s,nextWave=%s,nowValue=%s" + % (chapterID, levelNum, wave, nextWave, nowValue), playerID) + return + + if turnFight.haveNextLineup(): + GameWorld.DebugLog("主线小怪战斗胜利,有下一小队! chapterID=%s,levelNum=%s,wave=%s" % (chapterID, levelNum, wave), playerID) + return + + # 获胜过波 + if wave < mainFightMgr.waveMax: + nextWave = min(mainFightMgr.waveMax, wave + 1) + nowValue = PlayerControl.SetMainLevelNowInfo(curPlayer, chapterID, levelNum, nextWave) + GameWorld.DebugLog("主线小怪波战斗胜利,下一波! chapterID=%s,levelNum=%s,wave=%s,nextWave=%s,nowValue=%s" + % (chapterID, levelNum, wave, nextWave, nowValue), playerID) + else: + GameWorld.DebugLog("主线小怪波战斗胜利,最后一波循环刷! chapterID=%s,levelNum=%s,wave=%s" % (chapterID, levelNum, wave), playerID) + + # 小怪可能会退波,所以只在有超过已过关卡进度时才更新值 + hisPassValue = PlayerControl.GetMainLevelPassValue(curPlayer) + curPassValue = PlayerControl.ComMainLevelValue(chapterID, levelNum, wave) + if curPassValue > hisPassValue: + GameWorld.DebugLog("更新当前过关进度! curPassValue=%s,hisPassValue=%s" % (curPassValue, hisPassValue), playerID) + PlayerControl.SetMainLevelPassValue(curPlayer, curPassValue) + else: + GameWorld.DebugLog("未超过当前过关进度,不更新! curPassValue=%s <= hisPassValue=%s" % (curPassValue, hisPassValue), playerID) + + return + -- Gitblit v1.8.0