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