From 0a6dda88cc336ddb05f00e2713ce58e79c5a5494 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期一, 10 二月 2025 19:28:57 +0800 Subject: [PATCH] 10263 【越南】【英文】【BT】【砍树】后端支持NPC仿真实玩家战斗和快速战斗(优化系统后台战斗初始化镜像坐标;) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/MirrorAttack.py | 18 +++++++++++++----- 1 files changed, 13 insertions(+), 5 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/MirrorAttack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/MirrorAttack.py index eb8e285..7c6ada0 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/MirrorAttack.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/MirrorAttack.py @@ -624,7 +624,9 @@ battle.isChangeMap = msgInfo.get("isChangeMap", 0) GameWorld.DebugLog("镜像战斗初始化: msgData=%s,packIDList=%s" % (msgData, packDataDict.keys()), battleID) - factionPosList = OnGetMirrorBattlePos(mapID, funcLineID, isSysbg) + factionPosList = OnGetMirrorBattlePos(mapID, funcLineID, isSysbg, curPlayer) + if not factionPosList: + return for faction, batPlayerIDList in enumerate(factionPlayerList, 1): posInfo = factionPosList[faction - 1] factionPosX, factionPosY = posInfo @@ -653,11 +655,17 @@ ClearMirrorBattleByID(battleID) return -def OnGetMirrorBattlePos(mapID, lineID, isSysbg=False): +def OnGetMirrorBattlePos(mapID, lineID, isSysbg=False, curPlayer=None): if isSysbg: - gameMap = GameWorld.GetMap() - posX, posY = gameMap.GetRebornMapX(), gameMap.GetRebornMapY() # 系统战斗默认取当前地图的复活点 - factionPosList = [[posX, posY], [posX + 5, posY]] + if curPlayer: + posX, posY = curPlayer.GetPosX(), curPlayer.GetPosY() + else: + gameMap = GameWorld.GetMap() + posX, posY = gameMap.GetRebornMapX(), gameMap.GetRebornMapY() # 系统战斗默认取当前地图的复活点,需要优化 + if not GameWorld.GetMap().CanMove(posX, posY): + GameWorld.ErrLog("镜像战斗创建坐标异常! posX=%s, posY=%s" % (posX, posY)) + return + factionPosList = [[posX, posY], [posX, posY]] else: factionPosDict = IpyGameDataPY.GetFuncEvalCfg("MirrorAttack", 4, {}) factionPosList = factionPosDict.get(mapID, [[10, 7], [40,37]]) -- Gitblit v1.8.0