From cf12ea809cd7c5b063ae284afc76e175df83d62d Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 21 一月 2025 18:56:58 +0800
Subject: [PATCH] 10263 【越南】【英文】【BT】【砍树】后端支持NPC仿真实玩家战斗和快速战斗(优化不创建战斗PK时玩家自身镜像数据同步;)

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

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerViewCacheTube.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerViewCacheTube.py
index 5395db3..6aff88a 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerViewCacheTube.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerViewCacheTube.py
@@ -112,6 +112,27 @@
 def SetPackDataCrossSyncState(curPlayer): UpdPackDataSyncState(curPlayer, {"PackDataCross":1})
 def SetViewCacheCrossSyncState(curPlayer): UpdPackDataSyncState(curPlayer, {"ViewCacheCross":1})
 
+def NormalSyncPackData(curPlayer):
+    '''常规同步打包数据,仅作为补充同步用,不强制同步
+    一般由需要打包数据的功能发起检查自动同步用,做战力验证,战力变更时主动同步一次
+    防止短时间内强化了战力,导致镜像数据差异太大,影响镜像战斗结果
+    '''
+    
+    syncFightPower = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_PackDataSyncFightPower)
+    if PlayerControl.GetFightPower(curPlayer) == syncFightPower:
+        GameWorld.DebugLog("战力与打包数据相同,不同步!", curPlayer.GetPlayerID())
+        return
+    GameWorld.DebugLog("战力与打包数据不同,立即同步!", curPlayer.GetPlayerID())
+    
+    syncState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_PackDataSyncState)
+    if not syncState:
+        SetPackDataSyncState(curPlayer)
+        SetPackDataCrossSyncState(curPlayer)
+        
+    tick = GameWorld.GetGameWorld().GetTick()
+    UpdateGameServerPlayerCache(curPlayer, tick)
+    return
+
 ##更新玩家当前详细信息到GameServer
 #  @param curPlayer, tick
 #  @return None

--
Gitblit v1.8.0