From 9d5ec7599f3abe0cebb76ce1df3c3b8c4e0aa51e Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 10 二月 2026 11:40:15 +0800
Subject: [PATCH] 66 【公会】基础主体-服务端(跨服聊天;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/CrossPlayer.py |   20 ++++++++++++++++++++
 1 files changed, 20 insertions(+), 0 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/CrossPlayer.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/CrossPlayer.py
index 9271569..46e21cb 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/CrossPlayer.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/CrossPlayer.py
@@ -101,6 +101,8 @@
         self.__crossPlayerDict.pop(playerID, None)
         return
     
+    def GetPlayerIDList(self): return self.__crossPlayerDict.keys()
+    
 def GetCrossPlayerMgr():
     mgr = PyGameData.g_crossPlayerMgr
     if mgr == None:
@@ -147,6 +149,24 @@
         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玩家发送封包,适用于接受的玩家封包数据一致的,跨服、游戏服通用
     '''

--
Gitblit v1.8.0