| | |
| | | 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
|
| | |
| | | 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]])
|