From fe9b738b1cb89e3b4d320924fceef70a8e1f6fac Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 04 三月 2021 14:24:50 +0800
Subject: [PATCH] 8650 【主干】【BT2】活动规则优化(多活动支持的改为单表模式,增加活动分组编号字段区分不同的活动编号;常规活动改为不受合服影响,合服活动独立出来;累计充值活动、集字活动适配为新模式 master冲突补同步);

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

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldAverageLv.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldAverageLv.py
index d7ebfa8..696ac71 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldAverageLv.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldAverageLv.py
@@ -23,6 +23,8 @@
 import PlayerDBGSEvent
 import ChConfig
 import IpyGameDataPY
+
+import datetime
 #------------------------------------------------------------------------------
 
         
@@ -87,3 +89,33 @@
     
     return worldLV
 
+def GetWorldLVListByTime(startTime, day=1):
+    ##根据时间计算多个世界等级
+    initOpenServerTime = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_InitOpenServerTime)
+    if initOpenServerTime <= 0:
+        return []
+    worldlvList = []
+    diffSecond = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_WorldLVExtraTime) #额外时间参数
+    initOpenServerTime = GameWorld.ChangeTimeNumToDatetime(initOpenServerTime, ChConfig.TYPE_Time_Format)
+    if startTime < initOpenServerTime:
+        return []
+    ipyMgr = IpyGameDataPY.IPY_Data()
+    for dayIndex in xrange(day):
+        nextTime = startTime + datetime.timedelta(days=dayIndex)
+        pastTimeDelta = nextTime - initOpenServerTime
+        pastSeconds = max(0, pastTimeDelta.days * 24 * 60 * 60 + pastTimeDelta.seconds + diffSecond)
+        maxCnt = ipyMgr.GetWorldLVCount()
+        worldLV = 0
+        for i in xrange(maxCnt):
+            curIpyData = ipyMgr.GetWorldLVByIndex(i)
+            if i == maxCnt - 1:
+                worldLV = curIpyData.GetWorldLV()
+            else:
+                nextIpyData = ipyMgr.GetWorldLVByIndex(i+1)
+                if curIpyData.GetOpenServerSecond() <= pastSeconds < nextIpyData.GetOpenServerSecond():
+                    worldLV = curIpyData.GetWorldLV()
+                    break
+        worldlvList.append(worldLV)
+        
+    GameWorld.DebugLog('    GetWorldLVByTime startTime=%s,day=%s,worldlvList=%s'%(str(startTime), day, worldlvList))
+    return worldlvList
\ No newline at end of file

--
Gitblit v1.8.0