From ec2e61906a08dc60adaf7741fbe6f1fa420c1eb5 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 06 九月 2021 19:27:19 +0800
Subject: [PATCH] 9152 【主干】【BT3】【后端】查看玩家缓存备档耗时过长优化

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

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py
index fc51542..4912bed 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py
@@ -102,6 +102,7 @@
 import PlayerXMZZ
 import PlayerTeam
 import PyGameData
+import CrossBoss
 import ChPlayer
 #---------------------------------------------------------------------
 
@@ -364,6 +365,8 @@
     #每5分钟触发一次仙盟总战力更新
     if curMinute % 5 == 0:
         PlayerFamily.UpdFamilyTotalFightPower()
+        PlayerFamilyRedPacket.CheckDelRedpacketData()
+        
     return
 
 #---------------------------------------------------------------------
@@ -1240,6 +1243,8 @@
     GameWorldArena.OnServerStart()
     #跨服PK
     CrossRealmPK.OnGameServerInitOK()
+    #红包
+    PlayerFamilyRedPacket.OnServerStart()
     #世界boss被杀次数重置
     #GameWorldBoss.CheckResetBossKilledCntOnServerInit()
     
@@ -1316,7 +1321,8 @@
         universalRecMgr.Delete(recType)
         if recordCount:
             GameWorld.Log("DeleteRecData recType=%s, count=%s" % (recType, recordCount))
-            
+    CrossBoss.g_bossRecDataDict = {} # 需要清除,不然会导致跨服boss通用记录缓存对象错误
+    
     #清 家族
     familyList = []
     familyMgr = GameWorld.GetFamilyManager()
@@ -1330,6 +1336,8 @@
     GameWorldFamilyWar.DoFamilyWarReset()
     
     PyGameData.g_sortBOSSRefreshList = [] # boss刷新信息记录缓存重置, 不重置会导致通知前端的boss信息为空
+    
+    GameWorldArena.OnServerStart()
     
     PlayerDBGSEvent.SetInitOpenServerTime(setOpenServerTime)
     
@@ -1840,20 +1848,12 @@
     if mapServerPack.GetState() not in [0,1,2,3] and curMap.GetState() != mapServerPack.GetState():
         # 记录服务器是否正常开启完毕, 避免重复发送
         GameWorld.DebugLog("MapServer_RunningStateRefresh--_%s"%([mapServerPack.GetState(), curMap.GetState(), mapServerPack.GetMapID(), curMap.GetID()]))
-        SendGameError("MapError")
+        GameWorld.SendGameError("MapError")
         
     curMap.SetState(mapServerPack.GetState())
     curMap.SetRefreshTick(tick)
     
     return
-
-
-def SendGameError(state):
-    getUrl = ReadChConfig.GetPyMongoConfig("EventReport", "OpenStateUrl")
-    groupID = ReadChConfig.GetPyMongoConfig("platform", "GroupID")
-    userDBName = ReadChConfig.GetPyMongoConfig("connect", "USER_DB_NAME")
-    getUrl = getUrl + "?Type=%s&groupID=%s&userDBName=%s"%(state, groupID, userDBName)
-    GameWorld.GetGameWorld().EventReport_EventReport("", "", "", "", 0, getUrl)
     
 ## 刷新地图服务器状态, 如果1分钟没有状态回报, 刷新为消失状态
 #  @param tick 当前时间
@@ -1881,7 +1881,7 @@
         curMap.SetState(IPY_GameServer.mssNone)
         if not isSendMapClose:
             # 避免多地图发送过多邮件, 如关服的时候
-            SendGameError("MapDisconnect")   # 状态报告
+            GameWorld.SendGameError("MapDisconnect")   # 状态报告
             isSendMapClose = True
 
     return
@@ -1932,6 +1932,7 @@
     ChPlayer.SavePlayerLVData()
     PlayerFBHelpBattle.OnServerClose()
     CrossActionControl.OnServerClose()
+    PlayerFamilyRedPacket.OnServerClose()
     GameWorldArena.OnServerClose()
     GameWorld.Log("通知C++关服!")
     GameWorld.GetGameWorld().OnServerClose()
@@ -1940,6 +1941,6 @@
 def ChangeGameServerState(state):
     # 只接收大于等于mssPyError
     GameWorld.DebugLog("ChangeGameServerState:%s"%state)
-    SendGameError("GameServerError")
+    GameWorld.SendGameError("GameServerError")
     
     
\ No newline at end of file

--
Gitblit v1.8.0