#!/usr/bin/python  
 | 
# -*- coding: GBK -*-  
 | 
#-------------------------------------------------------------------------------  
 | 
#  
 | 
##@package GM.Commands.GMT_CrossClientServerMaintain  
 | 
#  
 | 
# @todo:¿ç·þ×Ó·þά»¤  
 | 
# @author hxp  
 | 
# @date 2018-12-30  
 | 
# @version 1.0  
 | 
#  
 | 
# ÏêϸÃèÊö: ¿ç·þ×Ó·þά»¤  
 | 
#  
 | 
#-------------------------------------------------------------------------------  
 | 
#"""Version = 2018-12-30 18:00"""  
 | 
#-------------------------------------------------------------------------------  
 | 
  
 | 
import ShareDefine  
 | 
import DataRecordPack  
 | 
import CrossRealmMsg  
 | 
import ReadChConfig  
 | 
import GameWorld  
 | 
import GMCommon  
 | 
  
 | 
#---------------------------------------------------------------------  
 | 
  
 | 
## Ö´ÐÐÂß¼  
 | 
#  @param curPlayer µ±Ç°Íæ¼Ò  
 | 
#  @param gmCmdDict: ÃüÁî×Öµä  
 | 
#  @return None  
 | 
#  @remarks º¯ÊýÏêϸ˵Ã÷.  
 | 
def OnExec(orderId, gmCmdDict):  
 | 
      
 | 
    GameWorld.Log("GMT_CrossClientServerMaintain gmCmdDict=%s" % str(gmCmdDict))  
 | 
    operate = gmCmdDict.get('operate', '')  
 | 
      
 | 
    strMsg = {"operate":operate}  
 | 
    if GameWorld.IsCrossServer():  
 | 
        strMsg.update({"error":1})  
 | 
          
 | 
    # ²éѯ¿ç·þ״̬  
 | 
    elif operate == "cross_server_state":  
 | 
        crossServerIP = ReadChConfig.GetPyMongoConfig("Merge", "MergeServerIP")  
 | 
        isOpen = GameWorld.GetGameWorld().GetDictByKey(ShareDefine.Def_Notify_WorldKey_CrossServerOpen)  
 | 
        isConn = GameWorld.GetGameWorld().GetDictByKey(ShareDefine.Def_Notify_WorldKey_CrossServerConnState)  
 | 
        strMsg.update({"OpenState":isOpen, "ConnState":isConn, "CrossServerIP":crossServerIP})  
 | 
          
 | 
    # ²éѯ¿ç·þPK״̬          
 | 
    elif operate == "cross_pk_state":  
 | 
        gameWorld = GameWorld.GetGameWorld()  
 | 
        zoneID = gameWorld.GetDictByKey(ShareDefine.Def_Notify_WorldKey_CrossPKZoneID)  
 | 
        seasonID = gameWorld.GetDictByKey(ShareDefine.Def_Notify_WorldKey_CrossPKSeasonID)  
 | 
        seasonState = gameWorld.GetDictByKey(ShareDefine.Def_Notify_WorldKey_CrossPKSeasonState)  
 | 
        matchState = gameWorld.GetDictByKey(ShareDefine.Def_Notify_WorldKey_CrossDailyActionState % ShareDefine.DailyActionID_CrossReamPK)  
 | 
          
 | 
        strMsg.update({"GroupID":GameWorld.GetServerGroupID(), "ZoneID":zoneID, "SeasonID":seasonID, "SeasonState":seasonState, "MatchState":matchState})  
 | 
          
 | 
    # ÖØÐÂͬ²½¿ç·þ״̬  
 | 
    elif operate == "reconn_cross_Server":  
 | 
        CrossRealmMsg.OnGameServerInitOK()  
 | 
        strMsg.update({"OK":1})  
 | 
          
 | 
    else:  
 | 
        GMCommon.GMCommandResult(orderId, gmCmdDict, GMCommon.Def_ParamErr)  
 | 
        return  
 | 
      
 | 
    # ¼Ç¼Á÷Ïò  
 | 
    DataRecordPack.DR_ToolGMOperate(0, '', '', 'GMT_CrossClientServerMaintain', str(gmCmdDict))  
 | 
    # »Ø¸´  
 | 
    GMCommon.GMCommandResult(orderId, gmCmdDict, GMCommon.Def_Success, strMsg=strMsg)   
 | 
    return  
 | 
      
 |