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