#!/usr/bin/python  
 | 
# -*- coding: GBK -*-  
 | 
#-------------------------------------------------------------------------------  
 | 
#  
 | 
##@package GM.Commands.PrintTeam  
 | 
#  
 | 
# @todo:·þÎñÆ÷¶ÓÎéÃ÷ϸ  
 | 
# @author hxp  
 | 
# @date 2017-10-18  
 | 
# @version 1.0  
 | 
#  
 | 
# ÏêϸÃèÊö: ·þÎñÆ÷¶ÓÎéÃ÷ϸ  
 | 
#  
 | 
#-------------------------------------------------------------------------------  
 | 
#"""Version = 2017-10-18 18:00"""  
 | 
#-------------------------------------------------------------------------------  
 | 
  
 | 
import GameWorld  
 | 
import PlayerTeam  
 | 
import IPY_GameServer  
 | 
  
 | 
#°ïÖúÃüÁî  
 | 
## Ö´ÐÐÂß¼  
 | 
#  @param curPlayer µ±Ç°Íæ¼Ò  
 | 
#  @param playerList []  
 | 
#  @return None  
 | 
#  @remarks º¯ÊýÏêϸ˵Ã÷.  
 | 
def OnExec(curPlayer, paramList):  
 | 
    teamMgr = GameWorld.GetTeamManager()  
 | 
      
 | 
    if paramList:  
 | 
        teamID = paramList[0]  
 | 
        if not teamID:  
 | 
            teamID = curPlayer.GetTeamID()  
 | 
        GameWorld.DebugAnswer(curPlayer, "--------------")  
 | 
        __PrintTeam(curPlayer, teamMgr, teamID)  
 | 
        return  
 | 
      
 | 
    teamIDDict = PlayerTeam.GetSceneTeamIDDict()  
 | 
    if not teamIDDict:  
 | 
        GameWorld.DebugAnswer(curPlayer, "µ±Ç°Ã»ÓжÓÎ飡")  
 | 
        return  
 | 
    isFirst = None  
 | 
    GameWorld.DebugAnswer(curPlayer, "¡¾µ±Ç°·þÎñÆ÷ËùÓжÓÎé¡¿")  
 | 
    for tagMapID, teamIDList in teamIDDict.items():  
 | 
        isFirst = True if isFirst == None else False  
 | 
        # ´¿ÊôΪÁ˿ͻ§¶ËÊä³ö±íÏÖ  
 | 
        if not isFirst:  
 | 
            GameWorld.DebugAnswer(curPlayer, "")  
 | 
              
 | 
        GameWorld.DebugAnswer(curPlayer, "-¶ÓÎéÄ¿±ê: %s, ÊýÁ¿:%s" % (tagMapID, len(teamIDList)))  
 | 
          
 | 
        isFirstTeam = None  
 | 
        for teamID in teamIDList:  
 | 
            isFirstTeam = True if isFirstTeam == None else False  
 | 
            __PrintTeam(curPlayer, teamMgr, teamID, isFirstTeam)  
 | 
              
 | 
    return  
 | 
  
 | 
def __PrintTeam(curPlayer, teamMgr, teamID, isFirstTeam=True):  
 | 
    curTeam = teamMgr.FindTeam(teamID)  
 | 
    if not curTeam:  
 | 
        GameWorld.DebugAnswer(curPlayer, "ÕÒ²»µ½¶ÓÎé: teamID(%s)" % (teamID))  
 | 
        return  
 | 
      
 | 
    tagMapID = curTeam.GetTagMapID()  
 | 
    tagMapEx = curTeam.GetTagMapEx()  
 | 
    reqMinLV = curTeam.GetReqMinLV()  
 | 
    reqMaxLV = curTeam.GetReqMaxLV()  
 | 
    fbMapID = curTeam.GetTeamFBMapID()  
 | 
    fbMapFBID = curTeam.GetTeamFBMapFBID()  
 | 
      
 | 
    # ´¿ÊôΪÁ˿ͻ§¶ËÊä³ö±íÏÖ  
 | 
    if not isFirstTeam:  
 | 
        GameWorld.DebugAnswer(curPlayer, "")  
 | 
    GameWorld.DebugAnswer(curPlayer, "--¶ÓÎéID(%s),tag(%s,%s),LV(%s~%s),FB(%s-%s)"   
 | 
                          % (teamID, tagMapID, tagMapEx, reqMinLV, reqMaxLV, fbMapID, fbMapFBID))  
 | 
      
 | 
    curTeam.GetTeamPlayerCount()  
 | 
    for i in xrange(curTeam.GetMemberCount()):  
 | 
        memberPlayer = curTeam.GetMemberPlayer(i)  
 | 
        memberInfo = curTeam.GetMemberInfo(i)  
 | 
          
 | 
        index = memberInfo.GetIndex()  
 | 
        playerID = memberInfo.GetPlayerID()  
 | 
        if not playerID:  
 | 
            continue  
 | 
        #playerName = memberInfo.GetPlayerName()  
 | 
        LV = memberInfo.GetPlayerLV()  
 | 
        Job = memberInfo.GetPlayerJob()  
 | 
        JobLevel = memberInfo.GetPlayerJobLevel()  
 | 
        RealmLV = memberInfo.GetPlayerRealmLV()  
 | 
        memberLV = memberInfo.GetTeamLV()  
 | 
          
 | 
        PlayerState, MapID, LineID = 0, 0, 0  
 | 
        if memberPlayer and memberPlayer.GetPlayerID():  
 | 
            PlayerState = 1 # 0: ÀëÏß 1:ÔÚÏß  
 | 
            MapID = memberPlayer.GetMapID()  
 | 
            LineID = memberPlayer.GetFBID()  
 | 
              
 | 
        lvStr = "¶Ó³¤" if memberLV == IPY_GameServer.tmlLeader else "¶ÓÔ±"  
 | 
        olStr = "ÔÚÏß" if PlayerState else "ÀëÏß"  
 | 
        GameWorld.DebugAnswer(curPlayer, "%s,index(%s),%s%s(%s), LV(%s), job(%s-%s), ¾³½ç(%s), map(%s-%s)"   
 | 
                              % (i, index, olStr, lvStr, playerID, LV, Job, JobLevel, RealmLV, MapID, LineID))  
 | 
    return  
 | 
  
 | 
  
 |