ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py
@@ -75,6 +75,10 @@
        self.beautyObjIDDict = {} # 红颜战斗单位 {位置编号:batObjID, ...}
        self.actionNum = ActionNumStart # 行动位置,从1开始
        self.totalHurt = 0 # 阵容总输出
        #特殊
        self.bossID = 0
        self.bossPosView = 0
        return
    
    def getPlayerID(self): return self.turnFight.playerID # 发起的玩家ID
@@ -88,6 +92,8 @@
        self.ownerID = lineupInfo.get("PlayerID", 0) # 阵容所属的玩家ID
        self.shapeType = lineupInfo.get("ShapeType", 0)
        self.fightPower = lineupInfo.get("FightPower", 0)
        self.bossID = lineupInfo.get("BossID", 0)
        self.bossPosView = lineupInfo.get("BossPosView", 0)
        SummonLineupObjs(self, self.faction, self.num, lineupInfo, self.getPlayerID())
        return
    
@@ -384,7 +390,10 @@
                    tfObj.MaxHP = batObj.GetMaxHP() % ChConfig.Def_PerPointValue
                    tfObj.MaxHPEx = batObj.GetMaxHP() / ChConfig.Def_PerPointValue
                    tfObj.LV = batObj.GetLV()
                    tfObj.PosNum = posNum
                    if batLineup.bossPosView and batLineup.bossID == batObj.GetNPCID():
                        tfObj.PosNum = batLineup.bossPosView
                    else:
                        tfObj.PosNum = posNum
                    tfObj.AngreXP = batObj.GetXP()
                    tfLineup.ObjList.append(tfObj)
                tfLineup.ObjCnt = len(tfLineup.ObjList)
@@ -600,9 +609,11 @@
    ipyData = IpyGameDataPY.GetIpyGameData("NPCLineup", lineupID)
    if not ipyData:
        return {}
    bossID = ipyData.GetBossID()
    bossPosView = ipyData.GetBossPosView()
    
    heroDict = {}
    for posNum in range(1, 1 + 10):
    for posNum in range(1, 1 + 6):
        if not hasattr(ipyData, "GetPosNPCID%s" % posNum):
            break
        npcID = getattr(ipyData, "GetPosNPCID%s" % posNum)()
@@ -613,7 +624,7 @@
            continue
        heroDict[str(posNum)] = battleDict
        
    lineupInfo = {"NPCLineupID":lineupID, "Hero":heroDict}
    lineupInfo = {"NPCLineupID":lineupID, "Hero":heroDict, "BossID":bossID, "BossPosView":bossPosView}
    return lineupInfo
def GetNPCBattleDict(lineupIpyData, npcID, strongerLV=0, difficulty=0):
@@ -935,7 +946,8 @@
    
    # 玩家
    if tagType == 1:
        OnTurnFightVSPlayer(curPlayer, mapID, funcLineID, atkLineupID, defLineupID, tagID)
        if not OnTurnFightVSPlayer(curPlayer, mapID, funcLineID, atkLineupID, defLineupID, tagID):
            return
        
    # NPC
    else:
@@ -950,9 +962,10 @@
            if not ret:
                return
            npcLineupIDList, strongerLV, difficulty = ret
        OnTurnFightVSNPC(curPlayer, mapID, funcLineID, atkLineupID, npcLineupIDList, strongerLV, difficulty)
        if not OnTurnFightVSNPC(curPlayer, mapID, funcLineID, atkLineupID, npcLineupIDList, strongerLV, difficulty):
            return
        
    return
    return True
def OnTurnFightVSNPC(curPlayer, mapID, funcLineID, atkLineupID, npcLineupIDList, strongerLV, difficulty):
    playerID = curPlayer.GetPlayerID()
@@ -999,7 +1012,7 @@
    PlayerOnline.GetOnlinePlayer(curPlayer).SetLastBatBuffer(guid, turnFight.batBuffer)
    SyncTurnFightReport(curPlayer, guid, turnFight.batBuffer)
    tfMgr.delTurnFight(guid)
    return
    return True
def OnTurnFightVSPlayer(curPlayer, mapID, funcLineID, atkLineupID, defLineupID, tagPlayerID):
    playerID = curPlayer.GetPlayerID()
@@ -1037,7 +1050,7 @@
    PlayerOnline.GetOnlinePlayer(curPlayer).SetLastBatBuffer(guid, turnFight.batBuffer)
    SyncTurnFightReport(curPlayer, guid, turnFight.batBuffer)
    tfMgr.delTurnFight(guid)
    return
    return True
def GetTurnMax(mapID):
    if mapID == ChConfig.Def_FBMapID_Main:
@@ -1396,7 +1409,6 @@
def TurnFightPerTurnBigStart(turnFight, turnNum):
    ## 大回合开始时
    
    batObjMgr = BattleObj.GetBatObjMgr()
    for faction, num in turnFight.actionSortList:
        GameWorld.DebugLog("大回合开始逻辑: turnNum=%s,faction=%s, num=%s" % (turnNum, faction, num))
@@ -1659,7 +1671,7 @@
    
    # 非主线的PVE目标怪物
    if npcID and curPlayer and turnFight.isFBMap() and gameObj.GetFaction() != ChConfig.Def_FactionA:
        if not FBLogic.OnFBNPCKilledBefore(curPlayer, turnFight, gameObj, killer):
        if not FBLogic.OnFBNPCKilledBefore(curPlayer, turnFight, gameObj, killer, useSkill):
            return
        
    objID = gameObj.GetID()