From f2c27280e1fae389220c22fd1ca3963c64743472 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 21 十二月 2018 11:25:01 +0800
Subject: [PATCH] 5424 【后端】【1.4】跨服竞技场开发(封包、定义、公共函数)

---
 ServerPython/CoreServerGroup/GameServer/Script/ReadChConfig.py                                      |    4 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ReadChConfig.py                 |    4 
 ServerPython/CoreServerGroup/GameServer/Script/GameWorld.py                                         |   21 +--
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py                  |   19 +++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py                  |   48 +++++++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py              |   25 +++-
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorld.py                    |   29 +++--
 ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py                                       |   48 +++++++++
 ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py                                       |   19 +++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py |   12 ++
 ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py                                   |   25 +++-
 11 files changed, 211 insertions(+), 43 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
index 8b5abdb..911f8be 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
@@ -15341,6 +15341,54 @@
 
 
 #------------------------------------------------------
+# C1 04 主动退出跨服 #tagCMExitCrossRealm
+
+class  tagCMExitCrossRealm(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xC1
+        self.SubCmd = 0x04
+        return
+
+    def ReadData(self, stringData, _pos=0, _len=0):
+        self.Clear()
+        memmove(addressof(self), stringData[_pos:], self.GetLength())
+        return _pos + self.GetLength()
+
+    def Clear(self):
+        self.Cmd = 0xC1
+        self.SubCmd = 0x04
+        return
+
+    def GetLength(self):
+        return sizeof(tagCMExitCrossRealm)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// C1 04 主动退出跨服 //tagCMExitCrossRealm:
+                                Cmd:%s,
+                                SubCmd:%s
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd
+                                )
+        return DumpString
+
+
+m_NAtagCMExitCrossRealm=tagCMExitCrossRealm()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMExitCrossRealm.Cmd,m_NAtagCMExitCrossRealm.SubCmd))] = m_NAtagCMExitCrossRealm
+
+
+#------------------------------------------------------
 # C1 11 跨服王者争霸押注 #tagCMMergeKingSupport
 
 class  tagCMMergeKingSupport(Structure):
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
index b6309d3..be4d3de 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -8127,7 +8127,8 @@
     RoomID = 0    #(WORD RoomID)// 房间ID
     NameLen = 0    #(BYTE NameLen)
     PlayerName = ""    #(String PlayerName)// 跨服名字
-    MatchPlayer=tagGCCrossRealmPKMatchPlayer()    #(tagGCCrossRealmPKMatchPlayer MatchPlayer)// 匹配到的玩家
+    MatchPlayerCount = 0    #(BYTE MatchPlayerCount)
+    MatchPlayer = list()    #(vector<tagGCCrossRealmPKMatchPlayer> MatchPlayer)// 匹配到的玩家
     data = None
 
     def __init__(self):
@@ -8142,7 +8143,11 @@
         self.RoomID,_pos = CommFunc.ReadWORD(_lpData, _pos)
         self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen)
-        _pos = self.MatchPlayer.ReadData(_lpData,_pos)
+        self.MatchPlayerCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        for i in range(self.MatchPlayerCount):
+            temMatchPlayer = tagGCCrossRealmPKMatchPlayer()
+            _pos = temMatchPlayer.ReadData(_lpData, _pos)
+            self.MatchPlayer.append(temMatchPlayer)
         return _pos
 
     def Clear(self):
@@ -8153,8 +8158,8 @@
         self.RoomID = 0
         self.NameLen = 0
         self.PlayerName = ""
-        self.MatchPlayer=tagGCCrossRealmPKMatchPlayer()
-        self.MatchPlayer.Clear()
+        self.MatchPlayerCount = 0
+        self.MatchPlayer = list()
         return
 
     def GetLength(self):
@@ -8163,7 +8168,9 @@
         length += 2
         length += 1
         length += len(self.PlayerName)
-        length += self.MatchPlayer.GetLength()
+        length += 1
+        for i in range(self.MatchPlayerCount):
+            length += self.MatchPlayer[i].GetLength()
 
         return length
 
@@ -8173,7 +8180,9 @@
         data = CommFunc.WriteWORD(data, self.RoomID)
         data = CommFunc.WriteBYTE(data, self.NameLen)
         data = CommFunc.WriteString(data, self.NameLen, self.PlayerName)
