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