#!/usr/bin/python
|
# -*- coding: GBK -*-
|
#-------------------------------------------------------------------------------
|
#
|
#-------------------------------------------------------------------------------
|
#
|
from Protocol import (MMORPGPack,RecvPackProtocol, SendPackProtocol)
|
from Common import (CommFunc, mylog)
|
|
# from DBCommon import (CommonDefine,SingletonObject)
|
# import GMToolCommandMgr
|
# g_GMCMDMgr = GMToolCommandMgr.GetGMOrderMgr()
|
|
##################################################################
|
####### ÌṩµÄ½Ó¿Ú ######
|
#ת·¢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
|
# 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')
|
|
#·¢ËÍÊý¾Ý¿âÇëÇó
|
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
|
|
|
##################################################################
|