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