| | |
| | | elif packType == IPY_GameServer.CDBPlayerRefresh_VIPLv:
|
| | | curPlayer.SetVIPLv(packValue);
|
| | | # __RefreshTeamState(curPlayer)
|
| | | |
| | | elif packType == IPY_GameServer.CDBPlayerRefresh_ExAttr5:
|
| | | PlayerControl.SetCrossMapID(curPlayer, packValue, False)
|
| | | |
| | | elif packType == IPY_GameServer.CDBPlayerRefresh_ExAttr9:
|
| | | PlayerControl.SetVIPExpireTime(curPlayer, packValue)
|
| | |
|
| | |
| | | #{
|
| | | # tagHead Head;
|
| | | # DWORD MapID;
|
| | | # BYTE FBLineID;
|
| | | # BYTE IsAllLine;
|
| | | # BYTE LineCount;
|
| | | # BYTE LineIDList[LineCount]; //个数为0时代表查全部
|
| | | #};
|
| | | def ClinetQueryFBLinePlayerCnt(index, clientData, tick):
|
| | | curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
| | | queryMapID = clientData.MapID
|
| | | fbLineID = clientData.FBLineID
|
| | | isAllLine = clientData.IsAllLine
|
| | | queryFBLineIDList = clientData.LineIDList
|
| | | playerManager = GameWorld.GetPlayerManager()
|
| | |
|
| | | sendCMD = str([queryMapID, fbLineID, isAllLine])
|
| | | if queryMapID in ChConfig.Def_CrossMapIDList:
|
| | | fbLinePlayerInfoDict = PyGameData.g_crossFBFuncLinePlayerCountInfo.get(queryMapID, {})
|
| | | if not queryFBLineIDList:
|
| | | resultInfo = [queryMapID, fbLinePlayerInfoDict]
|
| | | else:
|
| | | defaultInfo = [0] # 与本服结构相同,默认0人
|
| | | queryFBLineInfo = {}
|
| | | for lineID in queryFBLineIDList:
|
| | | queryFBLineInfo[lineID] = fbLinePlayerInfoDict.get(lineID, defaultInfo)
|
| | | resultInfo = [queryMapID, queryFBLineInfo]
|
| | | QueryFBLinePlayerCntResult(curPlayer, resultInfo)
|
| | | return
|
| | | |
| | | sendCMD = str([queryMapID, queryFBLineIDList])
|
| | | playerManager.MapServer_QueryPlayer(curPlayer.GetPlayerID(), 0, 0, queryMapID,
|
| | | 'FBLinePlayerCnt', sendCMD, len(sendCMD), curPlayer.GetRouteServerIndex())
|
| | | return
|