From 70c43a79d99c93fc5fe8976006ca1a8a1570a0f5 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期一, 25 十月 2021 12:07:52 +0800 Subject: [PATCH] 9302 【BT5】【主干】【后端】GameServer启动慢后续优化处理 --- ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmMsg.py | 44 ++++++++++++++++++++++++++++++++++---------- 1 files changed, 34 insertions(+), 10 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmMsg.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmMsg.py index 941b762..4352872 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmMsg.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmMsg.py @@ -21,6 +21,8 @@ import IPY_GameServer import CrossRealmPlayer import PlayerCompensation +import CrossActionControl +import CrossBillboard import GameWorldBoss import CrossRealmPK import PlayerQuery @@ -53,7 +55,6 @@ def OnCrossServerReceiveMsg(recvMsg, tick): ## 跨服服务器收到信息处理 try: - GameWorld.Log("收到OnCrossServerReceiveMsg" ) if not GameWorld.GetGameWorld().GetDictByKey(ChConfig.Def_WorldKey_GameWorldInitOK): GameWorld.Log("服务器未启动好,不处理子服信息!") return @@ -68,6 +69,9 @@ if msgType == ShareDefine.ClientServerMsg_PKMatch: CrossRealmPK.ClientServerMsg_PKMatch(serverGroupID, msgData, tick) + elif msgType == ShareDefine.ClientServerMsg_PKRobotOver: + CrossRealmPK.ClientServerMsg_PKRobotOver(serverGroupID, msgData, tick) + elif msgType == ShareDefine.ClientServerMsg_PKCancel: CrossRealmPK.ClientServerMsg_PKCancel(msgData, tick) @@ -76,7 +80,16 @@ elif msgType == ShareDefine.ClientServerMsg_PKBillboard: CrossRealmPK.ClientServerMsg_PKBillboard(serverGroupID, msgData) - + + elif msgType == ShareDefine.ClientServerMsg_QueryBillboard: + CrossBillboard.ClientServerMsg_QueryBillboard(serverGroupID, msgData) + + elif msgType == ShareDefine.ClientServerMsg_UpdateBillboard: + CrossBillboard.ClientServerMsg_UpdateBillboard(serverGroupID, msgData) + + elif msgType == ShareDefine.ClientServerMsg_MailContent: + PlayerCompensation.ClientServerMsg_MailContent(serverGroupID, msgData, tick) + elif msgType == ShareDefine.ClientServerMsg_ChatCrossWorld: PlayerTalk.ClientServerMsg_ChatCrossWorld(serverGroupID, msgData, tick) @@ -109,9 +122,7 @@ GameWorld.ErrLog("没有该信息类型逻辑处理!") except: - GameWorld.ErrLog("OnCrossServerReceiveMsg:%s; except:%s" % (cPickle.loads(recvMsg), traceback.format_exc())) - if GameWorld.GetGameWorld().GetDebugLevel(): - raise BaseException(str(traceback.format_exc())) + GameWorld.RaiseException("跨服服务器接收信息处理报错 \r\n%s" % str(traceback.format_exc())) return def ClientServerMsg_ServerInitOK(serverGroupID, tick): @@ -133,6 +144,8 @@ CrossRealmPlayer.Sync_CrossCommInitDataToClientServer(serverGroupID) CrossRealmPK.Sync_CrossPKInitDataToClientServer(tick, serverGroupID) CrossBoss.Sync_CrossBossInitDataToClientServer(serverGroupID) + CrossActionControl.Sync_CrossActInfoToClientServer(serverGroupID) + PlayerCompensation.Sync_CrossMailPlayerIDToClientServer(serverGroupID) return def MapServer_CrossServerReceiveMsg(msgType, msgData, serverGroupID): @@ -207,7 +220,6 @@ dataMsg = dataPack.GetData() try: - GameWorld.Log("收到OnClientServerReceiveMsg" ) if not GameWorld.GetGameWorld().GetDictByKey(ChConfig.Def_WorldKey_GameWorldInitOK): GameWorld.Log("服务器未启动好,不处理跨服信息!") return @@ -250,11 +262,17 @@ elif msgType == ShareDefine.CrossServerMsg_PKSyncBillboard: CrossRealmPK.CrossServerMsg_PKSyncBillboard(msgData) + elif msgType == ShareDefine.CrossServerMsg_SyncBillboard: + CrossBillboard.CrossServerMsg_SyncBillboard(msgData, tick) + elif msgType == ShareDefine.CrossServerMsg_CrossBossInfo: CrossBoss.CrossServerMsg_CrossBossInfo(msgData) elif msgType == ShareDefine.CrossServerMsg_CrossBossState: CrossBoss.CrossServerMsg_CrossBossState(msgData) + + elif msgType == ShareDefine.CrossServerMsg_CrossActInfo: + CrossActionControl.CrossServerMsg_CrossActInfo(msgData) elif msgType == ShareDefine.CrossServerMsg_PutInItem: CrossRealmPlayer.CrossServerMsg_PutInItem(msgData) @@ -274,6 +292,15 @@ elif msgType == ShareDefine.CrossServerMsg_SendMail: PlayerCompensation.CrossServerMsg_SendMail(msgData) + elif msgType == ShareDefine.CrossServerMsg_MailPlayerIDList: + PlayerCompensation.CrossServerMsg_MailPlayerIDList(msgData) + + elif msgType == ShareDefine.CrossServerMsg_MailContent: + PlayerCompensation.CrossServerMsg_MailContent(msgData) + + elif msgType == ShareDefine.CrossServerMsg_FBPlayerCount: + PlayerFB.CrossServerMsg_FBPlayerCount(msgData) + # 需要发送到地图服务器处理的 elif msgType in [ShareDefine.CrossServerMsg_RebornRet, ShareDefine.CrossServerMsg_CollectNPCOK, ShareDefine.CrossServerMsg_FBEnd, ShareDefine.CrossServerMsg_NPCAttackCount]: @@ -286,10 +313,7 @@ GameWorld.ErrLog("没有该信息类型逻辑处理!") except: - GameWorld.ErrLog("OnClientServerReceiveMsg:%s; except:%s" % (cPickle.loads(dataMsg), traceback.format_exc())) - if GameWorld.GetGameWorld().GetDebugLevel(): - raise BaseException(str(traceback.format_exc())) - + GameWorld.RaiseException("子服服务器接收信息处理报错\r\n%s" % str(traceback.format_exc())) return def MapServer_ClientServerReceiveMsg(msgType, msgData): -- Gitblit v1.8.0