-        data = CommFunc.WriteString(data,self.MatchPlayer.GetLength(),self.MatchPlayer.GetBuffer())
+        data = CommFunc.WriteBYTE(data, self.MatchPlayerCount)
+        for i in range(self.MatchPlayerCount):
+            data = CommFunc.WriteString(data, self.MatchPlayer[i].GetLength(), self.MatchPlayer[i].GetBuffer())
         return data
 
     def OutputString(self):
@@ -8182,6 +8191,7 @@
                                 RoomID:%d,
                                 NameLen:%d,
                                 PlayerName:%s,
+                                MatchPlayerCount:%d,
                                 MatchPlayer:%s
                                 '''\
                                 %(
@@ -8189,7 +8199,8 @@
                                 self.RoomID,
                                 self.NameLen,
                                 self.PlayerName,
-                                self.MatchPlayer.OutputString()
+                                self.MatchPlayerCount,
+                                "..."
                                 )
         return DumpString
 
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorld.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorld.py
index f471d91..42d432a 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorld.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorld.py
@@ -418,18 +418,8 @@
     return GetGameWorld().GetServerVersion()
 
 def GetServerGroupID():
-    # 服务器组ID: 代表一台服务器中包含的合服、混服的各平台区服组成的一个独立游戏区服服务器环境, 用某个ID来代表此服务器
-    #            在跨服环境中,此ID就是代表来自同一台服务器子服的玩家
-    # 服务器组ID生成规则: DB平台标识对应编号 * 1000000 + DB配置的ServerID
-    # ServerID支持范围: 1~999999
-    # 平台编号支持范围:1~2000
-    platform = GetPlatform()
-    serverNum = GetPlatformServerNum(platform)
-    if not serverNum:
-        return 0
-    serverNum = max(1, min(2000, serverNum))
-    serverID = max(1, min(999999, GetServerID()))
-    return serverNum * 1000000 + serverID
+    ## 服务器组ID,必须唯一,代表这台物理服务器
+    return ToIntDef(ReadChConfig.GetPyMongoConfig("platform", "GroupID"), 0)
 
 def GetPlatformServerNum(platform):
     # 获取服务器的平台编号
@@ -864,6 +854,13 @@
     # 如果跨服服务器IP有配置, 或本身就是跨服服务器, 则代表开启
     return True if (config.get('MergeServerIP') or config.get('IsMergeWarServe')) else False
 
+def IsCrossServer():
+    ## 是否跨服服务器
+    return ToIntDef(ReadChConfig.GetPyMongoConfig("Merge", "IsMergeServer"), 0)
+
+def IsCrossRealmOpen():
+    ## 是否开启跨服活动
+    return ReadChConfig.GetPyMongoConfig("Merge", "MergeServerIP") or IsCrossServer()
 
 ## 获取玩家的区服名,仅在跨服有效
 #  @param curPlayer 玩家实例
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ReadChConfig.py b/ServerPython/CoreServerGroup/GameServer/Script/ReadChConfig.py
index 8d0621f..40bc7a3 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ReadChConfig.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ReadChConfig.py
@@ -215,7 +215,7 @@
 #  @param option: 配置项名
 #  @return
 #  @remarks \db\PyMongoDataServer\PyMongoDataServer.ini配置读取
-def GetPyMongoConfig(section, option):
+def GetPyMongoConfig(section, option, raw=False):
     global PyMongoDataServerConfig
     
     if not PyMongoDataServerConfig:
@@ -233,7 +233,7 @@
         GameWorld.ErrLog("PyMongoDataServer.ini找不到配置: section=%s,option=%s" % (section, option))
         return ""
     
-    strParam = PyMongoDataServerConfig.get(section, option)
+    strParam = PyMongoDataServerConfig.get(section, option, raw)
     return strParam
 
 def GetDBConfig(key): return __DoLogic_GetDBConfig(key)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py b/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
index a3cd5d6..024ff96 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
@@ -1193,6 +1193,25 @@
 CampType_Evil,       #邪恶(与 Def_ID2Win 一致)
 ] = range(3)
 
+# 跨服服务器发送子服信息定义
+CrossServerMsg_ExitCrossServer = "ExitCrossServer"      # 退出跨服服务器
+CrossServerMsg_Notify = "Notify"                        # 提示信息
+CrossServerMsg_PKMatchReqRet = "PKMatchReqRet"          # 跨服PK匹配请求结果
+CrossServerMsg_PKMatchResult = "PKMatchResult"          # 跨服PK匹配结果
+CrossServerMsg_PKReadyOKRoomList = "PKReadyOKRoomList"  # 跨服PK已准备好的房间列表
+CrossServerMsg_PKTimeoutRoomList = "PKTimeoutRoomList"  # 跨服PK已超时的房间列表
+CrossServerMsg_PKOverInfo = "PKOverInfo"                # 跨服PK结果
+CrossServerMsg_PKSeasonInfo = "PKSeasonInfo"            # 跨服PK赛季信息
+CrossServerMsg_PKSyncBillboard = "PKSyncBillboard"      # 跨服PK同步排行榜 
+CrossServerMsg_PKActionState = "PKActionState"          # 跨服PK活动状态变更
+
+# 子服发送跨服信息定义
+ClientServerMsg_ServerInitOK = "ServerInitOK"           # 子服启动成功
+ClientServerMsg_GMCMD = "GMCMD"                         # GM命令
+ClientServerMsg_PKMatch = "PKMatch"                     # 跨服PK匹配
+ClientServerMsg_PKCancel = "PKCancel"                   # 跨服PK取消匹配
+ClientServerMsg_PKPrepareOK = "PKPrepareOK"             # 跨服PK准备完毕
+
 #跨服匹配PK奖励类型
 Def_MergePKAwardTypeList = (
 Def_MergePKAward_DayPKCnt, # 0 每日挑战次数奖励
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
index 8b5abdb..911f8be 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
@@ -15341,6 +15341,54 @@
 
 
 #------------------------------------------------------
+# C1 04 主动退出跨服 #tagCMExitCrossRealm
+
+class  tagCMExitCrossRealm(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xC1
+        self.SubCmd = 0x04
+        return
+
+    def ReadData(self, stringData, _pos=0, _len=0):
+        self.Clear()
+        memmove(addressof(self), stringData[_pos:], self.GetLength())
+        return _pos + self.GetLength()
+
+    def Clear(self):
+        self.Cmd = 0xC1
+        self.SubCmd = 0x04
+        return
+
+    def GetLength(self):
+        return sizeof(tagCMExitCrossRealm)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// C1 04 主动退出跨服 //tagCMExitCrossRealm:
+                                Cmd:%s,
+                                SubCmd:%s
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd
+                                )
+        return DumpString
+
+
+m_NAtagCMExitCrossRealm=tagCMExitCrossRealm()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMExitCrossRealm.Cmd,m_NAtagCMExitCrossRealm.SubCmd))] = m_NAtagCMExitCrossRealm
+
+
+#------------------------------------------------------
 # C1 11 跨服王者争霸押注 #tagCMMergeKingSupport
 
 class  tagCMMergeKingSupport(Structure):
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
index b6309d3..be4d3de 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -8127,7 +8127,8 @@
     RoomID = 0    #(WORD RoomID)// 房间ID
     NameLen = 0    #(BYTE NameLen)
     PlayerName = ""    #(String PlayerName)// 跨服名字
-    MatchPlayer=tagGCCrossRealmPKMatchPlayer()    #(tagGCCrossRealmPKMatchPlayer MatchPlayer)// 匹配到的玩家
+    MatchPlayerCount = 0    #(BYTE MatchPlayerCount)
+    MatchPlayer = list()    #(vector<tagGCCrossRealmPKMatchPlayer> MatchPlayer)// 匹配到的玩家
     data = None
 
     def __init__(self):
@@ -8142,7 +8143,11 @@
         self.RoomID,_pos = CommFunc.ReadWORD(_lpData, _pos)
         self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen)
-        _pos = self.MatchPlayer.ReadData(_lpData,_pos)
+        self.MatchPlayerCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        for i in range(self.MatchPlayerCount):
+            temMatchPlayer = tagGCCrossRealmPKMatchPlayer()
+            _pos = temMatchPlayer.ReadData(_lpData, _pos)
+            self.MatchPlayer.append(temMatchPlayer)
         return _pos
 
     def Clear(self):
@@ -8153,8 +8158,8 @@
         self.RoomID = 0
         self.NameLen = 0
         self.PlayerName = ""
-        self.MatchPlayer=tagGCCrossRealmPKMatchPlayer()
-        self.MatchPlayer.Clear()
+        self.MatchPlayerCount = 0
+        self.MatchPlayer = list()
         return
 
     def GetLength(self):
@@ -8163,7 +8168,9 @@
         length += 2
         length += 1
         length += len(self.PlayerName)
-        length += self.MatchPlayer.GetLength()
+        length += 1
+        for i in range(self.MatchPlayerCount):
+            length += self.MatchPlayer[i].GetLength()
 
         return length
 
@@ -8173,7 +8180,9 @@
         data = CommFunc.WriteWORD(data, self.RoomID)
         data = CommFunc.WriteBYTE(data, self.NameLen)
         data = CommFunc.WriteString(data, self.NameLen, self.PlayerName)
-        data = CommFunc.WriteString(data,self.MatchPlayer.GetLength(),self.MatchPlayer.GetBuffer())
+        data = CommFunc.WriteBYTE(data, self.MatchPlayerCount)
+        for i in range(self.MatchPlayerCount):
+            data = CommFunc.WriteString(data, self.MatchPlayer[i].GetLength(), self.MatchPlayer[i].GetBuffer())
         return data
 
     def OutputString(self):
@@ -8182,6 +8191,7 @@
                                 RoomID:%d,
                                 NameLen:%d,
                                 PlayerName:%s,
+                                MatchPlayerCount:%d,
                                 MatchPlayer:%s
                                 '''\
                                 %(
@@ -8189,7 +8199,8 @@
                                 self.RoomID,
                                 self.NameLen,
                                 self.PlayerName,
-                                self.MatchPlayer.OutputString()
+                                self.MatchPlayerCount,
+                                "..."
                                 )
         return DumpString
 
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorld.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorld.py
index 56dc210..0de2912 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorld.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorld.py
@@ -1016,18 +1016,8 @@
     return GetGameWorld().GetServerVersion()
 
 def GetServerGroupID():
