From ef7af852562f860104278853805cceb2cfa412eb Mon Sep 17 00:00:00 2001 From: xdh <xiefantasy@qq.com> Date: 星期二, 30 十月 2018 19:53:58 +0800 Subject: [PATCH] 4456 【1.2】【后端】古神禁地挂机经验配置优化 4449 【1.2】【后端】仙盟宴会传功经验 --- ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py | 35 +++++++++++++++++++++++++---------- 1 files changed, 25 insertions(+), 10 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py index 4452fb6..ec1801a 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py @@ -63,10 +63,12 @@ import IpyGameDataPY import PlayerTalk import PlayerGeTui +import PlayerStore import GameWorldActionControl import GMT_CTG import PyGameData import GMShell +import IPY_PlayerDefine #--------------------------------------------------------------------- #--------------------------------------------------------------------- @@ -76,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 #--------------------------------------------------------------------- @@ -85,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) #玩家响应信息初始化 @@ -143,7 +151,8 @@ PlayerXMZZ.OnXMZZOnLogin(curPlayer) #等级奖励 PlayerLVAward.OnPlayerLogin(curPlayer) - + #商店购买次数 + PlayerStore.OnPlayerLogin(curPlayer) #通知世界boss信息 GameWorldBoss.OnPlayerLogin(curPlayer) #家族副本boss状态通知 @@ -481,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 ## 玩家下线(封包参数) @@ -489,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) @@ -508,8 +525,6 @@ #MergePlayer.OnPlayerLeaveGotoMergeServer(curPlayer, tick) #------------镖车逻辑 #TruckPlayerDisconnectProcess(curPlayer, tick) - #调用底层下线 - curPlayer.DoDisconnect() return ## 设置玩家离线时间 -- Gitblit v1.8.0