From bff78f9f81baa164a8fab4a80a4367543e63a76c Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 29 十一月 2024 14:55:11 +0800
Subject: [PATCH] 10312 【越南】【英文】【bt】【砍树】查看跨服玩家数据向对应子服查询

---
 ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerPackData.py |   21 +++++----------------
 1 files changed, 5 insertions(+), 16 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerPackData.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerPackData.py
index 11fb6b1..8ec303d 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerPackData.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerPackData.py
@@ -136,16 +136,7 @@
     playerID = curPlayer.GetPlayerID()
     packDataMgr = PyDataManager.GetDBPlayerPackDataManager()
     if playerID in packDataMgr.playerPackDataDict:
-        isCross, isNeed = 0, 1
-        QueryPlayerResult_PlayerMirror(curPlayer, "PackDataSyncState", [isCross, isNeed])
-    return
-
-def OnPlayerLogin_CrossLogic(serverGroupID, serverID, playerID):
-    ## 跨服登录逻辑
-    packDataMgr = PyDataManager.GetDBPlayerPackDataManager()
-    if playerID in packDataMgr.playerPackDataDict:
-        dataMsg = {"playerID":playerID}
-        CrossRealmMsg.SendMsgToClientServer(ShareDefine.CrossServerMsg_PlayerPackDataState, dataMsg, [serverGroupID])
+        QueryPlayerResult_PlayerMirror(curPlayer, "PackDataSyncState", {"PackData":1})
     return
 
 def SetNeedPackData(playerIDList):
@@ -340,8 +331,7 @@
     curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(playerID)
     if not curPlayer:
         return
-    isCross, isNeed = 1, 1
-    QueryPlayerResult_PlayerMirror(curPlayer, "PackDataSyncState", [isCross, isNeed])
+    QueryPlayerResult_PlayerMirror(curPlayer, "PackDataSyncState", msgData)
     return
 
 def CrossServerMsg_PullPlayerPackData(msgData):
@@ -375,7 +365,7 @@
     curPlayer.MapServer_QueryPlayerResult(0, 0, "PlayerMirror", sysMsg, len(sysMsg))
     return
 
-def OnMGUpdatePlayerPackData(curPlayer, curPackData):
+def OnMGUpdatePlayerPackData(curPlayer, curPackData, msgInfo):
     ## 地图同步更新的玩家打包数据
     if GameWorld.IsCrossServer():
         return
@@ -384,14 +374,13 @@
     packData = curPackData.PackData
     if not packDataSyncState or not packData:
         return
-    msgInfo = eval(curPackData.PackMsg) if curPackData.PackMsg else {} # 打包数据附带的信息
     
     # 本服需要,先更新数据
-    if packDataSyncState % 10:
+    if packDataSyncState&pow(2, 0):
         PyDataManager.GetDBPlayerPackDataManager().UpdPlayerPackData(playerID, packData)
         
     # 跨服需要,同步给跨服,由跨服服务器再进一步处理
-    if packDataSyncState / 10:
+    if packDataSyncState&pow(2, 1):
         cacheBase = PlayerViewCache.GetSyncCrossCacheBase(curPlayer) if curPlayer else {}
         dataMsg = {"playerID":playerID, "packData":packData, "cacheBase":cacheBase, "msgInfo":msgInfo}
         CrossRealmMsg.SendMsgToCrossServer(ShareDefine.ClientServerMsg_PlayerPackData, dataMsg)

--
Gitblit v1.8.0