-    # 服务器组ID: 代表一台服务器中包含的合服、混服的各平台区服组成的一个独立游戏区服服务器环境, 用某个ID来代表此服务器
-    #            在跨服环境中,此ID就是代表来自同一台服务器子服的玩家
-    # 服务器组ID生成规则: DB平台标识对应编号 * 1000000 + DB配置的ServerID
-    # ServerID支持范围: 1~999999
-    # 平台编号支持范围:1~2000
-    platform = GetPlatform()
-    serverNum = GetPlatformServerNum(platform)
-    if not serverNum:
-        return 0
-    serverNum = max(1, min(2000, serverNum))
-    serverID = max(1, min(999999, GetServerID()))
-    return serverNum * 1000000 + serverID
+    ## 服务器组ID,必须唯一,代表这台物理服务器
+    return ToIntDef(ReadChConfig.GetPyMongoConfig("platform", "GroupID"), 0)
 
 def GetPlatformServerNum(platform):
     # 获取服务器的平台编号
@@ -1590,6 +1580,9 @@
         
     return config.get('IsMergeWarServe', 0)
 
+def IsCrossServer():
+    ## 是否跨服服务器
+    return ToIntDef(ReadChConfig.GetPyMongoConfig("Merge", "IsMergeServer"), 0)
 
 ## 时间格式转换成数值时间,可参考datetime.datetime.fromtimestamp(102645645)
 #  @param timeNum
