From 3118adeb72c93f559944ee7425409e0a125b23dd Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期四, 10 一月 2019 11:59:01 +0800
Subject: [PATCH] 860312 修复在线数据同一分钟发送两次问题;客户端和服务端tick不对应再次同步一次

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

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py
index c0472d1..794177d 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py
@@ -544,22 +544,16 @@
 #  所有服务器人数要回报一次,  每个map也要回报一次
 #  gameWorld.GetTickByType(0 - n) 取间隔
 def DisposeGameActivePlayer(tick):
-#    gameWorld = GameWorld.GetGameWorld()
-#    lastTick = gameWorld.GetTickByType(ChConfig.TYPE_GetActivePlayerCount)
-#    
-#    if lastTick == -1:
-#        #GameWorld.Log("未初始化服务器")
-#        return
-#    
-#    if tick - lastTick < ChConfig.TYPE_Tick_Time[ChConfig.TYPE_GetActivePlayerCount]:
-#        return
-#    
-#    
-#    gameWorld.SetTickByType(ChConfig.TYPE_GetActivePlayerCount , tick)
-        
+    gameWorld = GameWorld.GetGameWorld()    
+    curMinute = datetime.datetime.today().minute 
     #为了每个服的输出时间点统一一个分钟点,便于统计
-    if datetime.datetime.today().minute % 5 != 0:
+    if curMinute % 5 != 0:
         return
+    noteData = gameWorld.GetDictByKey("OnlineCntM")
+    if noteData == curMinute:
+        # 同一分钟不多发送,此处不建议用CD处理,避免两CD冲突
+        return
+    gameWorld.SetDict("OnlineCntM", curMinute)
     
     # 全服在线人数平台明细
     platformOLDict = {} # 平台在线人数 {平台:人数, ...}

--
Gitblit v1.8.0