#!/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