#!/usr/bin/python  
 | 
# -*- coding: GBK -*-  
 | 
#-------------------------------------------------------------------------------  
 | 
#  
 | 
#-------------------------------------------------------------------------------  
 | 
#  
 | 
##@package GM.Commands.GMT_OLPlayerCnt  
 | 
#  
 | 
# @todo:²éѯÔÚÏßÍæ¼ÒÊý  
 | 
# @author hxp  
 | 
# @date 2015-5-25  
 | 
# @version 1.2  
 | 
#  
 | 
# @change: "2015-06-04 11:30" hxp Ö§³Ö°´channelCode²éѯÈËÊý  
 | 
# @change: "2015-06-16 16:30" hxp ·µ»Ø×ÖµäÐÅÏ¢²»×ª×Ö·û´®  
 | 
#  
 | 
# ÏêϸÃèÊö: ²éѯÔÚÏßÍæ¼ÒÊý  
 | 
#  
 | 
#---------------------------------------------------------------------  
 | 
"""Version = 2015-06-16 16:30"""  
 | 
#---------------------------------------------------------------------  
 | 
  
 | 
#µ¼Èë  
 | 
import ChPlayer  
 | 
import GMCommon  
 | 
import GameWorld  
 | 
  
 | 
  
 | 
#Â߼ʵÏÖ(ÕâÀïcurPlayer = None)  
 | 
## Ö´ÐÐÂß¼  
 | 
#  @param curPlayer µ±Ç°Íæ¼Ò  
 | 
#  @param gmList [cmdIndex gmAccID forbidAcc]  
 | 
#  @return None  
 | 
#  @remarks º¯ÊýÏêϸ˵Ã÷.  
 | 
def OnExec(orderId, gmCmdDict):  
 | 
      
 | 
    queryChannelCode = gmCmdDict.get("channelCode", '')  
 | 
      
 | 
    # ¼Ç¼·þÎñÆ÷ÈËÊý  
 | 
    playerManager = GameWorld.GetPlayerManager()  
 | 
    activePlayerCount = playerManager.GetActivePlayerCount() # ×ÜÈËÊý  
 | 
    playerCntDict = {}  
 | 
    if queryChannelCode:  
 | 
        playerCntDict[queryChannelCode] = 0  
 | 
      
 | 
    for i in range(activePlayerCount):  
 | 
          
 | 
        curPlayer = playerManager.GetActivePlayerAt(i)  
 | 
        if not curPlayer:  
 | 
            continue  
 | 
          
 | 
        channelCode = ChPlayer.GetUserDataByKey(curPlayer, "channel_code", "unknown")  
 | 
          
 | 
        if queryChannelCode and channelCode != queryChannelCode:  
 | 
            continue  
 | 
          
 | 
        playerCntDict[channelCode] = playerCntDict.get(channelCode, 0) + 1  
 | 
          
 | 
    #Ö´Ðгɹ¦  
 | 
    #strMsg = str(playerCntDict)  
 | 
    GMCommon.GMCommandResult(orderId, gmCmdDict, GMCommon.Def_Success, playerCntDict)          
 | 
    return  
 | 
  
 | 
  
 | 
     
 |