From 82cfe894a6fab9122e2f558522e583ad4fde6acc Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 16 一月 2025 18:12:01 +0800
Subject: [PATCH] 10263 【越南】【英文】【BT】【砍树】后端支持NPC仿真实玩家战斗和快速战斗(优化切图同步功能地图ID数据A126 A127 ExAttr3)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/FBCommon.py |   28 +++++++++++++++++++++-------
 1 files changed, 21 insertions(+), 7 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/FBCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/FBCommon.py
index cdd263c..611abb5 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/FBCommon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/FBCommon.py
@@ -2381,19 +2381,33 @@
 def GetRecordMapID(mapID):
     DataMapIDDict = IpyGameDataPY.GetConfigEx("DataMapIDDict")
     if not DataMapIDDict:
+        mIDToDataMapIDDict = {} # 场景ID对应功能地图ID
         dMapIDDict = {}
         ipyDataMgr = IpyGameDataPY.IPY_Data()
         for i in xrange(ipyDataMgr.GetFBLineCount()):
             ipyData = ipyDataMgr.GetFBLineByIndex(i)
             dMapID = ipyData.GetDataMapID()
             mID = ipyData.GetMapID()
-            dMapIDList= dMapIDDict.get(dMapID, [])
-            if mID not in dMapIDList:
-                dMapIDList.append(mID)
-                dMapIDDict[dMapID] = dMapIDList
-            
-        for dMapID in dMapIDDict.keys():
-            if len(dMapIDDict[dMapID]) == 1:
+            mIDList= dMapIDDict.get(dMapID, [])
+            if mID not in mIDList:
+                mIDList.append(mID)
+                dMapIDDict[dMapID] = mIDList
+                
+            dMIDList= mIDToDataMapIDDict.get(mID, [])
+            if dMapID not in dMIDList:
+                dMIDList.append(dMapID)
+                mIDToDataMapIDDict[mID] = dMIDList
+                
+        unMIDList = []
+        for mID, dMIDList in mIDToDataMapIDDict.items():
+            if len(dMIDList) > 1:
+                unMIDList.append(mID)
+                #GameWorld.DebugLog("----------- 同个场景对应到多个功能地图的,视为无意义的地图! mID=%s, to dMIDList=%s" % (mID, dMIDList))
+        for dMapID, mIDList in dMapIDDict.items():
+            for unMID in unMIDList:
+                if unMID in mIDList:
+                    mIDList.remove(unMID)
+            if len(mIDList) <= 1:
                 dMapIDDict.pop(dMapID)
         DataMapIDDict = IpyGameDataPY.SetConfigEx("DataMapIDDict", dMapIDDict)
         #GameWorld.Log("加载DataMapIDDict=%s" % DataMapIDDict)

--
Gitblit v1.8.0