From 7a58a47083cb8c7920733c8378ca41964e9330e4 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 02 三月 2020 20:07:26 +0800
Subject: [PATCH] 8389 【后端开发】天星塔挑战榜

---
 ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerViewCache.py |   32 ++++++++++++++++++++++++++++++--
 1 files changed, 30 insertions(+), 2 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerViewCache.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerViewCache.py
index 40691df..87ef793 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerViewCache.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerViewCache.py
@@ -29,6 +29,11 @@
 import ChConfig
 
 import json
+import time
+
+def DoOnDayEx():
+    DelOutofTimeViewCacheData()
+    return
 
 def IsSaveDBViewCache(playerID, playerLV):
     ## 是否保存基本的缓存数据
@@ -57,11 +62,30 @@
         
     return False
 
+def DelOutofTimeViewCacheData():
+    ## 删除过期的查看缓存数据
+    
+    curTime = int(time.time())
+    MaxTime = 30 * 3600 * 24 # 30天
+    
+    pyViewCacheMgr = PyDataManager.GetPlayerViewCachePyManager()
+    playerViewCachePyDict = pyViewCacheMgr.playerViewCachePyDict
+    for playerID, viewCache in playerViewCachePyDict.items():
+        
+        passTime = curTime - viewCache.OffTime
+        if passTime < MaxTime:
+            continue
+        if IsSaveAllViewCache(playerID):
+            continue
+        playerViewCachePyDict.pop(playerID)
+        
+    return
+
 def DeleteViewCache(playerID):
     ## 删除玩家缓存
     pyViewCacheMgr = PyDataManager.GetPlayerViewCachePyManager()
     playerViewCachePyDict = pyViewCacheMgr.playerViewCachePyDict
-    playerViewCachePyDict.pop(playerID)
+    playerViewCachePyDict.pop(playerID, None)
     GameWorld.DebugLog("删除查看缓存!", playerID)
     return
 
@@ -239,7 +263,11 @@
             answerPack.LV = cacheDict["LV"]
             answerPack.RealmLV = cacheDict["RealmLV"]
             answerPack.OnlineType = ChConfig.Def_Offline
-            answerPack.ServerGroupID = cacheDict.get("ServerGroupID", 0)
+            
+            if GameWorld.IsCrossServer():
+                answerPack.ServerGroupID = cacheDict.get("ServerGroupID", 0)
+            else:
+                answerPack.ServerGroupID = GameWorld.GetServerGroupID()
     else:
         answerPack.PlayerID = clientPack.PlayerID
         answerPack.PlayerName = tagPlayer.GetName()

--
Gitblit v1.8.0