ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
@@ -68,6 +68,7 @@ import GMT_CTG import PyGameData import GMShell import IPY_PlayerDefine #--------------------------------------------------------------------- #--------------------------------------------------------------------- @@ -77,7 +78,15 @@ # @return None # @remarks 登陆顺序, PlayerLogin->PlayerLoadMapState(PlayerLoginLoadMapOK), 此处未设置初始化状态 def PlayerLogin(index, tick): GameWorld.GetPsycoFunc(__Func_PlayerLogin)(index, tick) curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index) try: __Func_PlayerLogin(curPlayer, tick) except: curPlayer.Kick(IPY_PlayerDefine.disWaitForPlayerLoinError) import traceback GameWorld.ErrLog("玩家上线逻辑错误~~~~~\r\n%s" % traceback.format_exc()) if GameWorld.GetGameWorld().GetDebugLevel(): raise Exception("玩家上线逻辑错误~~~~\r\n%s" % traceback.format_exc()) return #--------------------------------------------------------------------- @@ -86,10 +95,8 @@ # @param tick 当前时间 # @return None # @remarks 登陆顺序, PlayerLogin->PlayerLoadMapState(PlayerLoginLoadMapOK), 此处未设置初始化状态 def __Func_PlayerLogin(index, tick): def __Func_PlayerLogin(curPlayer, tick): #玩家登录初始化 curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index) #玩家在线时间初始化 InitPlayerOnLineTime(curPlayer, tick) #玩家响应信息初始化 @@ -483,7 +490,16 @@ # @return None # @remarks 函数详细说明. def PlayerDisconnect(index, tick): GameWorld.GetPsycoFunc(__Func_PlayerDisconnect)(index, tick) curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index) try: __Func_PlayerDisconnect(curPlayer, tick) except: import traceback GameWorld.ErrLog("玩家下线逻辑错误~~~~~\r\n%s" % traceback.format_exc()) if GameWorld.GetGameWorld().GetDebugLevel(): raise Exception("玩家下线逻辑错误~~~~\r\n%s" % traceback.format_exc()) #调用底层下线 curPlayer.DoDisconnect() return ## 玩家下线(封包参数) @@ -491,8 +507,7 @@ # @param tick 当前时间 # @return None # @remarks 函数详细说明. def __Func_PlayerDisconnect(index, tick): curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index) def __Func_PlayerDisconnect(curPlayer, tick): #跨服匹配PK #GameWorldMergePK.OnLeaveServer(curPlayer) @@ -510,8 +525,6 @@ #MergePlayer.OnPlayerLeaveGotoMergeServer(curPlayer, tick) #------------镖车逻辑 #TruckPlayerDisconnectProcess(curPlayer, tick) #调用底层下线 curPlayer.DoDisconnect() return ## 设置玩家离线时间 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) ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py
@@ -426,9 +426,17 @@ # @remarks 函数详细说明. def GameServer_InitOK(index, tick): curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index) #通知BServer自己OK了 curPlayer.SendToBServerServerInitOK() ChPlayer.OnAllServerInitOK(curPlayer, tick) try: #通知BServer自己OK了 curPlayer.SendToBServerServerInitOK() ChPlayer.OnAllServerInitOK(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 #-------------------------------------------------------- def PlayerOnDay(curPlayer):