From d7415e1acc3cfaae895597d889bf4f5d56d85ad0 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 31 七月 2023 16:34:55 +0800
Subject: [PATCH] 9788 【BT9】【后端】成就系统(新增成就类型164~175)

---
 ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py |   28 ++++++++++++++++++++++++++++
 1 files changed, 28 insertions(+), 0 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py
index 1840357..59dfaa4 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py
@@ -110,6 +110,7 @@
 import PyDataManager
 import GameWorldOpenServerCampaign
 import CrossBillboard
+import CrossChampionship
 #---------------------------------------------------------------------
 
 #---------------------------------------------------------------------
@@ -357,6 +358,7 @@
 
 def GameWorldProcessOnMinute(curMinute, tick):
     # 每整分钟触发一次
+    CheckServerHasPlayerLoginAfterInitOK()
     #检查服务器正式开服
     DoCheckNewServerOpen(tick)
     #回报数据库当前在线玩家数
@@ -368,6 +370,8 @@
     GameWorldActionControl.Dispose_FBStateTime()
     #跨服PK
     CrossRealmPK.OnMinuteProcess()
+    #跨服排位
+    CrossChampionship.OnMinuteProcess(curMinute)
     CrossBattlefield.OnMinuteProcess()
     #处理重开服务器后, 活动继续开启逻辑根据天数
     #GameWorldActionControl.Dispose_Action_GoOn_ByDay(tick)
@@ -384,6 +388,24 @@
         PlayerFamily.UpdFamilyTotalFightPower()
         PlayerFamilyRedPacket.CheckDelRedpacketData()
         
+    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():
@@ -1267,6 +1289,8 @@
     GameWorldArena.OnServerStart()
     #跨服PK
     CrossRealmPK.OnGameServerInitOK()
+    #跨服排位
+    CrossChampionship.OnServerStart()
     #跨服战场
     CrossBattlefield.OnServerStart()
     #红包
@@ -1379,6 +1403,9 @@
     ReadChConfig.ReloadConfig()
     
     AllMapServerInitOK(tick)
+    
+    GameWorld.GetGameWorld().SaveGameServerData()
+    GameWorld.SendGameError("ClearOpenServerOK")
     return
 
 ## 服务器开服时是星期几
@@ -1978,6 +2005,7 @@
     ChPlayer.SavePlayerLVData()
     PlayerFBHelpBattle.OnServerClose()
     CrossActionControl.OnServerClose()
+    CrossChampionship.OnServerClose()
     CrossBattlefield.OnServerClose()
     PlayerFamilyRedPacket.OnServerClose()
     CrossLuckyCloudBuy.OnServerClose()

--
Gitblit v1.8.0