From ed55412a729dc711b908bef765e2465866b2c4e7 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 17 一月 2019 23:07:52 +0800
Subject: [PATCH] 5722 【后端】【1.5】跨服BOSS开发(同步影响玩家战力的属性、字典到跨服服务器,暂定延迟5秒同步)

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

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
index 6e7664b..8d1217a 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
@@ -86,6 +86,7 @@
 import PlayerCrossRealmPK
 import FunctionNPCCommon
 import CrossRealmPlayer
+import CrossPlayerData
 import ChNetSendPack
 import PlayerCoat
 import PlayerState
@@ -1208,6 +1209,9 @@
     PyGameData.g_needRefreshMapServerState = True # 有玩家离开地图设置需要刷新
     
     PlayerSuccess.FinishDelayAddSuccessProgress(curPlayer, tick)
+    
+    if not isDisconnect:
+        CrossPlayerData.ClearCrossSyncDataCache(curPlayer)
     return
 
 ##更新保存玩家在线时间
@@ -4787,6 +4791,7 @@
         PlayerBillboard.UpdatePlayerFPTotalBillboard(curPlayer)
         # 记录开服活动数据
         OpenServerCampaign.UpdOpenServerCampaignRecordData(curPlayer, ShareDefine.Def_Campaign_Type_FightPower, totalFightPower)
+        CrossPlayerData.OnPlayerFightPowerChange(curPlayer)
         return
     
     def __RefreshMoveSpeed(self, allAttrListBuffs):
@@ -5744,6 +5749,8 @@
 def GetCrossMapID(curPlayer): return curPlayer.GetExAttr5()
 def SetCrossMapID(curPlayer, value):
     curPlayer.SetExAttr5(value, False, True)
+    if not value:
+        CrossPlayerData.ClearCrossSyncDataCache(curPlayer)
     return
 
 ## 铜钱点, 支持铜钱超20亿
@@ -6798,6 +6805,13 @@
 #-------------------------------------------------------------------------------
 ## 设置玩家字典值, 存库
 def NomalDictSetProperty(curPlayer, key, value, dType=0):
+    if CrossPlayerData.IsNeedProcessCrossPlayer(curPlayer) and key not in \
+        [ChConfig.Def_PDict_FightPower_Total, ChConfig.Def_PlayerKey_CrossRegisterMap]:
+        playerID = curPlayer.GetPlayerID()
+        changeDict = PyGameData.g_crossPlayerDictChangeInfo.get(playerID, {})
+        changeDict[(key, dType)] = value
+        PyGameData.g_crossPlayerDictChangeInfo[playerID] = changeDict
+        
     if value == 0:
         curPlayer.NomalDictDelProperty(key, dType)
         return

--
Gitblit v1.8.0