From 01bb36eca00e1fcd14bef76d78a6aa2e1ce0d803 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 30 十二月 2019 18:52:26 +0800
Subject: [PATCH] 8346 【恺英】【后端】协助系统(添加第一名无归属时原因日志)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py        |    3 +++
 PySysDB/PySysDBPY.h                                                                         |    1 +
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCustomRefresh.py |   17 +++++++++++++++--
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py             |    7 +------
 4 files changed, 20 insertions(+), 8 deletions(-)

diff --git a/PySysDB/PySysDBPY.h b/PySysDB/PySysDBPY.h
index 1bc8309..45f8db4 100644
--- a/PySysDB/PySysDBPY.h
+++ b/PySysDB/PySysDBPY.h
@@ -942,6 +942,7 @@
 {
 	DWORD		_NPCID;	//ID
 	DWORD		MapID;	//地图ID
+	BYTE		RefreshLine;	//刷新线路
 	BYTE		RefreshMark;	//刷新标识点
 	BYTE		IsNeedShunt;	//是否需要分流
 	BYTE		RelatedType;	//刷怪关联类型
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index d82feea..79173af 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -1730,7 +1730,7 @@
 Def_FBMapID_MagicWeapon = 41110
 
 #BOSS之家
-Def_FBMapID_BossHome = 31020
+Def_FBMapID_BossHome = 31270 #31020地图ID修改,不使用副本类型
 
 #古神禁地
 Def_FBMapID_GodArea = 31150
@@ -1839,11 +1839,6 @@
 # 进入副本需要发送到GameServer的地图
 Def_MapID_SendToGameServer = [Def_FBMapID_HorsePetBoss, Def_FBMapID_FamilyInvade, Def_FBMapID_FamilyBossMap, Def_FBMapID_SealDemon, Def_FBMapID_DemonKing,
                               Def_FBMapID_FamilyWar, Def_FBMapID_ZhuXianBoss, Def_FBMapID_AllFamilyBoss] + Def_MapID_LineIDToPropertyID
-
-## 进入副本需要根据请求的功能线路处理的地图, hxp-改了进入模式,暂不需要了 180320
-#Def_MapID_ReqFBFuncLine = [Def_FBMapID_KirinHome, Def_FBMapID_BZZD, Def_FBMapID_SealDemonEx,
-#                           Def_FBMapID_BossHome, Def_FBMapID_MunekadoTrial, Def_FBMapID_QueenRelics, Def_FBMapID_DuJie] \
-#                            + Def_FBMapID_ClearDevil
 
 # 刷新标识点在无玩家的情况下也需要刷新的地图
 Def_NoPlayerNeedProcessRefreshPointMap = [Def_FBMapID_HorsePetBoss, Def_FBMapID_SealDemon, Def_FBMapID_GodArea, Def_FBMapID_BossHome, Def_FBMapID_GatherSoul, Def_FBMapID_ZhuXianBoss, Def_FBMapID_AllFamilyBoss]
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
index 052356e..dcbe31d 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -776,6 +776,7 @@
                 "BOSSInfo":(
                         ("DWORD", "NPCID", 1),
                         ("DWORD", "MapID", 0),
+                        ("BYTE", "RefreshLine", 0),
                         ("BYTE", "RefreshMark", 0),
                         ("BYTE", "IsNeedShunt", 0),
                         ("BYTE", "RelatedType", 0),
@@ -3121,6 +3122,7 @@
     def __init__(self):
         self.NPCID = 0
         self.MapID = 0
+        self.RefreshLine = 0
         self.RefreshMark = 0
         self.IsNeedShunt = 0
         self.RelatedType = 0
@@ -3131,6 +3133,7 @@
         
     def GetNPCID(self): return self.NPCID # ID
     def GetMapID(self): return self.MapID # 地图ID
+    def GetRefreshLine(self): return self.RefreshLine # 刷新线路
     def GetRefreshMark(self): return self.RefreshMark # 刷新标识点
     def GetIsNeedShunt(self): return self.IsNeedShunt # 是否需要分流
     def GetRelatedType(self): return self.RelatedType # 刷怪关联类型
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCustomRefresh.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCustomRefresh.py
index 3308367..2a17501 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCustomRefresh.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCustomRefresh.py
@@ -351,6 +351,7 @@
     if GameWorld.IsCrossServer():
         __DoRefreshWorldBossCrossServer(npcRefresh, tick)
         return
+    rebornLineID = 0
     mapID = GameWorld.GetMap().GetMapID()
     refreshMark = npcRefresh.GetRefreshMark()
     lineID = GameWorld.GetGameWorld().GetLineID()
@@ -366,7 +367,20 @@
         bossID = GameLogic_ZhuXianBoss.CurFBLineBOSSID()
         stoneNPCID = 0
     else:
-        ipyData = IpyGameDataPY.GetIpyGameDataByCondition('BOSSInfo', {'RefreshMark':refreshMark, 'MapID':mapID}, isLogNone=False)
+        ipyDataList = IpyGameDataPY.GetIpyGameDataByCondition('BOSSInfo', {'RefreshMark':refreshMark, 'MapID':mapID}, True, isLogNone=False)
+        if not ipyDataList:
+            return
+        if len(ipyDataList) == 1:
+            ipyData = ipyDataList[0]
+        else:
+            # 同地图同标试点有多条数据的则为不同指定分线
+            ipyData = None
+            for ipyD in ipyDataList:
+                refreshLine = ipyD.GetRefreshLine()
+                rebornLineID = refreshLine - 1
+                if rebornLineID == lineID:
+                    ipyData = ipyD
+                    break
         if not ipyData:
             return
         stoneNPCID = ipyData.GetStoneNPCID()
@@ -391,7 +405,6 @@
         bosskey = ShareDefine.Def_Notify_WorldKey_GameWorldBossReborn % bossID
         rebornBossState = gameWorldMgr.GetGameWorldDictByKey(bosskey)
         
-    rebornLineID = 0
     activityLineID = 0 # 活动线, 默认1线
     activityMapLineDict = IpyGameDataPY.GetFuncEvalCfg("MapLine", 2, {})
     if mapID in activityMapLineDict:

--
Gitblit v1.8.0