📄 packethandler.cpp
字号:
#include "stdafx.h"
#include "PacketHandler.h"
#include "Handler_DM.h"
#include "Handler_MX.h"
#include "Handler_GM.h"
#include "Handler_AM.h"
#include "Handler_MW.h"
#include "Handler_MO.h"
#include "Handler_MZ.h"
#include <Protocol_DM.h>
#include <PacketStruct_DM.h>
#include <Protocol_MX.h>
#include <PacketStruct_MX.h>
#include <Protocol_GM.h>
#include <PacketStruct_GM.h>
#include <Protocol_AM.h>
#include <PacketStruct_AM.h>
#include <Protocol_MW.h>
#include <PacketStruct_MW.h>
#include <Protocol_MO.h>
#include <PacketStruct_MO.h>
#include <Protocol_ServerCommon.h>
#include <PacketStruct_ServerCommon.h>
PacketHandler::PacketHandler()
{
m_pFuncMap_DM = new util::FunctionMap;
m_pFuncMap_MX = new util::FunctionMap;
m_pFuncMap_GM = new util::FunctionMap;
m_pFuncMap_BM = new util::FunctionMap;
m_pFuncMap_FM = new util::FunctionMap;
m_pFuncMap_AM = new util::FunctionMap;
m_pFuncMap_MW = new util::FunctionMap;
m_pFuncMap_MO = new util::FunctionMap;
m_pFuncMap_MZ = new util::FunctionMap;
}
PacketHandler::~PacketHandler()
{
if( m_pFuncMap_DM ) delete m_pFuncMap_DM;
if( m_pFuncMap_MX ) delete m_pFuncMap_MX;
if( m_pFuncMap_GM ) delete m_pFuncMap_GM;
if( m_pFuncMap_BM ) delete m_pFuncMap_BM;
if( m_pFuncMap_FM ) delete m_pFuncMap_FM;
if( m_pFuncMap_AM ) delete m_pFuncMap_AM;
if( m_pFuncMap_MW ) delete m_pFuncMap_MW;
if( m_pFuncMap_MO ) delete m_pFuncMap_MO;
if( m_pFuncMap_MZ ) delete m_pFuncMap_MZ;
}
// GameDBProxy肺何磐 坷绰 菩哦 殿废
BOOL PacketHandler::RegisterHandler_DM()
{
if( !AddHandler_DM( SERVERCOMMON, SERVERCOMMON_HEARTBEAT, Handler_DM::OnSERVERCOMMON_HEARTBEAT ) )
return FALSE;
if( !AddHandler_DM( SERVERCOMMON, SERVERCOMMON_SERVERSHUTDOWN_ANS, Handler_DM::OnSERVERCOMMON_SERVERSHUTDOWN_ANS ) )
return FALSE;
return TRUE;
}
// AccountDBProxy肺何磐 坷绰 菩哦 殿废
BOOL PacketHandler::RegisterHandler_MX()
{
if( !AddHandler_MX( MX_CONNECTION, MX_CONNECTION_REQ_SERVER_INFO_ACK, Handler_MX::OnMX_CONNECTION_REQ_SERVER_INFO_ACK ) )
return FALSE;
if( !AddHandler_MX( MX_CONNECTION, MX_CONNECTION_REQ_SERVER_INFO_CMD, Handler_MX::OnMX_CONNECTION_REQ_SERVER_INFO_CMD ) )
return FALSE;
return TRUE;
}
// 霸烙 辑滚肺何磐 坷绰 菩哦 殿废(鞘靛, 硅撇 傍烹栏肺 荤侩登绰 菩哦)
BOOL PacketHandler::RegisterHandler_GM()
{
if( !AddHandler_GM( SERVERCOMMON, SERVERCOMMON_HEARTBEAT, Handler_GM::OnSERVERCOMMON_HEARTBEAT ) )
return FALSE;
if( !AddHandler_GM( GM_OPERATION, GM_USERMONEY_NTF, Handler_GM::OnGM_USERMONEY_NTF ) )
return FALSE;
if( !AddHandler_GM( SERVERCOMMON, SERVERCOMMON_SERVERSHUTDOWN_ANS, Handler_GM::OnSERVERCOMMON_SERVERSHUTDOWN_ANS ) )
return FALSE;
return TRUE;
}
// 硅撇 辑滚肺何磐 坷绰 菩哦 殿废
BOOL PacketHandler::RegisterHandler_BM()
{
return TRUE;
}
// 鞘靛 辑滚肺何磐 坷绰 菩哦 殿废
BOOL PacketHandler::RegisterHandler_FM()
{
return TRUE;
}
// 俊捞傈飘 辑滚肺何磐 坷绰 菩哦 殿废
BOOL PacketHandler::RegisterHandler_AM()
{
if( !AddHandler_AM( SERVERCOMMON, SERVERCOMMON_SERVERSHUTDOWN_ANS, Handler_AM::OnSERVERCOMMON_SERVERSHUTDOWN_ANS ) )
return FALSE;
return TRUE;
}
// 岿靛 辑滚肺何磐 坷绰 菩哦 殿废
BOOL PacketHandler::RegisterHandler_MW()
{
if( !AddHandler_MW( MW_OPERATION, MW_USERCOUNT_SYN, Handler_MW::OnMW_USERCOUNT_SYN) )
return FALSE;
if( !AddHandler_MW( MW_OPERATION, MW_BATTLEZONEINFO_ANS, Handler_MW::OnMW_BATTLEZONEINFO_ANS ) )
return FALSE;
if( !AddHandler_MW( MW_OPERATION, MW_USERMONEY_SYN, Handler_MW::OnMW_USERMONEY_SYN ) )
return FALSE;
if( !AddHandler_MW( MW_ARMORKIT, MW_ARMORKIT_FINDHACK_SYN, Handler_MW::OnMW_ARMORKIT_FINDHACK_SYN ) )
return FALSE;
if( !AddHandler_MW( SERVERCOMMON, SERVERCOMMON_SERVERSHUTDOWN_ANS, Handler_MW::OnSERVERCOMMON_SERVERSHUTDOWN_ANS) )
return FALSE;
return TRUE;
}
// 坷欺饭捞泼 辑滚肺何磐 坷绰 菩哦 殿废
BOOL PacketHandler::RegisterHandler_MO()
{
if( !AddHandler_MO( MO_OPERATION, MO_RTTG_CERTIFY_ANS, Handler_MO::OnMO_RTTG_CERTIFY_ANS ) )
return FALSE;
if( !AddHandler_MO( MO_OPERATION, MO_RTTG_GAMENOTICE_REQ, Handler_MO::OnMO_RTTG_GAMENOTICE_REQ ) )
return FALSE;
if( !AddHandler_MO( MO_OPERATION, MO_RTTG_GAMEADMINLIST_ANS, Handler_MO::OnMO_RTTG_GAMEADMINLIST_ANS ) )
return FALSE;
if( !AddHandler_MO( MO_OPERATION, MO_RTTG_BATTLEZONEINFO_REQ, Handler_MO::OnMO_RTTG_BATTLEZONEINFO_REQ ) )
return FALSE;
if( !AddHandler_MO( MO_OPERATION, MO_RTTG_USERMONEY_REQ, Handler_MO::OnMO_RTTG_USERMONEY_REQ ) )
return FALSE;
if( !AddHandler_MO( MO_OPERATION, MO_RTTG_SERVERSHUTDOWN_REQ, Handler_MO::OnMO_RTTG_SERVERSHUTDOWN_REQ ) )
return FALSE;
/*
if( !AddHandler_MO( MO_OPERATION, MO_RELOAD_DATA_SYN, Handler_MO::OnMO_RELOAD_DATA_SYN ) )
return FALSE;
*/
return TRUE;
}
BOOL PacketHandler::RegisterHandler_MZ()
{
if( !AddHandler_MZ( SERVERCOMMON, SERVERCOMMON_SERVERSHUTDOWN_ANS, Handler_MZ::OnSERVERCOMMON_SERVERSHUTDOWN_ANS ) )
return FALSE;
return TRUE;
}
// Game DB Proxy甫 困茄 菩哦 勤甸矾
BOOL PacketHandler::AddHandler_DM( BYTE category, BYTE protocol, PacketHandler::fnHandler_DM fnHandler )
{
FUNC_DM *pFuncInfo = new FUNC_DM;
pFuncInfo->m_dwFunctionKey = MAKEWORD( category, protocol );
pFuncInfo->m_fnHandler = fnHandler;
return m_pFuncMap_DM->Add( pFuncInfo );
}
// Account DB Proxy甫 困茄 菩哦 勤甸矾
BOOL PacketHandler::AddHandler_MX( BYTE category, BYTE protocol, PacketHandler::fnHandler_MX fnHandler )
{
FUNC_MX *pFuncInfo = new FUNC_MX;
pFuncInfo->m_dwFunctionKey = MAKEWORD( category, protocol );
pFuncInfo->m_fnHandler = fnHandler;
return m_pFuncMap_MX->Add( pFuncInfo );
}
// 霸烙 辑滚甫 困茄 菩哦 勤甸矾 眠啊
BOOL PacketHandler::AddHandler_GM( BYTE category, BYTE protocol, PacketHandler::fnHandler_GM fnHandler )
{
FUNC_GM *pFuncInfo = new FUNC_GM;
pFuncInfo->m_dwFunctionKey = MAKEWORD( category, protocol );
pFuncInfo->m_fnHandler = fnHandler;
return m_pFuncMap_GM->Add( pFuncInfo );
}
// 硅撇 辑滚甫 困茄 菩哦 勤甸矾 眠啊
BOOL PacketHandler::AddHandler_BM( BYTE category, BYTE protocol, PacketHandler::fnHandler_BM fnHandler )
{
FUNC_BM *pFuncInfo = new FUNC_BM;
pFuncInfo->m_dwFunctionKey = MAKEWORD( category, protocol );
pFuncInfo->m_fnHandler = fnHandler;
return m_pFuncMap_BM->Add( pFuncInfo );
}
// 鞘靛 辑滚甫 困茄 菩哦 勤甸矾 眠啊
BOOL PacketHandler::AddHandler_FM( BYTE category, BYTE protocol, PacketHandler::fnHandler_FM fnHandler )
{
FUNC_FM *pFuncInfo = new FUNC_FM;
pFuncInfo->m_dwFunctionKey = MAKEWORD( category, protocol );
pFuncInfo->m_fnHandler = fnHandler;
return m_pFuncMap_FM->Add( pFuncInfo );
}
// 俊捞傈飘 辑滚甫 困茄 菩哦 勤甸矾 眠啊
BOOL PacketHandler::AddHandler_AM( BYTE category, BYTE protocol, PacketHandler::fnHandler_AM fnHandler )
{
FUNC_AM *pFuncInfo = new FUNC_AM;
pFuncInfo->m_dwFunctionKey = MAKEWORD( category, protocol );
pFuncInfo->m_fnHandler = fnHandler;
return m_pFuncMap_AM->Add( pFuncInfo );
}
// 岿靛 辑滚甫 困茄 菩哦 勤甸矾 眠啊
BOOL PacketHandler::AddHandler_MW( BYTE category, BYTE protocol, PacketHandler::fnHandler_MW fnHandler )
{
FUNC_MW *pFuncInfo = new FUNC_MW;
pFuncInfo->m_dwFunctionKey = MAKEWORD( category, protocol );
pFuncInfo->m_fnHandler = fnHandler;
return m_pFuncMap_MW->Add( pFuncInfo );
}
// 坷欺饭捞泼 辑滚甫 困茄 菩哦 勤甸矾 眠啊
BOOL PacketHandler::AddHandler_MO( BYTE category, BYTE protocol, PacketHandler::fnHandler_MO fnHandler )
{
FUNC_MO *pFuncInfo = new FUNC_MO;
pFuncInfo->m_dwFunctionKey = MAKEWORD( category, protocol );
pFuncInfo->m_fnHandler = fnHandler;
return m_pFuncMap_MO->Add( pFuncInfo );
}
// 辨靛 辑滚甫 困茄 菩哦 勤甸矾 眠啊
BOOL PacketHandler::AddHandler_MZ( BYTE category, BYTE protocol, PacketHandler::fnHandler_MZ fnHandler )
{
FUNC_MZ *pFuncInfo = new FUNC_MZ;
pFuncInfo->m_dwFunctionKey = MAKEWORD( category, protocol );
pFuncInfo->m_fnHandler = fnHandler;
return m_pFuncMap_MZ->Add( pFuncInfo );
}
BOOL PacketHandler::ParsePacket_DM( GameDBProxySession *pGameDBProxySession, MSG_BASE * pMsg, WORD wSize )
{
//墨抛绊府俊 蝶扼 鞠龋拳 秦刀贸府
if( pMsg->m_byCategory == 0xff )
{
// ......秦刀
// 秦刀茄 单捞磐俊辑 墨抛绊府客 菩哦鸥涝 眠免 : byPacketCategory,byPacketType
}
FUNC_DM *pFuncInfo = (FUNC_DM*)m_pFuncMap_DM->Find( MAKEWORD( pMsg->m_byCategory, pMsg->m_byProtocol ) );
if( pFuncInfo == NULL )
{
MessageOut( eCRITICAL_LOG, "Invalid packet from game DB proxy! : Category[%d]Protocol[%d]",pMsg->m_byCategory, pMsg->m_byProtocol );
return FALSE;
}
pFuncInfo->m_fnHandler( pGameDBProxySession, pMsg, wSize );
return TRUE;
}
BOOL PacketHandler::ParsePacket_MX( AccountDBProxySession *pAccountDBProxySession, MSG_BASE * pMsg, WORD wSize )
{
//墨抛绊府俊 蝶扼 鞠龋拳 秦刀贸府
if( pMsg->m_byCategory == 0xff )
{
// ......秦刀
// 秦刀茄 单捞磐俊辑 墨抛绊府客 菩哦鸥涝 眠免 : byPacketCategory,byPacketType
}
FUNC_MX *pFuncInfo = (FUNC_MX*)m_pFuncMap_MX->Find( MAKEWORD( pMsg->m_byCategory, pMsg->m_byProtocol ) );
if( pFuncInfo == NULL )
{
MessageOut( eCRITICAL_LOG, "Invalid packet from account DB proxy! : Category[%d]Protocol[%d]", pMsg->m_byCategory, pMsg->m_byProtocol );
return FALSE;
}
pFuncInfo->m_fnHandler( pAccountDBProxySession, pMsg, wSize );
return TRUE;
}
// 霸烙 辑滚肺何磐 坷绰 菩哦 颇教
BOOL PacketHandler::ParsePacket_GM( GameServerSession *pGameServerSession, MSG_BASE * pMsg, WORD wSize )
{
//墨抛绊府俊 蝶扼 鞠龋拳 秦刀贸府
if( pMsg->m_byCategory == 0xff )
{
// ......秦刀
// 秦刀茄 单捞磐俊辑 墨抛绊府客 菩哦鸥涝 眠免 : byPacketCategory,byPacketType
}
FUNC_GM *pFuncInfo = (FUNC_GM*)m_pFuncMap_GM->Find( MAKEWORD( pMsg->m_byCategory, pMsg->m_byProtocol ) );
if( pFuncInfo == NULL )
{
MessageOut( eCRITICAL_LOG, "Invalid packet from game server! : Category[%d]Protocol[%d]", pMsg->m_byCategory, pMsg->m_byProtocol );
return FALSE;
}
pFuncInfo->m_fnHandler( pGameServerSession, pMsg, wSize );
return TRUE;
}
// 硅撇 辑滚肺何磐 坷绰 菩哦 颇教
BOOL PacketHandler::ParsePacket_BM( BattleServerSession *pBattleServerSession, MSG_BASE * pMsg, WORD wSize )
{
//墨抛绊府俊 蝶扼 鞠龋拳 秦刀贸府
if( pMsg->m_byCategory == 0xff )
{
// ......秦刀
// 秦刀茄 单捞磐俊辑 墨抛绊府客 菩哦鸥涝 眠免 : byPacketCategory,byPacketType
}
FUNC_BM *pFuncInfo = (FUNC_BM*)m_pFuncMap_BM->Find( MAKEWORD( pMsg->m_byCategory, pMsg->m_byProtocol ) );
if( pFuncInfo == NULL )
{
return FALSE;
}
pFuncInfo->m_fnHandler( pBattleServerSession, pMsg, wSize );
return TRUE;
}
// 鞘靛 辑滚肺何磐 坷绰 菩哦 颇教
BOOL PacketHandler::ParsePacket_FM( FieldServerSession *pFieldServerSession, MSG_BASE * pMsg, WORD wSize )
{
//墨抛绊府俊 蝶扼 鞠龋拳 秦刀贸府
if( pMsg->m_byCategory == 0xff )
{
// ......秦刀
// 秦刀茄 单捞磐俊辑 墨抛绊府客 菩哦鸥涝 眠免 : byPacketCategory,byPacketType
}
FUNC_FM *pFuncInfo = (FUNC_FM*)m_pFuncMap_FM->Find( MAKEWORD( pMsg->m_byCategory, pMsg->m_byProtocol ) );
if( pFuncInfo == NULL )
{
return FALSE;
}
pFuncInfo->m_fnHandler( pFieldServerSession, pMsg, wSize );
return TRUE;
}
// 俊捞傈飘 辑滚肺何磐 坷绰 菩哦 颇教
BOOL PacketHandler::ParsePacket_AM( AgentServerSession *pAgentServerSession, MSG_BASE *pMsg, WORD wSize )
{
//墨抛绊府俊 蝶扼 鞠龋拳 秦刀贸府
if( pMsg->m_byCategory == 0xff )
{
// ......秦刀
// 秦刀茄 单捞磐俊辑 墨抛绊府客 菩哦鸥涝 眠免 : byPacketCategory,byPacketType
}
FUNC_AM *pFuncInfo = (FUNC_AM*)m_pFuncMap_AM->Find( MAKEWORD( pMsg->m_byCategory, pMsg->m_byProtocol ) );
if( pFuncInfo == NULL )
{
return FALSE;
}
pFuncInfo->m_fnHandler( pAgentServerSession, pMsg, wSize );
return TRUE;
}
// 岿靛 辑滚肺何磐 坷绰 菩哦 颇教
BOOL PacketHandler::ParsePacket_MW( WorldServerSession *pWorldServerSession, MSG_BASE *pMsg, WORD wSize )
{
//墨抛绊府俊 蝶扼 鞠龋拳 秦刀贸府
if( pMsg->m_byCategory == 0xff )
{
// ......秦刀
// 秦刀茄 单捞磐俊辑 墨抛绊府客 菩哦鸥涝 眠免 : byPacketCategory,byPacketType
}
FUNC_MW *pFuncInfo = (FUNC_MW*)m_pFuncMap_MW->Find( MAKEWORD( pMsg->m_byCategory, pMsg->m_byProtocol ) );
if( pFuncInfo == NULL )
{
return FALSE;
}
pFuncInfo->m_fnHandler( pWorldServerSession, pMsg, wSize );
return TRUE;
}
// 坷欺饭捞泼 辑滚肺何磐 坷绰 菩哦 颇教
BOOL PacketHandler::ParsePacket_MO( OpServerSession *pOpServerSession, MSG_BASE *pMsg, WORD wSize )
{
//墨抛绊府俊 蝶扼 鞠龋拳 秦刀贸府
if( pMsg->m_byCategory == 0xff )
{
// ......秦刀
// 秦刀茄 单捞磐俊辑 墨抛绊府客 菩哦鸥涝 眠免 : byPacketCategory,byPacketType
}
FUNC_MO *pFuncInfo = (FUNC_MO*)m_pFuncMap_MO->Find( MAKEWORD( pMsg->m_byCategory, pMsg->m_byProtocol ) );
if( pFuncInfo == NULL )
{
return FALSE;
}
pFuncInfo->m_fnHandler( pOpServerSession, pMsg, wSize );
return TRUE;
}
BOOL PacketHandler::ParsePacket_MZ( GuildServerSession *pGuildServerSession, MSG_BASE *pMsg, WORD wSize )
{
//墨抛绊府俊 蝶扼 鞠龋拳 秦刀贸府
if( pMsg->m_byCategory == 0xff )
{
// ......秦刀
// 秦刀茄 单捞磐俊辑 墨抛绊府客 菩哦鸥涝 眠免 : byPacketCategory,byPacketType
}
FUNC_MZ *pFuncInfo = (FUNC_MZ*)m_pFuncMap_MZ->Find( MAKEWORD( pMsg->m_byCategory, pMsg->m_byProtocol ) );
if( pFuncInfo == NULL )
{
return FALSE;
}
pFuncInfo->m_fnHandler( pGuildServerSession, pMsg, wSize );
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -