From 41f3b34139ee3e2aecd6e72e04522eca3ca1eb4f Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 10 二月 2025 19:28:00 +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