| #!/usr/bin/python  | 
| # -*- coding: GBK -*-  | 
|   | 
| ##@package SummonAllPlayer  | 
| # ÕÙ¼¯Íæ¼Ò  | 
| #  | 
| # @author mark  | 
| # @date 2010-3-31  | 
| # @version 1.1  | 
| #  | 
| # ÐÞ¸Äʱ¼ä ÐÞ¸ÄÈË ÐÞ¸ÄÄÚÈÝ  | 
| # @change: "2012-05-16 14:30" jiang C++½Ó¿ÚÐÞ¸ÄMapServer_QueryPlayerResultºÍMapServer_QueryPlayerÐÞ¸Ä  | 
| #------------------------------------------------------------------------------   | 
| """Version = 2012-05-16 14:30"""  | 
| #------------------------------------------------------------------------------   | 
|   | 
| #µ¼Èë  | 
| import GameWorld  | 
| #---------------------------------------------------------------------  | 
| #È«¾Ö±äÁ¿  | 
| #---------------------------------------------------------------------  | 
|   | 
| #---------------------------------------------------------------------  | 
| #Â߼ʵÏÖ  | 
| #ÎÞ²ÎÊý , ËùÓÐÍæ¼Ò´«µ½ÏÌÑô³Ç²Ö¿â  | 
| #²ÎÊýÁÐ±í ²éÕÒ·½Ê½(1 : ¹ú¼Ò 2 : ¼Ò×å 3:¶ÓÎé) , Öµ( 0Ϊ×Ô¼ºÊôÐÔ ) , µØÍ¼ID , µØÍ¼×ø±êX , µØÍ¼×ø±êY  | 
| ## Ö´ÐÐÂß¼  | 
| #  @param curPlayer µ±Ç°Íæ¼Ò  | 
| #  @param cmdList (1 : ¹ú¼Ò 2 : ¼Ò×å 3:¶ÓÎé) , Öµ( 0Ϊ×Ô¼ºÊôÐÔ ) , µØÍ¼ID , µØÍ¼×ø±êX , µØÍ¼×ø±êY  | 
| #  @return None  | 
| #  @remarks º¯ÊýÏêϸ˵Ã÷.  | 
| def OnExec( curPlayer , cmdList ):  | 
|     GameWorld.DebugAnswer(curPlayer,  'ÎÞ²ÎÊý , ËùÓÐÍæ¼Ò´«µ½ÏÌÑô³Ç²Ö¿â' )  | 
|     GameWorld.DebugAnswer(curPlayer,  '²ÎÊýÁÐ±í ²éÕÒ·½Ê½(1 : ¹ú¼Ò 2 : ¼Ò×å 3:¶ÓÎé) , Öµ( 0Ϊ×Ô¼ºÊôÐÔ ) , µØÍ¼ID , µØÍ¼×ø±êX , µØÍ¼×ø±êY' )  | 
|       | 
|     if len( cmdList ) not in [ 0 , 5 ]:  | 
|         GameWorld.DebugAnswer(curPlayer,  'ʹÓô«ËÍÃüÁî , ²ÎÊý´íÎó = %s'%( cmdList ) )  | 
|         return  | 
|       | 
|     #ĬÈϵØÍ¼ , ×ø±ê  | 
|     mapID = 6  | 
|     posX = 150  | 
|     posY = 150  | 
|     queryPlayerList = []  | 
|       | 
|     if not len( cmdList ):  | 
|         queryPlayerList = __GetDefaultPlayerList( curPlayer , 0 , checkTeam = False , checkFamily = False , checkCountry = False )  | 
|           | 
|     elif cmdList[0] == 1:  | 
|         queryPlayerList = __GetDefaultPlayerList( curPlayer , cmdList[1] , checkTeam = False , checkFamily = False , checkCountry = True )  | 
|       | 
|     elif cmdList[0] == 2:  | 
|         queryPlayerList = __GetDefaultPlayerList( curPlayer , cmdList[1] , checkTeam = False , checkFamily = True , checkCountry = False )  | 
|       | 
|     elif cmdList[0] == 3:  | 
|         queryPlayerList = __GetDefaultPlayerList( curPlayer , cmdList[1] , checkTeam = True , checkFamily = False , checkCountry = False )  | 
|       | 
|     else:  | 
|         GameWorld.DebugAnswer(curPlayer,  'ʹÓô«ËÍÃüÁî²éÕÒ·½Ê½´íÎó = %s'%( cmdList ) )  | 
|         return  | 
|       | 
|     if not queryPlayerList:  | 
|         GameWorld.DebugAnswer(curPlayer,  'ʹÓô«ËÍÃüÁî´íÎó , Î´ÕÒµ½·ûºÏÌõ¼þµÄÍæ¼Ò = %s'%( cmdList ) )  | 
|         return  | 
|       | 
|     if len( cmdList ):  | 
|         mapID = cmdList[2]  | 
|         posX = cmdList[3]  | 
|         posY = cmdList[4]  | 
|           | 
|     if not mapID or not posX or not posY:  | 
|         GameWorld.DebugAnswer(curPlayer,  'ʹÓô«ËÍÃüÁî´íÎó , µØÍ¼×ø±ê´íÎó = %s , %s , %s'%( mapID , posX , posY  ) )  | 
|         return  | 
|           | 
|     #·¢ËÍÇëÇóµ½µØÍ¼·þÎñÆ÷  | 
|     playerManager = GameWorld.GetPlayerManager()  | 
|       | 
|     for player in queryPlayerList:  | 
|         tagMapID = GameWorld.GetQueryPlayerMapID( player )  | 
|         #·¢ËÍÁбí [ µØÍ¼ID , posX , posY ]   | 
|         sendMsg = '%s'%([ mapID , posX , posY ])  | 
|         playerManager.MapServer_QueryPlayer( 0, 0, player.GetID(), tagMapID, 'SummonAllPlayer', sendMsg, len(sendMsg))  | 
|           | 
|     return  | 
|   | 
| ## »ñȡĬÈÏÍæ¼ÒÁÐ±í  | 
| #  @param curPlayer µ±Ç°Íæ¼Ò  | 
| #  @param value Öµ 0Ϊ×Ô¼ºÊôÐÔ  | 
| #  @param checkTeam ¶ÓÎéÏÞ¶¨  | 
| #  @param checkFamily ¼Ò×åÏÞ¶¨  | 
| #  @param checkCountry ¹ú¼ÒÏÞ¶¨  | 
| #  @return addList Íæ¼ÒÁÐ±í  | 
| #  @remarks º¯ÊýÏêϸ˵Ã÷.  | 
| def __GetDefaultPlayerList( curPlayer , value , checkTeam = False , checkFamily = False , checkCountry = False ):  | 
|     playerManager = GameWorld.GetPlayerManager()  | 
|     addList = []  | 
|       | 
|     for index in range( playerManager.GetPlayerCount() ):  | 
|         player = playerManager.GetPlayerByIndex( index )  | 
|           | 
|         tagMapID = GameWorld.GetQueryPlayerMapID( player )  | 
|           | 
|         if not tagMapID:  | 
|             continue  | 
|           | 
|         if not DoLogiCheckTeam( curPlayer , player , value , checkTeam ):  | 
|             continue  | 
|           | 
|         if not DoLogiCheckFamily( curPlayer , player , value , checkFamily ):  | 
|             continue  | 
|           | 
|         if not DoLogiCheckCountry( curPlayer , player , value , checkCountry ):  | 
|             continue  | 
|           | 
|         addList.append( player )  | 
|       | 
|     return addList  | 
|   | 
| ## ¼ì²âÊÇ·ñͬ¹ú  | 
| #  @param curPlayer ±¾Íæ¼Ò  | 
| #  @param player Ä¿±êÍæ¼Ò  | 
| #  @param value ×ÔÉíÊôÐÔÖµÊôÐÔÖµ0£¬¾Í¼ì²â×ÔÉíÊôÐÔ£¬·ñÔò×÷Ϊ±È½ÏÖµ  | 
| #  @param checkCountry ÊÇ·ñ¼ì²â  | 
| #  @return True or False  | 
| #  @remarks º¯ÊýÏêϸ˵Ã÷.  | 
| def DoLogiCheckCountry( curPlayer , player , value , checkCountry ):  | 
|     #²»¼ì²é  | 
|     if not checkCountry:  | 
|         return True  | 
|       | 
|     if value:  | 
|         return ( value == player.GetCountry() )  | 
|       | 
|     return ( curPlayer.GetCountry() == player.GetCountry() )  | 
|   | 
| ## ¼ì²âÊÇ·ñͬ¹ú  | 
| #  @param curPlayer ±¾Íæ¼Ò  | 
| #  @param player Ä¿±êÍæ¼Ò  | 
| #  @param value ×ÔÉíÊôÐÔÖµÊôÐÔÖµ0£¬¾Í¼ì²â×ÔÉíÊôÐÔ£¬·ñÔò×÷Ϊ±È½ÏÖµ  | 
| #  @param checkFamily ÊÇ·ñ¼ì²â  | 
| #  @return True or False  | 
| #  @remarks º¯ÊýÏêϸ˵Ã÷.  | 
| def DoLogiCheckFamily( curPlayer , player , value ,  checkFamily ):  | 
|     #²»¼ì²é  | 
|     if not checkFamily:  | 
|         return True  | 
|       | 
|     #Ö¸¶¨¼Ò×åID  | 
|     if value:  | 
|         return ( value == player.GetFamilyID() )  | 
|       | 
|     if not curPlayer.GetFamilyID():  | 
|         return False  | 
|       | 
|     #×Ô¼º¼Ò×å  | 
|     return ( curPlayer.GetFamilyID() == player.GetFamilyID() )  | 
|   | 
| ## ¼ì²âÊÇ·ñͬ¹ú  | 
| #  @param curPlayer ±¾Íæ¼Ò  | 
| #  @param player Ä¿±êÍæ¼Ò  | 
| #  @param value ×ÔÉíÊôÐÔÖµÊôÐÔÖµ0£¬¾Í¼ì²â×ÔÉíÊôÐÔ£¬·ñÔò×÷Ϊ±È½ÏÖµ  | 
| #  @param checkTeam ÊÇ·ñ¼ì²â  | 
| #  @return True or False  | 
| #  @remarks º¯ÊýÏêϸ˵Ã÷.  | 
| def DoLogiCheckTeam( curPlayer , player , value , checkTeam ):  | 
|     #²»¼ì²é  | 
|     if not checkTeam:  | 
|         return True  | 
|       | 
|     #Ö¸¶¨¶ÓÎé  | 
|     if value :  | 
|         return ( value == player.GetTeamID() )  | 
|       | 
|     if not curPlayer.GetTeamID():  | 
|         return False  | 
|       | 
|     #×Ô¼º¶ÓÎé  | 
|     if not value:  | 
|         return ( curPlayer.GetTeamID() == player.GetTeamID() )  |