@@ -1843,6 +1836,18 @@
                                                     'SendMergerChildMsg', msgList, len(msgList))
     return
 
+def SendMsgToCrossServer(msgType, dataMsg, srcPlayerID=0, queryType=0, queryID=0):
+    ## 发送信息到跨服服务器
+    msgList = str([msgType, dataMsg])
+    GetPlayerManager().GameServer_QueryPlayerResult(srcPlayerID, queryType, queryID, "SendMsgToCrossServer", msgList, len(msgList))
+    return
+
+def SendMsgToClientServer(msgType, dataMsg, serverGroupIDList, srcPlayerID=0, queryType=0, queryID=0):
+    ## 发送信息到子服
+    msgList = str([msgType, dataMsg, serverGroupIDList])
+    GetPlayerManager().GameServer_QueryPlayerResult(srcPlayerID, queryType, queryID, "SendMsgToClientServer", msgList, len(msgList))
+    return
+
 ## 根据排行获取名次对应值
 #  @param orderDict {名次:obj, ...} 名次支持段跳跃
 #  @param order 名次,从1开始
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ReadChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ReadChConfig.py
index 5e20d9a..8332ced 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ReadChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ReadChConfig.py
@@ -219,7 +219,7 @@
 #  @param option: 配置项名
 #  @return
 #  @remarks \db\PyMongoDataServer\PyMongoDataServer.ini配置读取
