From b3c6d36f5ae851f09a3c2e73494ff19956b06fb0 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 11 四月 2025 16:56:14 +0800
Subject: [PATCH] 10367 【越南】【英语】【BT】【砍树】仙盟攻城战-服务端(跨服仙盟支持;后台查询区服仙盟支持;活动时间流程支持;攻城战主活动功能完整流程:公示、分组、战备、战斗、榜单、竞猜、领奖等;)

---
 ServerPython/CoreServerGroup/GameServer/Script/NetPackCommon.py |   30 ++++++++++++++++++++++++++++++
 1 files changed, 30 insertions(+), 0 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/NetPackCommon.py b/ServerPython/CoreServerGroup/GameServer/Script/NetPackCommon.py
index 6ca8e2a..e354686 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/NetPackCommon.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/NetPackCommon.py
@@ -31,6 +31,8 @@
 import ChMapToGamePyPack
 import CrossRealmMsg
 import PlayerControl
+import ChPlayer
+import ShareDefine
 #-------------------------------------------------------------------------------
 #---全局变量---
 
@@ -241,6 +243,34 @@
         SendFakePack(curPlayer, clientPack)
     return
 
+def SendFakePackByCross(onlinePlayerIDDict, clientPack):
+    '''由跨服服务器直接给子服在线玩家发送封包,适用于接受的玩家封包数据一致的
+    @param onlinePlayerIDDict: 在线玩家GroupID字典 {playerID:groupID, ...}
+        功能自行通过 onlineMgr = ChPlayer.GetOnlinePlayerMgr() 过滤
+     onlineMgr.GetOLPlayerServerGroupID(playerID) 获取ServerGroupID
+    '''
+    if not onlinePlayerIDDict:
+        return
+    innerPackData = clientPack.GetBuffer()
+    dataMsg = {"playerIDList":onlinePlayerIDDict.keys(), "innerPackData":innerPackData}
+    CrossRealmMsg.SendMsgToClientServer(ShareDefine.CrossServerMsg_SendFakePack, dataMsg, onlinePlayerIDDict.values())
+    return
+
+def CrossServerMsg_SendFakePack(msgData):
+    ## 子服收到由跨服直接发送给玩家的封包
+    playerIDList = msgData["playerIDList"]
+    innerPackData = msgData["innerPackData"]
+    
+    playerManager = GameWorld.GetPlayerManager()
+    for playerID in playerIDList:
+        curPlayer = playerManager.FindPlayerByID(playerID)
+        if curPlayer == None:
+            continue
+        if PlayerControl.GetIsTJG(curPlayer):
+            continue
+        curPlayer.Sync_GeneralPack(len(innerPackData), innerPackData)
+            
+    return
 #-------------------------------------------------------------------------------
 #---Py封包注册信息
 PyPackTable = ReadPyPackTable("PyNetPack")

--
Gitblit v1.8.0