From dbcfd3f16072fb70909f6f6e209e437af97c98a6 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期一, 03 六月 2019 11:40:20 +0800
Subject: [PATCH] 6969 【2.0】【后端】缥缈仙域奇遇(奇遇可能随不出问题)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_FBLinePlayerCnt.py |   59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 55 insertions(+), 4 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_FBLinePlayerCnt.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_FBLinePlayerCnt.py
index d1fc79b..e38ff46 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_FBLinePlayerCnt.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_FBLinePlayerCnt.py
@@ -20,6 +20,8 @@
 
 #导入
 import GameLogic_ZhuXianBoss
+import GameLogic_HorsePetBoss
+import GameLogic_AllFamilyBoss
 import GameWorld
 import IPY_GameWorld
 import ChConfig
@@ -41,13 +43,13 @@
     GameWorld.DebugLog("GY_Query_FBLinePlayerCnt DoLogic() query_Type=%s,query_ID=%s,packCMDList=%s,tick=%s" % \
                   (query_Type, query_ID, packCMDList, tick))
     
-    if not packCMDList or len(packCMDList) < 3:
+    if not packCMDList or len(packCMDList) < 2:
         GameWorld.DebugLog("    DoLogic() return []")
         return []
     
-    tagMapID = packCMDList[0]  # 目标地图id
-    tagFBLineID = packCMDList[1]  # 线路id
-    isAllLine = packCMDList[2]  # 查询的NPCID列表
+    tagMapID, queryFBLineIDList = packCMDList
+    tagFBLineID = 0 if not queryFBLineIDList else queryFBLineIDList[0]  # 线路id
+    isAllLine = not queryFBLineIDList  # 查询的NPCID列表
     gameWorldManager = GameWorld.GetGameWorld()
     fbLinePlayerCntDict = {}
     if tagMapID == ChConfig.Def_FBMapID_SealDemon:
@@ -61,6 +63,22 @@
                 continue
             playerCnt = playerManager.GetPlayerCount()
             fbLinePlayerCntDict[fblineID] = [playerCnt]
+            if not isAllLine:
+                break
+            
+    elif tagMapID == ChConfig.Def_FBMapID_DemonKing:
+        for index in xrange(gameWorldManager.GetGameWorldCount()):
+            gameWorld = IPY_GameWorld.IPY_GameWorld(index)
+            playerManager = gameWorld.GetMapCopyPlayerManagerByFbIndex(index)
+            fblineID = gameWorld.GetPropertyID() - 1
+            if fblineID < 0:
+                continue
+            if queryFBLineIDList and fblineID not in queryFBLineIDList:
+                continue
+            playerCnt = playerManager.GetPlayerCount()
+            fbLinePlayerCntDict[fblineID] = [playerCnt]
+            if len(queryFBLineIDList) == len(fbLinePlayerCntDict):
+                break
             
     elif tagMapID == ChConfig.Def_FBMapID_ZhuXianBoss:
         for index in xrange(gameWorldManager.GetGameWorldCount()):
@@ -74,6 +92,39 @@
             playerCnt = playerManager.GetPlayerCount()
             ownerName = GameLogic_ZhuXianBoss.GetFirstOwnerName(fblineID)
             fbLinePlayerCntDict[fblineID] = [playerCnt, ownerName]
+            if not isAllLine:
+                break
+            
+    elif tagMapID == ChConfig.Def_FBMapID_HorsePetBoss:
+        for index in xrange(gameWorldManager.GetGameWorldCount()):
+            gameWorld = IPY_GameWorld.IPY_GameWorld(index)
+            playerManager = gameWorld.GetMapCopyPlayerManagerByFbIndex(index)
+            fblineID = gameWorld.GetPropertyID() - 1
+            if fblineID < 0:
+                continue
+            if not isAllLine and tagFBLineID != fblineID:
+                continue
+            playerCnt = playerManager.GetPlayerCount()
+            hpPer = GameLogic_HorsePetBoss.GetBossRemainHPPer(index, fblineID, tick)
+            fbLinePlayerCntDict[fblineID] = [playerCnt, str(hpPer)]
+            if not isAllLine:
+                break
+            
+    elif tagMapID == ChConfig.Def_FBMapID_AllFamilyBoss:
+        for index in xrange(gameWorldManager.GetGameWorldCount()):
+            gameWorld = IPY_GameWorld.IPY_GameWorld(index)
+            playerManager = gameWorld.GetMapCopyPlayerManagerByFbIndex(index)
+            fblineID = gameWorld.GetPropertyID() - 1
+            if fblineID < 0:
+                continue
+            if not isAllLine and tagFBLineID != fblineID:
+                continue
+            playerCnt = playerManager.GetPlayerCount()
+            hpPer = GameLogic_AllFamilyBoss.GetBossRemainHPPer(index, tick)
+            fbLinePlayerCntDict[fblineID] = [playerCnt, str(hpPer)]
+            if not isAllLine:
+                break
+            
     else:
         return
     return [tagMapID, fbLinePlayerCntDict]

--
Gitblit v1.8.0