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