From ebf0c525597f65830be5975ec91a157793cba1e9 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 23 五月 2022 17:00:25 +0800
Subject: [PATCH] 9415 【BT】【后端】古神战场(优化玩家在战场结算前掉线后逻辑:结算后强制设置玩家为非跨服状态,防止玩家重连导致还会进入跨服地图然后再被踢出去的无效流程)
---
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossBattlefield.py | 2 +-
ServerPython/CoreServerGroup/GameServer/Script/Player/CrossRealmPlayer.py | 5 +++--
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossBattlefield.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossBattlefield.py
index 92885cf..e4ca6f2 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossBattlefield.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossBattlefield.py
@@ -967,7 +967,7 @@
for playerID, playerData in syncPlayerDataInfo.items():
if PlayerControl.GetDBPlayerAccIDByID(playerID):
msgInfo = ["BattlefieldOver", [overTime] + playerData]
- CrossRealmPlayer.MapServer_QueryCrossPlayerResult(playerID, "CrossBattlefield", msgInfo)
+ CrossRealmPlayer.MapServer_QueryCrossPlayerResult(playerID, "CrossBattlefield", msgInfo, True)
return
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/CrossRealmPlayer.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/CrossRealmPlayer.py
index 76ded9f..e3c3ef0 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/CrossRealmPlayer.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/CrossRealmPlayer.py
@@ -435,7 +435,7 @@
LoginDoUnNotifyCrossMsg(curPlayer)
return
-def MapServer_QueryCrossPlayerResult(playerID, callName, msgInfo):
+def MapServer_QueryCrossPlayerResult(playerID, callName, msgInfo, offlineExitCross=False):
## 同步地图跨服玩家处理信息,玩家可能不在线,缓存后等玩家上线处理,暂不考虑存档问题,服务器维护后未处理的命令将失效
curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(playerID)
@@ -449,7 +449,8 @@
msgList = PyGameData.g_unNotifyPlayerCrossMsgDict[playerID]
msgList.append([callName, msgInfo])
GameWorld.Log("玩家不在线,添加未通知的跨服命令: %s, msgInfo=%s" % (callName, msgInfo), playerID)
-
+ if offlineExitCross:
+ DoOfflinePlayerExitCrossServer(playerID)
return
def LoginDoUnNotifyCrossMsg(curPlayer):
--
Gitblit v1.8.0