| | |
| | | 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]
|
| | |
| | |
|
| | |
|
| | | 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
|
| | | 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
|
| | |
|