| #!/usr/bin/python  | 
| # -*- coding: GBK -*-  | 
| #-------------------------------------------------------------------------------  | 
| #  | 
| #-------------------------------------------------------------------------------  | 
| #  | 
| ##@package Player.RemoteQuery.GY_Query_FBLinePlayerCnt  | 
| #  | 
| # @todo:²éѯ¸±±¾¹¦ÄÜÏß·ÈËÊý  | 
| # @author xdh  | 
| # @date 2018-01-08  | 
| # @version 1.0  | 
| #  | 
| #  | 
| # ÏêϸÃèÊö: ²éѯ¸±±¾¹¦ÄÜÏß·ÈËÊý  | 
| #  | 
| #---------------------------------------------------------------------  | 
| """Version = 2018-01-08 17:00"""  | 
|   | 
|   | 
| #µ¼Èë  | 
| import GameLogic_ZhuXianBoss  | 
| import GameLogic_HorsePetBoss  | 
| import GameLogic_AllFamilyBoss  | 
| import GameWorld  | 
| import IPY_GameWorld  | 
| import ChConfig  | 
| #---------------------------------------------------------------------  | 
| #È«¾Ö±äÁ¿  | 
| #---------------------------------------------------------------------  | 
|   | 
|   | 
| #---------------------------------------------------------------------  | 
| #Â߼ʵÏÖ  | 
| ## ÇëÇóÂß¼  | 
| #  @param query_Type ÇëÇóÀàÐÍ  | 
| #  @param query_ID ÇëÇóµÄÍæ¼ÒID  | 
| #  @param packCMDList ·¢°üÃüÁî [ ]  | 
| #  @param tick µ±Ç°Ê±¼ä  | 
| #  @return "True" or "False" or ""  | 
| #  @remarks º¯ÊýÏêϸ˵Ã÷.  | 
| def DoLogic(query_Type, query_ID, packCMDList, tick):  | 
|     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) < 2:  | 
|         GameWorld.DebugLog("    DoLogic() return []")  | 
|         return []  | 
|       | 
|     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:  | 
|         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()  | 
|             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()):  | 
|             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()  | 
|             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]  | 
| #---------------------------------------------------------------------  | 
|   | 
|   | 
| #Ö´Ðнá¹û  | 
| ## Ö´Ðнá¹û  | 
| #  @param curPlayer ·¢³öÇëÇóµÄÍæ¼Ò  | 
| #  @param callFunName ¹¦ÄÜÃû³Æ  | 
| #  @param funResult ²éѯµÄ½á¹û  | 
| #  @param tick µ±Ç°Ê±¼ä  | 
| #  @return None  | 
| #  @remarks º¯ÊýÏêϸ˵Ã÷.  | 
| def DoResult(curPlayer, callFunName, funResult, tick):  | 
|       | 
|     return  | 
|   |