From e893a6cab624a161ae6c09dd48dfd1f1e97d929b Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期五, 26 十月 2018 15:01:08 +0800 Subject: [PATCH] 3964 【后端】防范登录下线流程错误 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py | 25 +++++++++++++++++-------- 1 files changed, 17 insertions(+), 8 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py index d80d601..9533992 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py @@ -925,14 +925,23 @@ #这里只做初始化逻辑 #在玩家切换场景的时候, 不会调用到这里 curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index) - InitLoginPlayer(curPlayer, tick) - DoPlayerLogin(curPlayer, tick) + try: + InitLoginPlayer(curPlayer, tick) + DoPlayerLogin(curPlayer, tick) + + #锁住玩家, 等到读取地图成功, 再解锁 + curPlayer.SetCanMove(False) + + #登陆发图形验证码 + PlayerAutoCheckOnline.PlayerLoginCaptcha(curPlayer, tick) + except: + curPlayer.Kick(IPY_GameWorld.disWaitForPlayerLoinError) + import traceback + GameWorld.ErrLog("玩家上线逻辑错误~~~~~\r\n%s" % traceback.format_exc()) + if GameWorld.GetGameWorld().GetDebugLevel(): + raise Exception("玩家上线逻辑错误~~~~\r\n%s" % traceback.format_exc()) + return - #锁住玩家, 等到读取地图成功, 再解锁 - curPlayer.SetCanMove(False) - - #登陆发图形验证码 - PlayerAutoCheckOnline.PlayerLoginCaptcha(curPlayer, tick) #--------------------------------------------------------------------- ##C++封包触发, 玩家切换地图的时候, 在本地图登录 @@ -2420,7 +2429,7 @@ import traceback GameWorld.ErrLog("玩家下线逻辑错误~~~~~\r\n%s" % traceback.format_exc()) if GameWorld.GetGameWorld().GetDebugLevel(): - raise Exception("玩家下线~~~~~\r\n%s" % traceback.format_exc()) + raise Exception("玩家下线逻辑错误~~~~~\r\n%s" % traceback.format_exc()) #调用底层使玩家下线 curPlayer.DoDisconnect(tick) -- Gitblit v1.8.0