| | |
| | | self.__crossPlayerDict.pop(playerID, None)
|
| | | return
|
| | |
|
| | | def GetPlayerIDList(self): return self.__crossPlayerDict.keys()
|
| | | |
| | | def GetCrossPlayerMgr():
|
| | | mgr = PyGameData.g_crossPlayerMgr
|
| | | if mgr == None:
|
| | |
| | | SendFakePackToPlayerList(crossPlayerList, clientPack)
|
| | | return
|
| | |
|
| | | def SendFackPackToServerList(clientPack, serverIDList):
|
| | | ## 给服务器范围的在线玩家发送封包
|
| | | toCrossPlayerList = []
|
| | | crossPlayerMgr = GetCrossPlayerMgr()
|
| | | playerIDList = crossPlayerMgr.GetPlayerIDList()
|
| | | for playerID in playerIDList:
|
| | | crossPlayer = crossPlayerMgr.FindCrossPlayer(playerID)
|
| | | mainServerID = crossPlayer.GetMainServerID()
|
| | | if not GameWorld.CheckServerIDInList(mainServerID, serverIDList):
|
| | | continue
|
| | | curPlayer = crossPlayer.GetPlayer()
|
| | | if curPlayer: # 有玩家,一般只有游戏服有,可视为游戏服在线,直接发送
|
| | | curPlayer.SendFakePack(clientPack.GetBuffer(), clientPack.GetLength())
|
| | | continue
|
| | | toCrossPlayerList.append(crossPlayer)
|
| | | SendFakePackToPlayerList(toCrossPlayerList, clientPack)
|
| | | return
|
| | |
|
| | | def SendFakePackToPlayerList(crossPlayerList, clientPack):
|
| | | '''给crossPlayer玩家发送封包,适用于接受的玩家封包数据一致的,跨服、游戏服通用
|
| | | '''
|