| | |
| | | import PlayerDBGSEvent
|
| | | import ChConfig
|
| | | import IpyGameDataPY
|
| | |
|
| | | import datetime
|
| | | #------------------------------------------------------------------------------
|
| | |
|
| | |
|
| | |
| | | # @return:
|
| | | def __IsWorldAverageLv():
|
| | | # 跨服服务器功能限制
|
| | | if GameWorld.IsMergeServer():
|
| | | if GameWorld.IsCrossServer():
|
| | | return
|
| | | return True
|
| | |
|
| | |
| | |
|
| | | 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 |