From 7e17abc560ec66bc164e5e1f8deff42e96ca8af8 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 16 十一月 2022 16:26:28 +0800
Subject: [PATCH] 9750 【BT7】【越南】【主干】【服务端】服务器无人登录警告
---
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py | 19 +++++++++++++++++++
ServerPython/CoreServerGroup/GameServer/Script/PyGameData.py | 2 ++
ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py | 1 +
3 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py
index 4da2177..59dfaa4 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py
@@ -358,6 +358,7 @@
def GameWorldProcessOnMinute(curMinute, tick):
# 每整分钟触发一次
+ CheckServerHasPlayerLoginAfterInitOK()
#检查服务器正式开服
DoCheckNewServerOpen(tick)
#回报数据库当前在线玩家数
@@ -389,6 +390,24 @@
return
+def CheckServerHasPlayerLoginAfterInitOK():
+ ## 检查服务器启动成功后是否有玩家正常登录
+ initGameWorldTime = GameWorld.GetGameWorld().GetDictByKey(ChConfig.Def_WorldKey_IsGameWorldInit)
+ if not initGameWorldTime:
+ return
+
+ if PyGameData.g_noPlayerLoginWarningMailState:
+ return
+
+ curTime = int(time.time())
+ noPlayerLoginWarningTimes = IpyGameDataPY.GetFuncCfg("ServerEvent", 1) * 60 # x分钟没有玩家登录则预警
+ if curTime - initGameWorldTime < noPlayerLoginWarningTimes:
+ return
+
+ GameWorld.SendGameError("NoPlayerLogin")
+ PyGameData.g_noPlayerLoginWarningMailState = 1
+ return
+
def OnReloadConfig():
return
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
index ff5a367..d6d1a38 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
@@ -244,6 +244,7 @@
if isMixServerFirstLogin:
PlayerCharm.OnMixServerFirstLogin(curPlayer)
+ PyGameData.g_noPlayerLoginWarningMailState = 2
return
def __UpdOnedayJobPlayerLoginoffTime(curPlayer):
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/PyGameData.py b/ServerPython/CoreServerGroup/GameServer/Script/PyGameData.py
index a0c8e7f..d97fb10 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/PyGameData.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/PyGameData.py
@@ -16,6 +16,8 @@
g_allMapServerInitOK = False
+g_noPlayerLoginWarningMailState = 0 # 服务器启动后无玩家登录预警邮件状态; 0-未处理;1-已发送;2-有玩家登录了
+
g_pyGameDataManager = None
g_commMapLineInfo = {} # 地图线路真实地图虚拟线信息 {(dataMapID, lineID):(realMapID, copyMapID), ...}
--
Gitblit v1.8.0