From f29b503cc8a6ed9b1aa3a7c956e75fd76fc29af5 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期五, 30 五月 2025 11:48:23 +0800
Subject: [PATCH] 15 卡牌服务端搭建 新增接口SendPyPackToServersRoute,从地图发送封包给ServersRoute,可用于GM命令,跨服封包等 GM命令例子GMT_CTG参考 tagGMCommand封包新增ServerID字段

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/GMToolLogicProcess/GMToolPyInterface.py |  134 +++++++-------------------------------------
 1 files changed, 21 insertions(+), 113 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/GMToolLogicProcess/GMToolPyInterface.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/GMToolLogicProcess/GMToolPyInterface.py
index 171f99e..3b75530 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/GMToolLogicProcess/GMToolPyInterface.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/GMToolLogicProcess/GMToolPyInterface.py
@@ -4,127 +4,35 @@
 #
 #-------------------------------------------------------------------------------
 #
-from Protocol import (MMORPGPack,RecvPackProtocol, SendPackProtocol)
-from Common import (CommFunc, mylog)
-
-# from DBCommon import (CommonDefine,SingletonObject)
-# import GMToolCommandMgr
-# g_GMCMDMgr = GMToolCommandMgr.GetGMOrderMgr()
-
+from Protocol import SendPackProtocol
+from Common import mylog
+from DBCommon import CommonDefine
+import NetPackCommon
+from Commands import GMCommon
+import json
 ################################################################## 
                 ####### 提供的接口 ######
-#转发GM工具命令包到GameServer  
-def SendGMToolCommandToGameServer(pack):
-    # global g_GMCMDMgr
-     
-    # recvPack = RecvPackProtocol.tagGMCommand()
-    # recvPack.ReadData(pack.getBuffer())
-    # recvPack.Type = CommonDefine.bgDBGMCommand
+
     
-    # mylog.info('ProjSpecialProcess SendGMToolCommandToGameServer OrderId = %s'%recvPack.OrderId)
-    
-    # ServerMgr = MongoDBServer.getServerMgr()
-    # sendViaSessionID = ServerMgr.getClientSessionIDByName("CenterGate",0)
-    
-    # SessionID = 0
-    # PoolIndex = -1
-    # mylog.info('ProjSpecialProcess SendGMToolCommandToGameServer sendViaSessionID = %s,SessionID = %d,PoolIndex = %d'%(
-    #                                                                                                            sendViaSessionID,
-    #                                                                                                            SessionID,
-    #                                                                                                            PoolIndex))
-    # ServerMgr.packSendBySessionID(sendViaSessionID, SessionID, PoolIndex,
-    #               CommonDefine.atInner,
-    #               MMORPGPack.stGame, MMORPGPack.stData, 
-    #               recvPack.GetBuffer())
-    mylog.info('ProjSpecialProcess SendGMToolCommandToGameServer Done') 
-    
-#回复GM工具命令执行结果包
-def SendToGMToolCommandResult(OrderLen,OrderId,ResultLen,Result,UserDataLen,UserData):
-    # global g_GMCMDMgr
+#回复给ServersRoute->GM工具 命令执行结果包
+def SendToGMToolCommandResult(orderID, resultMsg, UserData = ''):
     # if isinstance(Result, unicode):
     #     #直接从数据库未进行转化的话是unicode
     #     Result = Result.encode('gbk')
