📄 packethandler.cpp
字号:
#include "stdafx.h"
#include "PacketHandler.h"
#include <Protocol_ServerCommon.h>
#include <PacketStruct_ServerCommon.h>
#include <Protocol_CW.h>
#include <PacketStruct_CW.h>
#include <Protocol_MW.h>
#include <Protocol_AW.h>
#include <Protocol_DW.h>
#include <PacketStruct_AW.h>
#include <PacketStruct_DW.h>
#include <PacketStruct_WZ.h>
#include "Handler_CW.h"
#include "Handler_MW.h"
#include "Handler_AW.h"
#include "Handler_DW.h"
#include "Handler_WZ.h"
PacketHandler::PacketHandler()
{
m_pFuncMap_CW = new util::FunctionMap;
m_pFuncMap_DW = new util::FunctionMap;
m_pFuncMap_TW = new util::FunctionMap;
m_pFuncMap_GW = new util::FunctionMap;
m_pFuncMap_BW = new util::FunctionMap;
m_pFuncMap_FW = new util::FunctionMap;
m_pFuncMap_AW = new util::FunctionMap;
m_pFuncMap_MW = new util::FunctionMap;
m_pFuncMap_WZ = new util::FunctionMap;
}
PacketHandler::~PacketHandler()
{
if( m_pFuncMap_CW ) delete m_pFuncMap_CW;
if( m_pFuncMap_DW ) delete m_pFuncMap_DW;
if( m_pFuncMap_TW ) delete m_pFuncMap_TW;
if( m_pFuncMap_GW ) delete m_pFuncMap_GW;
if( m_pFuncMap_BW ) delete m_pFuncMap_BW;
if( m_pFuncMap_FW ) delete m_pFuncMap_FW;
if( m_pFuncMap_AW ) delete m_pFuncMap_AW;
if( m_pFuncMap_MW ) delete m_pFuncMap_MW;
if( m_pFuncMap_WZ ) delete m_pFuncMap_WZ;
}
BOOL PacketHandler::RegisterPackets()
{
// From client
if( !RegClientPacket( CW_CHAT, CW_WHISPER_SYN, Handler_CW::OnCW_WHISPER_SYN ) ) return FALSE;
if( !RegClientPacket( CW_CHAT, CW_NOTICE_SYN, Handler_CW::OnCW_NOTICE_SYN ) ) return FALSE;
if( !RegClientPacket( CW_CONNECTION, CW_HEARTBEAT, Handler_CW::OnCW_HEARTBEAT ) ) return FALSE;
if( !RegClientPacket( CW_CHAT, CW_WHISPER_SET_SYN, Handler_CW::OnCW_WHISPER_SET_SYN ) ) return FALSE;
if( !RegClientPacket( CW_CHAT, CW_CHAT_VILLAGE_SYN, Handler_CW::OnCW_CHAT_VILLAGE_SYN ) ) return FALSE;
if( !RegClientPacket( CW_CHAT, CW_CHAT_BATTLE_SYN, Handler_CW::OnCW_CHAT_BATTLE_SYN ) ) return FALSE;
if( !RegClientPacket( CW_CHAT, CW_CHAT_SHOUT_SYN, Handler_CW::OnCW_CHAT_SHOUT_SYN ) ) return FALSE;
if( !RegClientPacket( CW_GM, CW_GM_NOTICE_SYN, Handler_CW::OnCW_GM_NOTICE_SYN ) ) return FALSE;
if( !RegClientPacket( CW_GM, CW_GM_STRING_CMD_SYN, Handler_CW::OnCW_GM_STRING_CMD_SYN ) ) return FALSE;
if( !RegClientPacket( CW_VIEWPORT, CW_VIEWPORT_CHARSTATE, Handler_CW::OnCW_VIEWPORT_CHARSTATE ) ) return FALSE;
if( !RegClientPacket( CW_ARMORKIT, CW_ARMORKIT_FINDHACK, Handler_CW::OnCW_ARMORKIT_FINDHACK_SYN ) ) return FALSE;
if( !RegClientPacket( CW_FRIEND, CW_FRIEND_NEWLIST_SYN, Handler_CW::OnCW_FRIEND_NEWLIST_SYN ) ) return FALSE;
if( !RegClientPacket( CW_FRIEND, CW_FRIEND_ADD_SYN, Handler_CW::OnCW_FRIEND_ADD_SYN ) ) return FALSE;
if( !RegClientPacket( CW_FRIEND, CW_FRIEND_DEL_SYN, Handler_CW::OnCW_FRIEND_DEL_SYN ) ) return FALSE;
if( !RegClientPacket( CW_FRIEND, CW_FRIEND_BLOCK_SYN, Handler_CW::OnCW_FRIEND_BLOCK_SYN ) ) return FALSE;
if( !RegClientPacket( CW_FRIEND, CW_FRIEND_BLOCK_FREE_SYN, Handler_CW::OnCW_FRIEND_BLOCK_FREE_SYN ) ) return FALSE;
if( !RegClientPacket( CW_FRIEND, CW_FRIEND_CHAT_SYN, Handler_CW::OnCW_FRIEND_CHAT_SYN ) ) return FALSE;
if( !RegClientPacket( CW_FRIEND, CW_FRIEND_CHATBLOCK_SYN, Handler_CW::OnCW_FRIEND_CHATBLOCK_SYN ) ) return FALSE;
if( !RegClientPacket( CW_GUILD, CW_GUILD_MEMBER_SYN, Handler_CW::OnCW_GUILD_MEMBER_SYN ) ) return FALSE;
if( !RegClientPacket( CW_GUILD, CW_GUILD_CHAT_SYN, Handler_CW::OnCW_GUILD_CHAT_SYN ) ) return FALSE;
// From Game DB proxy
if( !RegGameDBProxyPacket( DW_CONNECTION, DW_CONNECTION_SERVER_INFO_CMD, Handler_DW::OnDW_CONNECTION_SERVER_INFO_CMD ) ) return FALSE;
if( !RegGameDBProxyPacket( DW_FRIEND, DW_FRIEND_GETLIST_ACK, Handler_DW::OnDW_FRIEND_GETLIST_ACK ) ) return FALSE;
if( !RegGameDBProxyPacket( DW_FRIEND, DW_FRIEND_GETLIST_NAK, Handler_DW::OnDW_FRIEND_GETLIST_NAK ) ) return FALSE;
if( !RegGameDBProxyPacket( DW_FRIEND, DW_FRIEND_ADD_ACK, Handler_DW::OnDW_FRIEND_ADD_ACK ) ) return FALSE;
if( !RegGameDBProxyPacket( DW_FRIEND, DW_FRIEND_ADD_NAK, Handler_DW::OnDW_FRIEND_ADD_NAK ) ) return FALSE;
if( !RegGameDBProxyPacket( DW_FRIEND, DW_FRIEND_DEL_ACK, Handler_DW::OnDW_FRIEND_DEL_ACK ) ) return FALSE;
if( !RegGameDBProxyPacket( DW_FRIEND, DW_FRIEND_DEL_NAK, Handler_DW::OnDW_FRIEND_DEL_NAK ) ) return FALSE;
if( !RegGameDBProxyPacket( DW_FRIEND, DW_FRIEND_BLOCK_ACK, Handler_DW::OnDW_FRIEND_BLOCK_ACK ) ) return FALSE;
if( !RegGameDBProxyPacket( DW_FRIEND, DW_FRIEND_BLOCK_NAK, Handler_DW::OnDW_FRIEND_BLOCK_NAK ) ) return FALSE;
if( !RegGameDBProxyPacket( DW_FRIEND, DW_FRIEND_BLOCK_FREE_ACK, Handler_DW::OnDW_FRIEND_BLOCK_FREE_ACK ) ) return FALSE;
if( !RegGameDBProxyPacket( DW_FRIEND, DW_FRIEND_BLOCK_FREE_NAK, Handler_DW::OnDW_FRIEND_BLOCK_FREE_NAK ) ) return FALSE;
// From account DB proxy
// From game server
// From agent server
if( !RegAgentServerPacket( AW_CONNECTION, AW_AGENTSERVER_INFO_SYN, Handler_AW::OnAW_AGENTSERVER_INFO_SYN ) )
return FALSE;
if( !RegAgentServerPacket( AW_CONNECTION, AW_PREPARE_NEW_USER_SYN, Handler_AW::OnAW_PREPARE_NEW_USER_SYN ) )
return FALSE;
if( !RegAgentServerPacket( AW_USER_STATUS, AW_USER_SET_CHARNAME_SYN, Handler_AW::OnAW_USER_SET_CHARNAME_SYN ) )
return FALSE;
if( !RegAgentServerPacket( AW_USER_STATUS, AW_USER_UNSET_CHARNAME_SYN, Handler_AW::OnAW_USER_UNSET_CHARNAME_SYN ) )
return FALSE;
if( !RegAgentServerPacket( AW_USER_STATUS, AW_USER_ENTER_ZONE_SYN, Handler_AW::OnAW_USER_ENTER_ZONE_SYN ) )
return FALSE;
if( !RegAgentServerPacket( AW_USER_STATUS, AW_USER_LEAVE_ZONE_SYN, Handler_AW::OnAW_USER_LEAVE_ZONE_SYN ) )
return FALSE;
if( !RegAgentServerPacket( AW_USER_STATUS, AW_USER_LOGOUT, Handler_AW::OnAW_USER_LOGOUT ) )
return FALSE;
if( !RegAgentServerPacket( AW_USER_STATUS, AW_USER_RESTORE_CMD, Handler_AW::OnAW_USER_RESTORE_CMD ) )
return FALSE;
/*
if( !RegAgentServerPacket( AW_OPERATION, AW_USERCOUNT_SYN, Handler_AW::OnAW_USERCOUNT_SYN ) )
return FALSE;
if( !RegAgentServerPacket( AW_OPERATION, AW_USERMONEY_SYN, Handler_AW::OnAW_USERMONEY_SYN ) )
return FALSE;
*/
// From master server
if( !RegMasterServerPacket( MW_CONNECTION, MW_SERVER_INFO_CMD, Handler_MW::OnMW_SERVER_INFO_CMD ) ) return FALSE;
if( !RegMasterServerPacket( MW_OPERATION, MW_NOTICE_CMD, Handler_MW::OnMW_NOTICE_CMD ) ) return FALSE;
if( !RegMasterServerPacket( MW_OPERATION, MW_GM_LIST_CMD, Handler_MW::OnMW_GM_LIST_CMD ) ) return FALSE;
if( !RegMasterServerPacket( MW_OPERATION, MW_BATTLEZONEINFO_REQ, Handler_MW::OnMW_BATTLEZONEINFO_REQ ) ) return FALSE;
if( !RegMasterServerPacket( SERVERCOMMON, SERVERCOMMON_SERVERSHUTDOWN_REQ, Handler_MW::OnSERVERCOMMON_SERVERSHUTDOWN_REQ ) ) return FALSE;
// From Guild Server
if ( !RegGuildServerPacket( WZ_GUILD, WZ_GUILD_INFO_CMD, Handler_WZ::OnWZ_GUILD_INFO_CMD ) ) return FALSE;
if ( !RegGuildServerPacket( WZ_GUILD, WZ_GUILD_DESTROY_GUILD_CMD, Handler_WZ::OnWZ_GUILD_DESTROY_GUILD_CMD ) ) return FALSE;
if ( !RegGuildServerPacket( WZ_GUILD, WZ_GUILD_JOIN_GUILD_CMD, Handler_WZ::OnWZ_GUILD_JOIN_GUILD_CMD ) ) return FALSE;
if ( !RegGuildServerPacket( WZ_GUILD, WZ_GUILD_WITHDRAW_GUILD_CMD, Handler_WZ::OnWZ_GUILD_WITHDRAW_GUILD_CMD ) ) return FALSE;
if ( !RegGuildServerPacket( WZ_GUILD, WZ_GUILD_LOGIN_CHAR_CMD, Handler_WZ::OnWZ_GUILD_LOGIN_CHAR_CMD ) ) return FALSE;
if ( !RegGuildServerPacket( WZ_GUILD, WZ_GUILD_LOGOUT_CHAR_CMD, Handler_WZ::OnWZ_GUILD_LOGOUT_CHAR_CMD ) ) return FALSE;
if ( !RegGuildServerPacket( WZ_GUILD, WZ_GUILD_SELECT_ACK, Handler_WZ::OnWZ_GUILD_SELECT_ACK ) ) return FALSE;
if ( !RegGuildServerPacket( WZ_GUILD, WZ_GUILD_SELECT_NAK, Handler_WZ::OnWZ_GUILD_SELECT_NAK ) ) return FALSE;
if ( !RegGuildServerPacket( SERVERCOMMON, SERVERCOMMON_HEARTBEAT, Handler_WZ::OnSERVERCOMMON_HEARTBEAT ) ) return FALSE;
return TRUE;
}
// Client甫 困茄 菩哦 勤甸矾
BOOL PacketHandler::RegClientPacket( BYTE category, BYTE protocol, PacketHandler::fnHandler_CW fnHandler )
{
FUNC_CW *pFuncInfo = new FUNC_CW;
pFuncInfo->m_dwFunctionKey = MAKEWORD( category, protocol );
pFuncInfo->m_fnHandler = fnHandler;
return m_pFuncMap_CW->Add( pFuncInfo );
}
// Game DB Proxy甫 困茄 菩哦 勤甸矾
BOOL PacketHandler::RegGameDBProxyPacket( BYTE category, BYTE protocol, PacketHandler::fnHandler_DW fnHandler )
{
FUNC_DW *pFuncInfo = new FUNC_DW;
pFuncInfo->m_dwFunctionKey = MAKEWORD( category, protocol );
pFuncInfo->m_fnHandler = fnHandler;
return m_pFuncMap_DW->Add( pFuncInfo );
}
// Account DB Proxy甫 困茄 菩哦 勤甸矾
BOOL PacketHandler::RegAccountDBProxyPacket( BYTE category, BYTE protocol, PacketHandler::fnHandler_TW fnHandler )
{
FUNC_TW *pFuncInfo = new FUNC_TW;
pFuncInfo->m_dwFunctionKey = MAKEWORD( category, protocol );
pFuncInfo->m_fnHandler = fnHandler;
return m_pFuncMap_TW->Add( pFuncInfo );
}
// 霸烙 辑滚甫 困茄 菩哦 勤甸矾 眠啊
BOOL PacketHandler::RegGameServerPacket( BYTE category, BYTE protocol, PacketHandler::fnHandler_GW fnHandler )
{
FUNC_GW *pFuncInfo = new FUNC_GW;
pFuncInfo->m_dwFunctionKey = MAKEWORD( category, protocol );
pFuncInfo->m_fnHandler = fnHandler;
return m_pFuncMap_GW->Add( pFuncInfo );
}
// 硅撇 辑滚甫 困茄 菩哦 勤甸矾 眠啊
BOOL PacketHandler::RegBattleServerPacket( BYTE category, BYTE protocol, PacketHandler::fnHandler_BW fnHandler )
{
FUNC_BW *pFuncInfo = new FUNC_BW;
pFuncInfo->m_dwFunctionKey = MAKEWORD( category, protocol );
pFuncInfo->m_fnHandler = fnHandler;
return m_pFuncMap_BW->Add( pFuncInfo );
}
// 鞘靛 辑滚甫 困茄 菩哦 勤甸矾 眠啊
BOOL PacketHandler::RegFieldServerPacket( BYTE category, BYTE protocol, PacketHandler::fnHandler_FW fnHandler )
{
FUNC_FW *pFuncInfo = new FUNC_FW;
pFuncInfo->m_dwFunctionKey = MAKEWORD( category, protocol );
pFuncInfo->m_fnHandler = fnHandler;
return m_pFuncMap_FW->Add( pFuncInfo );
}
// 俊捞傈飘 辑滚甫 困茄 菩哦 勤甸矾 眠啊
BOOL PacketHandler::RegAgentServerPacket( BYTE category, BYTE protocol, PacketHandler::fnHandler_AW fnHandler )
{
FUNC_AW *pFuncInfo = new FUNC_AW;
pFuncInfo->m_dwFunctionKey = MAKEWORD( category, protocol );
pFuncInfo->m_fnHandler = fnHandler;
return m_pFuncMap_AW->Add( pFuncInfo );
}
// 付胶磐 辑滚甫 困茄 菩哦 眠啊
BOOL PacketHandler::RegMasterServerPacket( BYTE category, BYTE protocol, PacketHandler::fnHandler_MW fnHandler )
{
FUNC_MW *pFuncInfo = new FUNC_MW;
pFuncInfo->m_dwFunctionKey = MAKEWORD( category, protocol );
pFuncInfo->m_fnHandler = fnHandler;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -