#!/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
|
|
|
|