#!/usr/bin/python
|
# -*- coding: GBK -*-
|
#-------------------------------------------------------------------------------
|
#
|
##@package PyMongoDB.GMToolLogicProcess.Commands.GMT_SetOpenServerTime
|
#
|
# @todo:ÉèÖÿª·þʱ¼ä
|
# @author hxp
|
# @date 2026-03-16
|
# @version 1.0
|
#
|
# ÏêϸÃèÊö: ÉèÖÿª·þʱ¼ä
|
#
|
#-------------------------------------------------------------------------------
|
#"""Version = 2026-03-16 20:00"""
|
#-------------------------------------------------------------------------------
|
|
import GMCommon
|
import GameWorld
|
import GameWorldEvent
|
import ShareDefine
|
import DBDataMgr
|
import time
|
|
def OnExec(gmCmdDict):
|
from LogicProcess import (UserCtrlDB)
|
|
curTime = int(time.time())
|
OpenServerDate = gmCmdDict.get("OpenServerDate")
|
OpenServerHour = GameWorld.ToIntDef(gmCmdDict.get("OpenServerHour"), None)
|
OpenServerMinute = GameWorld.ToIntDef(gmCmdDict.get("OpenServerMinute"), None)
|
|
if not OpenServerDate or OpenServerHour == None or OpenServerMinute == None:
|
openServerTime = curTime # ÔÊÐí²»ÉèÖÃʱ¼ä£¬Ä¬ÈÏÈ¡µ±Ç°·þÎñÆ÷ʱ¼ä
|
timeStr = GameWorld.ChangeTimeNumToStr(openServerTime)
|
else:
|
timeStr = "%s %02d:%02d:%02d" % (OpenServerDate, OpenServerHour, OpenServerMinute, 0)
|
openServerTime = GameWorld.ChangeTimeStrToNum(timeStr)
|
|
if openServerTime < curTime:
|
# µ±Ç°Ê±¼äÒѾ³¬¹ýÉèÖõĿª·þʱ¼ä£¬²»ÄÜÉèÖÃ!
|
return GMCommon.Def_InvalidTime, "The set time is less than the current time."
|
|
setOpenServerTime = DBDataMgr.GetEventTrigMgr().GetValue(ShareDefine.Def_SetOpenServerTime)
|
if setOpenServerTime and curTime > setOpenServerTime:
|
# ÒѾÉèÖùýÇÒ¿ª·þÁË£¬²»ÄÜÖØ¸´ÉèÖÃ!
|
return GMCommon.Def_ServerAlreadyOpen, "The server has been opened."
|
|
DBDataMgr.GetEventTrigMgr().SetValue(ShareDefine.Def_SetOpenServerTime, openServerTime)
|
|
if openServerTime == curTime:
|
GameWorldEvent.OnNewServerOpen(GameWorld.GetGameWorld().GetTick())
|
|
return GMCommon.Def_Success, timeStr
|
|