xdh
2019-04-10 7c39ed3b5f3b3335d064d356243df31d76e18bff
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#!/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) < 3:
        GameWorld.DebugLog("    DoLogic() return []")
        return []
    
    tagMapID = packCMDList[0]  # Ä¿±êµØÍ¼id
    tagFBLineID = packCMDList[1]  # Ïß·id
    isAllLine = packCMDList[2]  # ²éѯµÄ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]
            
    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]
            
    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(fblineID, tick)
            fbLinePlayerCntDict[fblineID] = [playerCnt, str(hpPer)]
    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(tick)
            fbLinePlayerCntDict[fblineID] = [playerCnt, str(hpPer)]
    else:
        return
    return [tagMapID, fbLinePlayerCntDict]
#---------------------------------------------------------------------
 
 
#Ö´Ðнá¹û
## Ö´Ðнá¹û
#  @param curPlayer ·¢³öÇëÇóµÄÍæ¼Ò
#  @param callFunName ¹¦ÄÜÃû³Æ
#  @param funResult ²éѯµÄ½á¹û
#  @param tick µ±Ç°Ê±¼ä
#  @return None
#  @remarks º¯ÊýÏêϸ˵Ã÷.
def DoResult(curPlayer, callFunName, funResult, tick):
    
    return