#!/usr/bin/python  
 | 
# -*- coding: GBK -*-  
 | 
#-------------------------------------------------------------------------------  
 | 
#  
 | 
##@package GM.Commands.GMT_SetOpenServerTime  
 | 
#  
 | 
# @todo:ÉèÖÿª·þʱ¼ä  
 | 
# @author hxp  
 | 
# @date 2018-05-07  
 | 
# @version 1.0  
 | 
#  
 | 
# ÏêϸÃèÊö: ÉèÖÿª·þʱ¼ä  
 | 
#  
 | 
#-------------------------------------------------------------------------------  
 | 
#"""Version = 2018-05-07 11:00"""  
 | 
#-------------------------------------------------------------------------------  
 | 
  
 | 
#µ¼Èë  
 | 
import GMCommon  
 | 
import GameWorldProcess  
 | 
import PlayerDBGSEvent  
 | 
import GameWorld  
 | 
  
 | 
import time  
 | 
  
 | 
  
 | 
## Ö´ÐÐÂß¼  
 | 
#  @param curPlayer µ±Ç°Íæ¼Ò  
 | 
#  @param gmCmdDict: ÃüÁî×Öµä  
 | 
#  @return None  
 | 
#  @remarks º¯ÊýÏêϸ˵Ã÷.  
 | 
def OnExec(orderId, gmCmdDict):  
 | 
      
 | 
    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:  
 | 
        GMCommon.GMCommandResult(orderId, gmCmdDict, GMCommon.Def_InvalidTime, "The set time is less than the current time.")  
 | 
        return  
 | 
      
 | 
    setOpenServerTime = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_SetOpenServerTime)  
 | 
    if setOpenServerTime and curTime > setOpenServerTime:  
 | 
        GMCommon.GMCommandResult(orderId, gmCmdDict, GMCommon.Def_ServerAlreadyOpen, "The server has been opened.")  
 | 
        return  
 | 
    PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_SetOpenServerTime, openServerTime)  
 | 
      
 | 
    if openServerTime == curTime:  
 | 
        GameWorldProcess.OnNewServerOpen(GameWorld.GetGameWorld().GetTick())  
 | 
          
 | 
    GMCommon.GMCommandResult(orderId, gmCmdDict, GMCommon.Def_Success, timeStr)  
 | 
    return  
 | 
      
 | 
      
 | 
      
 | 
      
 | 
     
 | 
     
 | 
     
 | 
     
 | 
     
 | 
     
 | 
     
 | 
     
 | 
      
 |