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