#!/usr/bin/python  
 | 
# -*- coding: GBK -*-  
 | 
#-------------------------------------------------------------------------------  
 | 
#  
 | 
##@package Player.RemoteQuery.GY_Query_EnterFBTeamAsk  
 | 
#  
 | 
# @todo:×é¶Ó½øÈ븱±¾ÇëÇó  
 | 
# @author hxp  
 | 
# @date 2017-11-09  
 | 
# @version 1.0  
 | 
#  
 | 
# ÏêϸÃèÊö: ¶Ó³¤·¢Æð½øÈ븱±¾ºó£¬ÑéÖ¤¸÷¸ö¶ÓÔ±ÊÇ·ñ¿ÉÒÔ½øÈë¸Ã¸±±¾  
 | 
#  
 | 
#-------------------------------------------------------------------------------  
 | 
#"""Version = 2017-11-09 22:00"""  
 | 
#-------------------------------------------------------------------------------  
 | 
  
 | 
#µ¼Èë  
 | 
import FBLogic  
 | 
import PlayerControl  
 | 
import GameWorld  
 | 
import FBCommon  
 | 
import ChConfig  
 | 
#---------------------------------------------------------------------  
 | 
  
 | 
  
 | 
#---------------------------------------------------------------------  
 | 
#Â߼ʵÏÖ  
 | 
## ÇëÇóÂß¼  
 | 
#  @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.Log("GY_Query_EnterFBTeamAsk DoLogic() query_Type=%s,query_ID=%s,packCMDList=%s,tick=%s" %   
 | 
                  (query_Type, query_ID, packCMDList, tick))  
 | 
      
 | 
    curFindPlayer = GameWorld.GetPlayerManager().FindPlayerByID(query_ID)  
 | 
    if not curFindPlayer or curFindPlayer.IsEmpty():  
 | 
        return ""  
 | 
      
 | 
    if not packCMDList or len(packCMDList) != 5:  
 | 
        GameWorld.Log("    DoLogic() return []")  
 | 
        return ""  
 | 
      
 | 
    #teamID, askVer, askType, askMapID, askMapEx  
 | 
    askMapID = packCMDList[3]  # Ä¿±êµØÍ¼id  
 | 
    askMapEx = packCMDList[4]  # Ä¿±êµØÍ¼Ïß·ÊôÐÔ,´Ó0¿ªÊ¼  
 | 
      
 | 
    #½øÈ븱±¾Í¨Óüì²é  
 | 
    fbIpyData = FBCommon.GetFBIpyData(askMapID)  
 | 
    fbLineIpyData = FBCommon.GetFBLineIpyData(askMapID, askMapEx)  
 | 
    ret = PlayerControl.CheckMoveToFB(curFindPlayer, askMapID, askMapEx, fbIpyData, fbLineIpyData, tick, False, True)  
 | 
    return packCMDList + [query_ID, ret, curFindPlayer.GetName()]  
 | 
  
 | 
  
 | 
#Ö´Ðнá¹û  
 | 
## Ö´Ðнá¹û  
 | 
#  @param curPlayer ·¢³öÇëÇóµÄÍæ¼Ò  
 | 
#  @param callFunName ¹¦ÄÜÃû³Æ  
 | 
#  @param funResult ²éѯµÄ½á¹û  
 | 
#  @param tick µ±Ç°Ê±¼ä  
 | 
#  @return None  
 | 
#  @remarks º¯ÊýÏêϸ˵Ã÷.  
 | 
def DoResult(curPlayer, callFunName, funResult, tick):  
 | 
    resultInfo = eval(funResult)  
 | 
    mapID, lineID = resultInfo[:2]  
 | 
    averageLV, maxLV, playerCnt = 0, 0, 0  
 | 
    if len(resultInfo) == 5:  
 | 
        averageLV, maxLV, playerCnt = resultInfo[2:5]  
 | 
    GameWorld.Log("GY_Query_EnterFBTeamAsk mapID=%s,lineID=%s,averageLV=%s,maxLV=%s,playerCnt=%s,funResult=%s"   
 | 
                  % (mapID, lineID, averageLV, maxLV, playerCnt, str(funResult)), curPlayer.GetPlayerID())  
 | 
      
 | 
    if maxLV > 0:  
 | 
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_TeamFBAverageLV, averageLV)  
 | 
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_TeamFBMaxLV, maxLV)  
 | 
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_TeamFBPlayerCnt, playerCnt)  
 | 
          
 | 
    # ÇëÇó½øÈëFBµã  
 | 
    ipyEnterPosInfo = FBCommon.GetFBLineEnterPosInfo(mapID, lineID)  
 | 
    retPos = FBLogic.OnGetFBEnterPos(curPlayer, mapID, lineID, ipyEnterPosInfo, tick)  
 | 
      
 | 
    if not retPos:  
 | 
        return  
 | 
      
 | 
    #===============================================================================================  
 | 
    # # ÑéÖ¤´«ËÍNPCÌõ¼þÊÇ·ñ·ûºÏ  
 | 
    # if not EventShell.DoLogic_EnterFbGameEvent(curPlayer, mapID, tick):  
 | 
    #    return  
 | 
    #===============================================================================================  
 | 
      
 | 
    # ´«ËÍÂß¼  
 | 
    PlayerControl.PlayerResetWorldPosFB(curPlayer, mapID, retPos[0], retPos[1], False, funcLineID=lineID)  
 | 
    return  
 | 
  
 |