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