| #!/usr/bin/python  | 
| # -*- coding: GBK -*-  | 
| #-------------------------------------------------------------------------------  | 
| #  | 
| #-------------------------------------------------------------------------------  | 
| #  | 
| ##@package Player.RemoteQuery.GY_Query_NPCInfo  | 
| #  | 
| # @todo:²éѯµØÍ¼NPCÐÅÏ¢  | 
| # @author hxp  | 
| # @date 2014-12-17  | 
| # @version 1.1  | 
| #  | 
| # @change: "2015-01-16 17:00" hxp µØÍ¼ÐÅÏ¢²éѯÔö¼ÓÏß·id  | 
| #  | 
| # ÏêϸÃèÊö: ²éѯµØÍ¼NPCÐÅÏ¢  | 
| #  | 
| #---------------------------------------------------------------------  | 
| """Version = 2015-01-16 17:00"""  | 
|   | 
|   | 
| #µ¼Èë  | 
| import NPCCommon  | 
| import GameWorld  | 
| import IPY_GameWorld  | 
| #---------------------------------------------------------------------  | 
| #È«¾Ö±äÁ¿  | 
| #---------------------------------------------------------------------  | 
|   | 
|   | 
| #---------------------------------------------------------------------  | 
| #Â߼ʵÏÖ  | 
| ## ÇëÇóÂß¼  | 
| #  @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_NPCInfo 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  | 
|     tagLineID = packCMDList[1]  # Ïß·id  | 
|     queryNPCIDList = packCMDList[2]  # ²éѯµÄNPCIDÁÐ±í  | 
|       | 
|     npcInfoDict = NPCCommon.GetNPCInfo(queryNPCIDList, tick)  | 
|     gameWorld = IPY_GameWorld.IPY_GameWorld(tagLineID)  | 
|     playerManager = gameWorld.GetMapCopyPlayerManagerByFbIndex(tagLineID)  | 
|     playerCnt = 0  | 
|     if playerManager:  | 
|         playerCnt = playerManager.GetPlayerCount()  | 
|       | 
|     return [tagMapID, playerCnt, npcInfoDict]  | 
| #---------------------------------------------------------------------  | 
|   | 
|   | 
| #Ö´Ðнá¹û  | 
| ## Ö´Ðнá¹û  | 
| #  @param curPlayer ·¢³öÇëÇóµÄÍæ¼Ò  | 
| #  @param callFunName ¹¦ÄÜÃû³Æ  | 
| #  @param funResult ²éѯµÄ½á¹û  | 
| #  @param tick µ±Ç°Ê±¼ä  | 
| #  @return None  | 
| #  @remarks º¯ÊýÏêϸ˵Ã÷.  | 
| def DoResult(curPlayer, callFunName, funResult, tick):  | 
|     GameWorld.DebugLog("GY_Query_NPCInfo DoResult() funResult=%s" % str(funResult))  | 
|     #»¹Ô¸ñʽ '[]' -> []  | 
|     funResult = eval(funResult)  | 
|     if not funResult or len(funResult) < 3:  | 
|         return  | 
|       | 
|     tagMapID = funResult[0]  | 
|     playerCnt = funResult[1]  | 
|     npcInfoDict = funResult[2]  | 
|     # ·¢°ü  | 
|     NPCCommon.SyncNPCInfo(curPlayer, tagMapID, playerCnt, npcInfoDict)  | 
|     return  | 
|   |