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