10263 【越南】【英文】【BT】【砍树】后端支持NPC仿真实玩家战斗和快速战斗(优化系统后台战斗初始化镜像坐标;)
1个文件已修改
18 ■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/MirrorAttack.py 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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]])