-def GetPyMongoConfig(section, option):
+def GetPyMongoConfig(section, option, raw=False):
     global PyMongoDataServerConfig
     
     if not PyMongoDataServerConfig:
@@ -237,7 +237,7 @@
         GameWorld.ErrLog("PyMongoDataServer.ini找不到配置: section=%s,option=%s" % (section, option))
         return ""
     
-    strParam = PyMongoDataServerConfig.get(section, option)
+    strParam = PyMongoDataServerConfig.get(section, option, raw)
     return strParam
 
 def GetDBConfig(key): return __DoLogic_GetDBConfig(key)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
index a3cd5d6..dbc52cf 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
@@ -1193,6 +1193,25 @@
 CampType_Evil,       #邪恶(与 Def_ID2Win 一致)
 ] = range(3)
 
+# 跨服服务器发送子服信息定义
+CrossServerMsg_ExitCrossServer = "ExitCrossServer"      # 退出跨服服务器
+CrossServerMsg_Notify = "Notify"                        # 提示信息
+CrossServerMsg_PKMatchReqRet = "PKMatchReqRet"          # 跨服PK匹配请求结果
+CrossServerMsg_PKMatchResult = "PKMatchResult"          # 跨服PK匹配结果
+CrossServerMsg_PKReadyOKRoomList = "PKMatchResult"      # 跨服PK已准备好的房间列表
+CrossServerMsg_PKTimeoutRoomList = "PKTimeoutRoomList"  # 跨服PK已超时的房间列表
+CrossServerMsg_PKOverInfo = "PKOverInfo"                # 跨服PK结果
+CrossServerMsg_PKSeasonInfo = "PKSeasonInfo"            # 跨服PK赛季信息
+CrossServerMsg_PKSyncBillboard = "PKSyncBillboard"      # 跨服PK同步排行榜 
+CrossServerMsg_PKActionState = "PKActionState"          # 跨服PK活动状态变更
+
+# 子服发送跨服信息定义
+ClientServerMsg_ServerInitOK = "ServerInitOK"           # 子服启动成功
+ClientServerMsg_GMCMD = "GMCMD"                         # GM命令
+ClientServerMsg_PKMatch = "PKMatch"                     # 跨服PK匹配
+ClientServerMsg_PKCancel = "PKCancel"                   # 跨服PK取消匹配
+ClientServerMsg_PKPrepareOK = "PKPrepareOK"             # 跨服PK准备完毕
+
 #跨服匹配PK奖励类型
 Def_MergePKAwardTypeList = (
 Def_MergePKAward_DayPKCnt, # 0 每日挑战次数奖励
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py
index 52a495c..bdde78b 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py
@@ -224,7 +224,8 @@
         GameWorld.DebugLog("非跨服服务器上线不清除buff...", playerID)
         return
     
-    ClearBuffSkillTypeIDList = ReadChConfig.GetEvalChConfig("ClearBuffSkillTypeID")
+    #ClearBuffSkillTypeIDList = ReadChConfig.GetEvalChConfig("ClearBuffSkillTypeID")
+    ClearBuffSkillTypeIDList = []
     # 跨服服务器上线清除增益/减益buff
     GameWorld.Log("跨服服务器上线清除buff...", playerID)
     clearBuffList = [] # 先汇总再清除,不然索引会变更
@@ -281,6 +282,15 @@
                                % (curSkill.GetSkillName(), curSkill.GetSkillTypeID()), playerID)
     return
 
+def ResetAllSkillCD(curPlayer):
+    skillManager = curPlayer.GetSkillManager()
+    for i in xrange(skillManager.GetSkillCount()):
+        skill = skillManager.GetSkillByIndex(i)
+        if skill.GetRemainTime() != 0:
+            skill.SetRemainTime(0)
+            skill.Sync_Skill()
+    return
+
 ## 刷新玩家所有技能的剩余时间(上线)
 #  @param curPlayer 当前玩家
 #  @param tick 当前时间

--
Gitblit v1.8.0