From 6834282d0466dc61064a0a08296b239dc266cf71 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 17 三月 2021 18:14:53 +0800
Subject: [PATCH] 4742 【BT】在跨服购买跨服boss次数后没有生效(购买boss次数立马同步;onday时立马同步)

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

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/CrossPlayerData.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/CrossPlayerData.py
index cfb419d..db1c271 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/CrossPlayerData.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/CrossPlayerData.py
@@ -320,18 +320,26 @@
     #GameWorld.DebugLog("标记需要同步跨服玩家战力变更相关数据! tick=%s" % tick, curPlayer.GetPlayerID())
     return
 
+def SendMergePlayerDataNow(curPlayer):
+    ## 马上同步一次玩家数据到跨服 MergeData_Player
+    GameWorld.DebugLog("SendMergePlayerDataNow")
+    ProcessCrossPlayer(curPlayer, 0)
+    return
+
 def ProcessCrossPlayer(curPlayer, tick):
     ## 跨服状态的本服玩家处理
     if not IsNeedProcessCrossPlayer(curPlayer):
         return
     
     playerID = curPlayer.GetPlayerID()
-    if playerID not in PyGameData.g_crossSyncTickDict:
-        return
-    setTick = PyGameData.g_crossSyncTickDict[playerID]
-    if tick - setTick < IpyGameDataPY.GetFuncCfg("CrossSyncPlayerData", 1) * 1000:
-        return
-    PyGameData.g_crossSyncTickDict.pop(playerID)
+    # tick 传0时不检查CD,立即同步
+    if tick:
+        if playerID not in PyGameData.g_crossSyncTickDict:
+            return
+        setTick = PyGameData.g_crossSyncTickDict[playerID]
+        if tick - setTick < IpyGameDataPY.GetFuncCfg("CrossSyncPlayerData", 1) * 1000:
+            return
+    PyGameData.g_crossSyncTickDict.pop(playerID, None)
     GameWorld.DebugLog("开始同步本服变更的属性...", playerID)
     
     try:

--
Gitblit v1.8.0