From 2e23f828b2583fe3ac10af50d0a736f2b6649198 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 08 七月 2024 15:25:56 +0800
Subject: [PATCH] 5537 【越南】分区热更新优化需求(跨服服务器重读配置时重新推送数据到子服;后台跨服主服维护增加操作类型 - 重新推送子服;)
---
ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/GMT_CrossServerMaintain.py | 14 +++++++++-----
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py | 7 +++++++
2 files changed, 16 insertions(+), 5 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/GMT_CrossServerMaintain.py b/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/GMT_CrossServerMaintain.py
index 1de499c..e04cf71 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/GMT_CrossServerMaintain.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/GMT_CrossServerMaintain.py
@@ -15,6 +15,7 @@
#"""Version = 2018-12-29 02:30"""
#-------------------------------------------------------------------------------
+import CrossRealmMsg
import DataRecordPack
import CrossRealmPlayer
import ShareDefine
@@ -46,15 +47,18 @@
# 状态更改
if operate == "on":
- isOpen = 1
+ CrossRealmPlayer.DoChangeCrossServerState(1)
elif operate == "off":
- isOpen = 0
+ CrossRealmPlayer.DoChangeCrossServerState(0)
+
+ # 同步子服
+ elif operate == "sync":
+ tick = GameWorld.GetGameWorld().GetTick()
+ CrossRealmMsg.Sync_CrossServerInitDataToClientServer(tick, serverGroupID=0)
+
else:
GMCommon.GMCommandResult(orderId, gmCmdDict, GMCommon.Def_ParamErr)
return
-
- # 变更服务器维护
- CrossRealmPlayer.DoChangeCrossServerState(isOpen)
# 记录流向
DataRecordPack.DR_ToolGMOperate(0, '', '', 'GMT_CrossServerMaintain', str(gmCmdDict))
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py
index 0c59fd9..3ab9c33 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py
@@ -419,6 +419,13 @@
return
def OnReloadConfig():
+
+ if GameWorld.IsCrossServer():
+ # 跨服重读时重推跨服相关数据
+ tick = GameWorld.GetGameWorld().GetTick()
+ CrossRealmMsg.Sync_CrossServerInitDataToClientServer(tick, serverGroupID=0) # 这里设置为0,广播所有子服务器组
+ return
+
return
#---------------------------------------------------------------------
--
Gitblit v1.8.0