-        
-    # mylog.info('ProjSpecialProcess SendToGMToolCommandResult OrderId = %s'%OrderId) 
-    # recvPack = SendPackProtocol.tagGMCommandResult()
-    # recvPack.Type = CommonDefine.gstGMToolCommandResult 
-    # recvPack.OrderLen = OrderLen
-    # recvPack.OrderId = OrderId
-    # recvPack.ResultLen     = ResultLen
-    # recvPack.Result        = Result
-    # recvPack.UserDataLen   = UserDataLen
-    # recvPack.UserData      = UserData
-    
-    
-    # sendViaSessionID =  g_GMCMDMgr.PopPair(recvPack.OrderId)
-    # ServerMgr = MongoDBServer.getServerMgr()             
-    
-    # SessionID = 0
-    # PoolIndex = -1
-    # mylog.info('ProjSpecialProcess SendToGMToolCommandResult sendViaSessionID = %s,SessionID = %d,PoolIndex = %d'%(sendViaSessionID, SessionID,PoolIndex))
-    # if sendViaSessionID == '':
-    #     mylog.warning('ProjSpecialProcess SendToGMToolCommandResult Fail, No Client in GMToolPort')
-    #     return
-    
-    # ServerMgr.packSendBySessionID(sendViaSessionID, SessionID, PoolIndex,
-    #               CommonDefine.atInner,
-    #               MMORPGPack.stGMTool, MMORPGPack.stData, 
-    #               recvPack.GetBuffer())
-    mylog.info('ProjSpecialProcess SendToGMToolCommandResult Done')  
+
+    recvPack = SendPackProtocol.tagGMCommandResult()
+    recvPack.Type = CommonDefine.gstGMToolCommandResult 
+    recvPack.OrderLen = len(orderID)
+    recvPack.OrderId = orderID
+    recvPack.ResultLen     = len(resultMsg)
+    recvPack.Result        = resultMsg
+    recvPack.UserDataLen   = len(UserData)
+    recvPack.UserData      = UserData
+
+    NetPackCommon.SendPyPackToServersRoute(recvPack.GetBuffer(), recvPack.GetLength())
+    mylog.info('ProjSpecialProcess SendToGMToolCommandResult OrderId = %s'%orderID) 
  
-#发送数据库请求
-def SendDBRequest(Type,OrderLen,OrderId,DataLen,Data):
-    #Type说明
-    #CommonDefine.gstGMToolCmdSysDBRequest         #GM工具SysCtrlDB请求类型  
-    #CommonDefine.gstGMToolCmdLogDBRequest         #GM工具LogCtrlDB请求类型  
-    #CommonDefine.gstGMToolCmdUserDBRequest        #GM工具UserCtrlDB请求类型
-    
 
-    # #构建请求包
-    # pack = RecvPackProtocol.tagGMCommandDBRequest()
-    # pack.Type = Type
-    # pack.OrderLen = OrderLen
-    # pack.OrderId = OrderId
-    # pack.DataLen = DataLen
-    # pack.Data = Data
-    # #发请求包
-    # sendPack = SingletonObject.getPackPool().alloc()
-    # sendPack.setSendViaSocketID(-1)
-    # sendPack.getPackHead().sessionID = 0
-    # sendPack.getPackHead().poolIndex = -1
-    # sendPack.getPackHead().type = CommonDefine.atInner
-    # sendPack.setBuffer(pack.GetBuffer())
-    # ctrlDBMgr = CtrlDBManager.getCtrlMgr()
-    # ctrlDBMgr.dbRequestPush(sendPack)
-    # mylog.info('ProjSpecialProcess SendDBRequest Done ,Type = %s, OrderId = %s'%(Type,OrderId)) 
-    return True
 
-#发送逻辑处理请求
-def SendLogicProcessRequest(Type,OrderLen,OrderId,DataLen,Data):
-    #Type说明
-    #CommonDefine.gstGMToolCmdLogicProcessRequest  #GM工具Logic请求类型
-    #构建请求包
-    # pack = RecvPackProtocol.tagGMCommandDBRequest()
-    # pack.Type = Type
-    # pack.OrderLen = OrderLen
-    # pack.OrderId = OrderId
-    # pack.DataLen = DataLen
-    # pack.Data = Data
-    # #发请求包
-    # sendPack = SingletonObject.getPackPool().alloc()
-    # sendPack.setSendViaSocketID(-1)
-    # sendPack.getPackHead().sessionID = 0
-    # sendPack.getPackHead().poolIndex = -1
-    # sendPack.getPackHead().type = CommonDefine.atInner
-    # sendPack.setBuffer(pack.GetBuffer())
-    
-    # logicProcess = GlobalVarDefine.g_logicProcessThread
-    # if logicProcess == None:
-    #     mylog.warning('ProjSpecialProcess SendLogicProcessRequest Fail!!! logicProcessThread == None??')
-    #     return False
-    # logicProcess.requestPush(sendPack)
-    # mylog.info('ProjSpecialProcess SendLogicProcessRequest Done ,Type = %s, OrderId = %s'%(Type,OrderId)) 
-    return True
-    
       
 ################################################################## 
\ No newline at end of file

--
Gitblit v1.8.0