From e3120a145fc56ca559b548aecc539fa297670a5b Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期日, 30 十二月 2018 17:50:59 +0800
Subject: [PATCH] 5424 【后端】【1.4】跨服竞技场开发(GM工具增加子服服务器维护)
---
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmMsg.py | 3 +
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py | 1
ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/GMT_CrossClientServerMaintain.py | 69 ++++++++++++++++++++++++++++++++++
ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py | 1
4 files changed, 74 insertions(+), 0 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/GMT_CrossClientServerMaintain.py b/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/GMT_CrossClientServerMaintain.py
new file mode 100644
index 0000000..c76cf70
--- /dev/null
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/GMT_CrossClientServerMaintain.py
@@ -0,0 +1,69 @@
+#!/usr/bin/python
+# -*- coding: GBK -*-
+#-------------------------------------------------------------------------------
+#
+##@package GM.Commands.GMT_CrossClientServerMaintain
+#
+# @todo:跨服子服维护
+# @author hxp
+# @date 2018-12-30
+# @version 1.0
+#
+# 详细描述: 跨服子服维护
+#
+#-------------------------------------------------------------------------------
+#"""Version = 2018-12-30 18:00"""
+#-------------------------------------------------------------------------------
+
+import ShareDefine
+import DataRecordPack
+import CrossRealmMsg
+import GameWorld
+import GMCommon
+
+#---------------------------------------------------------------------
+
+## 执行逻辑
+# @param curPlayer 当前玩家
+# @param gmCmdDict: 命令字典
+# @return None
+# @remarks 函数详细说明.
+def OnExec(orderId, gmCmdDict):
+
+ GameWorld.Log("GMT_CrossClientServerMaintain gmCmdDict=%s" % str(gmCmdDict))
+ operate = gmCmdDict.get('operate', '')
+
+ strMsg = ""
+ if GameWorld.IsCrossServer():
+ strMsg = "this server is cross server. can not do!"
+
+ # 查询跨服状态
+ elif operate == "cross_server_state":
+ isOpen = GameWorld.GetGameWorld().GetDictByKey(ShareDefine.Def_Notify_WorldKey_CrossServerOpen)
+ isConn = GameWorld.GetGameWorld().GetDictByKey(ShareDefine.Def_Notify_WorldKey_CrossServerConnState)
+ strMsg = {"OpenState":isOpen, "ConnState":isConn}
+
+ # 查询跨服PK状态
+ elif operate == "cross_pk_state":
+ gameWorld = GameWorld.GetGameWorld()
+ zoneID = gameWorld.GetDictByKey(ShareDefine.Def_Notify_WorldKey_CrossPKZoneID)
+ seasonID = gameWorld.GetDictByKey(ShareDefine.Def_Notify_WorldKey_CrossPKSeasonID)
+ seasonState = gameWorld.GetDictByKey(ShareDefine.Def_Notify_WorldKey_CrossPKSeasonState)
+ matchState = gameWorld.GetDictByKey(ShareDefine.Def_Notify_WorldKey_CrossDailyActionState % ShareDefine.DailyActionID_CrossReamPK)
+
+ strMsg = {"GroupID":GameWorld.GetServerGroupID(), "ZoneID":zoneID, "SeasonID":seasonID, "SeasonState":seasonState, "MatchState":matchState}
+
+ # 重新同步跨服状态
+ elif operate == "reconn_cross_Server":
+ CrossRealmMsg.OnGameServerInitOK()
+
+ else:
+ GMCommon.GMCommandResult(orderId, gmCmdDict, GMCommon.Def_ParamErr)
+ return
+
+ # 记录流向
+ DataRecordPack.DR_ToolGMOperate(0, '', '', 'GMT_CrossClientServerMaintain', str(gmCmdDict))
+ # 回复
+ GMCommon.GMCommandResult(orderId, gmCmdDict, GMCommon.Def_Success, strMsg=strMsg)
+ return
+
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmMsg.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmMsg.py
index 68fc0cc..2acf04c 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmMsg.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmMsg.py
@@ -171,6 +171,9 @@
## 子服收到跨服服务器信息
dataPack = IPY_GameServer.IPY_LGCrossLoginResult()
result = dataPack.GetResult()
+ connState = 1 if result == 1 else 0
+ GameWorld.GetGameWorld().SetDict(ShareDefine.Def_Notify_WorldKey_CrossServerConnState, connState)
+
if result != 1:
GameWorld.Log("--OnClientServerReceiveMsg disconn")
CrossRealmPlayer.CrossServerMsg_CrossServerState({"isOpen":0})
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py b/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
index 7698495..ab8a4c2 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
@@ -167,6 +167,7 @@
Def_Notify_WorldKey_FamilyPartyInfo = "FamilyPartyInfo" # 仙盟宴会数据
+Def_Notify_WorldKey_CrossServerConnState = "CrossServerConnState" # 跨服服务器链接状态
Def_Notify_WorldKey_CrossServerOpen = "CrossServerOpen" # 跨服服务器是否开启中
Def_Notify_WorldKey_CrossPKZoneID = "CrossPKZoneID" # 本服跨服PK所属赛区
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
index e58e34e..f7ca7ff 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
@@ -167,6 +167,7 @@
Def_Notify_WorldKey_FamilyPartyInfo = "FamilyPartyInfo" # 仙盟宴会数据
+Def_Notify_WorldKey_CrossServerConnState = "CrossServerConnState" # 跨服服务器链接状态
Def_Notify_WorldKey_CrossServerOpen = "CrossServerOpen" # 跨服服务器是否开启中
Def_Notify_WorldKey_CrossPKZoneID = "CrossPKZoneID" # 本服跨服PK所属赛区
--
Gitblit v1.8.0