hxp
2025-05-30 efc705c4fb10577ff83e09273c90a6ead41164bd
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
    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)
    
    
    # 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')
#发送数据库请求
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
    
      
##################################################################