| | |
| | | return startDateStr, endDateStr
|
| | |
|
| | | # 开服天
|
| | | import DBDataMgr
|
| | | if startDateStr.isdigit():
|
| | | diffDay = GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ServerDay) + 1
|
| | | diffDay = DBDataMgr.GetEventTrigMgr().GetValue(ShareDefine.Def_ServerDay) + 1
|
| | | startDateTime = curDateTime + datetime.timedelta(days=(int(startDateStr)-diffDay))
|
| | | endDateTime = curDateTime + datetime.timedelta(days=(int(endDateStr)-diffDay))
|
| | |
|
| | | # K开服天
|
| | | elif startDateStr.startswith("K"):
|
| | | diffDay = GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ServerDay) + 1
|
| | | diffDay = DBDataMgr.GetEventTrigMgr().GetValue(ShareDefine.Def_ServerDay) + 1
|
| | | startDateTime = curDateTime + datetime.timedelta(days=(ToIntDef(startDateStr[1:])-diffDay))
|
| | | endDateTime = curDateTime + datetime.timedelta(days=(ToIntDef(endDateStr[1:])-diffDay))
|
| | |
|
| | | # 合服天
|
| | | elif startDateStr.startswith("Mix"):
|
| | | diffDay = GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_MixServerDay) + 1
|
| | | diffDay = DBDataMgr.GetEventTrigMgr().GetValue(ShareDefine.Def_MixServerDay) + 1
|
| | | startDateTime = curDateTime + datetime.timedelta(days=(int(startDateStr[3:])-diffDay))
|
| | | endDateTime = curDateTime + datetime.timedelta(days=(int(endDateStr[3:])-diffDay))
|
| | |
|
| | |
| | | ## 是否跨服中心服务器
|
| | | return GetServerType() == ShareDefine.serverType_CrossCenter
|
| | |
|
| | | def CheckCrossCenterUniquenessErr():
|
| | | ## 检查跨服中心唯一性
|
| | | # @return: 是否异常
|
| | | if not IsCrossCenter():
|
| | | return
|
| | | serverCnt = 0
|
| | | serverDict = ReadChConfig.GetServerConfigDict()
|
| | | for serverInfo in serverDict.values():
|
| | | serverType = serverInfo[ShareDefine.serverCfgIndex_ServerType]
|
| | | if serverType == ShareDefine.serverType_CrossCenter:
|
| | | serverCnt += 1
|
| | | if serverCnt > 1:
|
| | | SendGameErrorEx("CrossCenterUniquenessErr", "跨服中心只允许配置一台", isRaiseErr=True)
|
| | | return
|
| | | return
|
| | |
|
| | | def IsMainServer():
|
| | | ## 是否游戏服
|
| | | return GetServerType() == ShareDefine.serverType_Main
|
| | |
| | | # MainServerDict = {} # 所属主服ID {子服ID:主服ID, ...}
|
| | | # groupName = GetServerGroupName()
|
| | | # serverDict = ReadChConfig.GetServerConfigDict()
|
| | | # for serverInfo in serverDict:
|
| | | # for serverInfo in serverDict.values():
|
| | | # groupName = serverInfo[ShareDefine.serverCfgIndex_GroupName]
|
| | | # serverMapID = serverInfo[ShareDefine.serverCfgIndex_MapID]
|
| | | # serverType = serverInfo[ShareDefine.serverCfgIndex_ServerType]
|
| | |
| | | #if not MainServerDict or serverID not in MainServerDict:
|
| | | # return serverID
|
| | | #return MainServerDict[serverID]
|
| | |
|
| | | ##获得当前服务器平台
|
| | | # @param 无
|
| | | # @return
|
| | | def GetPlatform():
|
| | | return ReadChConfig.GetPyMongoConfig("platform", "PlatformName")
|
| | |
|
| | | def GetAppID():
|
| | | ## 获取渠道ID
|
| | |
| | | return datetime.datetime.strptime(timeStr, timeFormat)
|
| | |
|
| | | def ChangeStrToDatetime(timeStr, timeFormat=ChConfig.TYPE_Time_Format):
|
| | | return datetime.datetime.strptime(timeStr, timeFormat)
|
| | | try:
|
| | | return datetime.datetime.strptime(timeStr, timeFormat)
|
| | | except:
|
| | | # 转化失败返回默认,如传入0也可转换
|
| | | return datetime.datetime(1970, 1, 1, 8, 0, 0)
|
| | |
|
| | | ## 时间格式转换成数值时间
|
| | | # @param dateT: datetime.datetime
|
| | |
| | |
|
| | |
|
| | | def DebugAnswer(curPlayer, text):
|
| | | '''转码后再发DebugAnswer'''
|
| | | '''转码后再发DebugAnswer
|
| | | @param curPlayer: 跨服服务器时支持直接传入 crossPlayer
|
| | | '''
|
| | | #===========================================================================
|
| | | # if not GetGameWorld().GetDebugLevel():
|
| | | # return
|
| | | #===========================================================================
|
| | | |
| | | DebugLog(text, curPlayer.GetPlayerID())
|
| | | playerID = curPlayer.GetPlayerID()
|
| | | if IsCrossServer():
|
| | | crossPlayer = curPlayer
|
| | | mainServerID = crossPlayer.GetMainServerID()
|
| | | if not mainServerID:
|
| | | return
|
| | | import CrossMsg
|
| | | CrossMsg.SendToClientServer(ShareDefine.C2S_GMDebugAnswer, {"text":text}, [mainServerID], playerID)
|
| | | return
|
| | | if hasattr(curPlayer, "GetPlayer"):
|
| | | curPlayer = curPlayer.GetPlayer()
|
| | | DebugLog(text, playerID)
|
| | | text = text.decode(ShareDefine.Def_Game_Character_Encoding).encode(GetCharacterEncoding())
|
| | | curPlayer.DebugAnswer(text)
|
| | | return
|
| | |
|
| | | def C2S_GMDebugAnswer(dataMsg, playerID):
|
| | | text = dataMsg["text"]
|
| | | curPlayer = GetPlayerManager().FindPlayerByID(playerID)
|
| | | if curPlayer:
|
| | | DebugAnswer(curPlayer, text)
|
| | | return
|
| | |
|
| | | def RaiseException(errorMsg, playerID=0):
|
| | |
| | | SendGameError("MapServerRaiseException", errorMsg)
|
| | | return
|
| | |
|
| | | def SendGameErrorEx(errType, msgInfo="", playerID=0):
|
| | | def SendGameErrorEx(errType, msgInfo="", playerID=0, isRaiseErr=False):
|
| | | ErrLog("SendGameErrorEx: %s -> %s" % (errType, msgInfo), playerID)
|
| | | SendGameError(errType, msgInfo)
|
| | | if GetGameWorld().GetDebugLevel():
|
| | | if isRaiseErr or GetGameWorld().GetDebugLevel():
|
| | | raise Exception("%s -> %s" % (errType, msgInfo))
|
| | | return
|
| | |
|