From c3bbd3b0263fc6c2127cd9f072f497f46f98758b Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期六, 07 二月 2026 21:43:20 +0800
Subject: [PATCH] 389 流向记录(简化战斗流向记录,只统计出场的武将ID;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DataRecordPack.py    |    4 ++--
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py |   15 +++++++++------
 2 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py
index 6ae0ee6..fb0f5cf 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py
@@ -2206,23 +2206,25 @@
     heroCount = 0
     batObjMgr = BattleObj.GetBatObjMgr()
     statInfo = {}
-    drLineupInfo = {}
+    drHeroIDDict = {}
     for faction in turnFight.factionDict.keys():
         if str(faction) not in statInfo:
             statInfo[str(faction)] = {}
         facStatInfo = statInfo[str(faction)]
-        if str(faction) not in drLineupInfo:
-            drLineupInfo[str(faction)] = {}
-        facDRLineupInfo = drLineupInfo[str(faction)]
+        if str(faction) not in drHeroIDDict:
+            drHeroIDDict[str(faction)] = {}
+        facDRHeroIDDict = drHeroIDDict[str(faction)]
         batFaction = turnFight.getBatFaction(faction)
         batFaction.totalHurt = 0
         for num in batFaction.lineupDict.keys():
             if str(num) not in facStatInfo:
                 facStatInfo[str(num)] = {}
             lineupStatInfo = facStatInfo[str(num)]
+            if str(num) not in facDRHeroIDDict:
+                facDRHeroIDDict[str(num)] = {}
+            posHeroIDDict = facDRHeroIDDict[str(num)]
             batLineup = batFaction.getBatlineup(num)
             batLineup.totalHurt = 0
-            facDRLineupInfo[str(num)] = batLineup.lineupInfo
             GameWorld.DebugLogEx("阵容明细: faction=%s,num=%s", faction, num)
             for posNum, objID in batLineup.getPosObjIDDict().items():
                 if posNum == ChConfig.TFPosNum_Mingge:
@@ -2242,6 +2244,7 @@
                 dead = 0 if batObj.IsAlive() else 1
                 if heroID:
                     heroCount += 1
+                    posHeroIDDict[str(posNum)] = heroID
                 GameWorld.DebugLogEx("    Pos:%s ID=%s,npcID=%s,heroID=%s,HP=%s/%s, 输出=%s,承伤=%s,治疗=%s", 
                                      posNum, objID, npcID, heroID, batObj.GetHP(), batObj.GetMaxHP(), atkHurt, defHurt, cureHP)
                 lineupStatInfo[str(posNum)] = {"ObjID":objID, "HeroID":heroID, "NPCID":npcID, "AtkHurt":atkHurt, "DefHurt":defHurt, "CureHP":cureHP, 
@@ -2256,7 +2259,7 @@
     # 流向记录
     if mapID != ChConfig.Def_FBMapID_Main and reqPlayerID:
         DataRecordPack.DR_FightStat(reqPlayerID, mapID, funcLineID, turnFight.isWin, turnFight.turnNum, turnFight.turnMax, 
-                                    heroCount, turnFight.costTime, statInfo, drLineupInfo, guid)
+                                    heroCount, turnFight.costTime, drHeroIDDict, guid)
     return
 
 #// B4 14 查看战报 #tagCSTurnFightReportView
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DataRecordPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DataRecordPack.py
index 2740e30..2639a37 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DataRecordPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DataRecordPack.py
@@ -303,7 +303,7 @@
     SendEventPack("FBPass_%s" % mapID, dataDict, curPlayer)
     return
 
-def DR_FightStat(reqPlayerID, mapID, funcLineID, isWin, turnNum, turnMax, heroCount, costTime, statInfo, drLineupInfo, guid):
+def DR_FightStat(reqPlayerID, mapID, funcLineID, isWin, turnNum, turnMax, heroCount, costTime, drHeroIDDict, guid):
     ## 战斗统计
     dataDict = {'PlayerID':reqPlayerID, 'mapID':mapID, 'funcLineID':funcLineID, 'isWin':isWin, 
                 'turnNum':turnNum, 'turnMax':turnMax, 'heroCount':heroCount, 'costTime':costTime, 'guid':guid}
@@ -315,7 +315,7 @@
         if mapID in mapPassDict:
             drLineID = mapPassDict[mapID]
             if funcLineID >= drLineID:
-                failDRDict = {"statInfo":statInfo, "drLineupInfo":drLineupInfo}
+                failDRDict = {"heroIDDict":drHeroIDDict}
                 failDRDict.update(dataDict)
                 SendEventPack("FightPass_%s" % mapID, failDRDict, checkBatServer=False)
                 #SendEventPack("FightFail_%s" % mapID, failDRDict, checkBatServer=False)

--
Gitblit v1.8.0