📄 packethandler.cpp
字号:
// PVP
#define HANDLER_CG_PVP( c, p ) if( !AddHandler_AG( c, p, Handler_CG_PVP::On##p ) ) return FALSE
HANDLER_CG_PVP(CG_PVP, CG_PVP_PRESS_KEY_SYN);
// 俺牢 惑痢
#define HANDLER_CG_VENDOR( c, p ) if( !AddHandler_AG( c, p, Handler_CG_VENDOR::On##p ) ) return FALSE
HANDLER_CG_VENDOR(CG_VENDOR, CG_VENDOR_START_SYN);
HANDLER_CG_VENDOR(CG_VENDOR, CG_VENDOR_END_SYN);
HANDLER_CG_VENDOR(CG_VENDOR, CG_VENDOR_MODIFY_REQ_SYN);
HANDLER_CG_VENDOR(CG_VENDOR, CG_VENDOR_MODIFY_SYN);
HANDLER_CG_VENDOR(CG_VENDOR, CG_VENDOR_DELETE_SYN);
HANDLER_CG_VENDOR(CG_VENDOR, CG_VENDOR_BUY_SYN);
HANDLER_CG_VENDOR(CG_VENDOR, CG_VENDOR_VIEW_START_SYN);
HANDLER_CG_VENDOR(CG_VENDOR, CG_VENDOR_VIEW_END_SYN);
// CG_TRIGGER
if( !AddHandler_AG( CG_TRIGGER, CG_TRIGGER_CLICK_OBJECT_SYN, Handler_CG_TRIGGER::OnCG_TRIGGER_CLICK_OBJECT_SYN))
return FALSE;
if( !AddHandler_AG( CG_TRIGGER, CG_TRIGGER_ENTER_AREA_SYN, Handler_CG_TRIGGER::OnCG_TRIGGER_ENTER_AREA_SYN))
return FALSE;
if( !AddHandler_AG( CG_TRIGGER, CG_TRIGGER_LEAVE_AREA_SYN, Handler_CG_TRIGGER::OnCG_TRIGGER_LEAVE_AREA_SYN))
return FALSE;
if( !AddHandler_AG( CG_TRIGGER, CG_TRIGGER_REWARD_SYN, Handler_CG_TRIGGER::OnCG_TRIGGER_REWARD_SYN))
return FALSE;
/*
// GM
/*
if( !AddHandler_AG( CG_GM, CG_GM_MONSTER_CREATE_SYN, Handler_CG_GM::OnCG_GM_MONSTER_CREATE_SYN) )
return FALSE;
if( !AddHandler_AG( CG_GM, CG_GM_MONSTER_DESTROYALL_SYN, Handler_CG_GM::OnCG_GM_MONSTER_DESTROYALL_SYN) )
return FALSE;
if( !AddHandler_AG( CG_GM, CG_GM_MONSTER_DESTROYNEAR_SYN, Handler_CG_GM::OnCG_GM_MONSTER_DESTROYNEAR_SYN) )
return FALSE;
if( !AddHandler_AG( CG_GM, CG_GM_OBSERVER_SYN, Handler_CG_GM::OnCG_GM_OBSERVER_SYN) )
return FALSE;
if( !AddHandler_AG( CG_GM, CG_GM_CHARINFO_SYN, Handler_CG_GM::OnCG_GM_CHARINFO_SYN) )
return FALSE;
if( !AddHandler_AG( CG_GM, CG_GM_CREATE_ITEM_SYN, Handler_CG_GM::OnCG_GM_CREATE_ITEM_SYN) )
return FALSE;
if( !AddHandler_AG( CG_GM, CG_GM_CREATE_ENCHANT_ITEM_SYN, Handler_CG_GM::OnCG_GM_CREATE_ENCHANT_ITEM_SYN) )
return FALSE;
if( !AddHandler_AG( CG_GM, CG_GM_DESTROY_ITEM_AROUND_SYN, Handler_CG_GM::OnCG_GM_DESTROY_ITEM_AROUND_SYN) )
return FALSE;
if( !AddHandler_AG( CG_GM, CG_GM_CREATE_MONEY_SYN, Handler_CG_GM::OnCG_GM_CREATE_MONEY_SYN) )
return FALSE;
if( !AddHandler_AG( CG_GM, CG_GM_LEVEL_UP_SYN, Handler_CG_GM::OnCG_GM_LEVEL_UP_SYN) )
return FALSE;
if( !AddHandler_AG( CG_GM, CG_GM_STAT_UP_SYN, Handler_CG_GM::OnCG_GM_STAT_UP_SYN) )
return FALSE;
if( !AddHandler_AG( CG_GM, CG_GM_SKILLPOINT_UP_SYN, Handler_CG_GM::OnCG_GM_SKILLPOINT_UP_SYN) )
return FALSE;
if( !AddHandler_AG( CG_GM, CG_GM_RELOAD_DATA_CMD, Handler_CG_GM::OnCG_GM_RELOAD_DATA_CMD) )
return FALSE;
if( !AddHandler_AG( CG_GM, CG_GM_UNDEAD_MODE_SYN, Handler_CG_GM::OnCG_GM_UNDEAD_MODE_SYN) )
return FALSE;
if( !AddHandler_AG( CG_GM, CG_GM_ROOMINFO_SYN, Handler_CG_GM::OnCG_GM_ROOMINFO_SYN) )
return FALSE;
if( !AddHandler_AG( CG_GM, CG_GM_RESURRECTION_SYN, Handler_CG_GM::OnCG_GM_RESURRECTION_SYN ) ) //何劝
return FALSE;
if( !AddHandler_AG( CG_GM, CG_GM_RECOVERY_SYN, Handler_CG_GM::OnCG_GM_RECOVERY_SYN ) ) //雀汗
return FALSE;
if( !AddHandler_AG( CG_GM, CG_GM_SET_SPEED_SYN, Handler_CG_GM::OnCG_GM_SET_SPEED_SYN ) ) //加档
return FALSE;
if( !AddHandler_AG( CG_GM, CG_GM_ENTRANCE_SYN, Handler_CG_GM::OnCG_GM_ENTRANCE_SYN ) ) //涝厘
return FALSE;
if( !AddHandler_AG( CG_GM, CG_GM_FORCE_DISCONNECT_SYN, Handler_CG_GM::OnCG_GM_FORCE_DISCONNECT_SYN ) ) //立加辆丰
return FALSE;
if( !AddHandler_AG( CG_GM, CG_GM_MONSTER_DESTROYONE_SYN, Handler_CG_GM::OnCG_GM_MONSTER_DESTROYONE_SYN ) ) //力芭
return FALSE;
if( !AddHandler_AG( CG_GM, CG_GM_MONSTER_KILLONE_SYN, Handler_CG_GM::OnCG_GM_MONSTER_KILLONE_SYN ) ) //懦
return FALSE;
*/
if( !AddHandler_AG( CG_GM, CG_GM_STRING_CMD_SYN, Handler_CG_GM::OnCG_GM_STRING_CMD_SYN ) ) //胶飘傅 疙飞绢
return FALSE;
// CONNECTION
if( !AddHandler_AG( AG_CONNECTION, AG_CONNECTION_DISCONNECT_CMD, Handler_AG_CONNECTION::OnAG_CONNECTION_DISCONNECT_CMD) )
return FALSE;
//if( !AddHandler_AG( AG_CONNECTION, AG_CONNECTION_UNREGISTER_CMD, Handler_AG_CONNECTION::OnAG_CONNECTION_UNREGISTER_CMD) )
// return FALSE;
// STATUS
if( !AddHandler_AG( CG_STATUS, CG_STATUS_STAT_SELECT_SYN, Handler_CG_STATUS::OnCG_STATUS_STAT_SELECT_SYN) )
return FALSE;
if( !AddHandler_AG( CG_STATUS, CG_STATUS_RESURRECTION_SYN, Handler_CG_STATUS::OnCG_STATUS_RESURRECTION_SYN) )
return FALSE;
if( !AddHandler_AG( CG_STATUS, CG_STATUS_EMOTION_SYN, Handler_CG_STATUS::OnCG_STATUS_EMOTION_SYN) )
return FALSE;
if( !AddHandler_AG( CG_STATUS, CG_STATUS_CONDITION_CHANGE_SYN, Handler_CG_STATUS::OnCG_STATUS_CONDITION_CHANGE_SYN) )
return FALSE;
if( !AddHandler_AG( CG_STATUS, CG_STATUS_RENDER_OPTION_SYN, Handler_CG_STATUS::OnCG_STATUS_RENDER_OPTION_SYN) )
return FALSE;
// CG_PARTY
if( !AddHandler_AG( CG_PARTY, CG_PARTY_FORCED_EXPULSION_SYN, Handler_CG_PARTY::OnCG_PARTY_FORCED_EXPULSION_SYN) )
return FALSE;
if( !AddHandler_AG( CG_PARTY, CG_PARTY_LEAVE_REQUEST_SYN, Handler_CG_PARTY::OnCG_PARTY_LEAVE_REQUEST_SYN) )
return FALSE;
if( !AddHandler_AG( CG_PARTY, CG_PARTY_CHANGE_MASTER_SYN, Handler_CG_PARTY::OnCG_PARTY_CHANGE_MASTER_SYN) )
return FALSE;
if( !AddHandler_AG( CG_PARTY, CG_PARTY_DESTROY_PARTY_SYN, Handler_CG_PARTY::OnCG_PARTY_DESTROY_PARTY_SYN) )
return FALSE;
if( !AddHandler_AG( CG_PARTY, CG_PARTY_CHANGE_ITEM_DISTRIBUTION_TYPE_SYN, Handler_CG_PARTY::OnCG_PARTY_CHANGE_ITEM_DISTRIBUTION_TYPE_SYN) )
return FALSE;
if( !AddHandler_AG( CG_PARTY, CG_PARTY_SELECT_TARGET_SYN, Handler_CG_PARTY::OnCG_PARTY_SELECT_TARGET_SYN) )
return FALSE;
// AG_PARTY
if( !AddHandler_AG( AG_PARTY, AG_PARTY_AGENT_BATTLE_INVITE_REQUEST_SYN, Handler_AG_PARTY::OnAG_PARTY_AGENT_BATTLE_INVITE_REQUEST_SYN) )
return FALSE;
if( !AddHandler_AG( AG_PARTY, AG_PARTY_AGENT_FIELD_INVITE_REQUEST_SYN, Handler_AG_PARTY::OnAG_PARTY_AGENT_FIELD_INVITE_REQUEST_SYN) )
return FALSE;
if( !AddHandler_AG( AG_PARTY, AG_PARTY_AGENT_FIELD_INVITE_RESPONSE_NAK, Handler_AG_PARTY::OnAG_PARTY_AGENT_FIELD_INVITE_RESPONSE_NAK) )
return FALSE;
if( !AddHandler_AG( AG_PARTY, AG_PARTY_AGENT_BATTLE_INVITE_RESPONSE_NAK, Handler_AG_PARTY::OnAG_PARTY_AGENT_BATTLE_INVITE_RESPONSE_NAK) )
return FALSE;
if( !AddHandler_AG( AG_PARTY, AG_PARTY_AGENT_FIELD_INVITE_RESPONSE_ACK, Handler_AG_PARTY::OnAG_PARTY_AGENT_FIELD_INVITE_RESPONSE_ACK) )
return FALSE;
if( !AddHandler_AG( AG_PARTY, AG_PARTY_AGENT_BATTLE_INVITE_RESPONSE_ACK, Handler_AG_PARTY::OnAG_PARTY_AGENT_BATTLE_INVITE_RESPONSE_ACK) )
return FALSE;
// 家券
#define HANDLER_CG_SUMMON( c, p ) if( !AddHandler_AG( c, p, Handler_CG_SUMMON::On##p ) ) return FALSE
HANDLER_CG_SUMMON( CG_SUMMON, CG_SUMMON_COMMAND_SYN );
HANDLER_CG_SUMMON( CG_SUMMON, CG_SUMMON_SKILL_ACTION_SYN );
// 辨靛
#define HANDLER_CG_GUILD( c, p ) if( !AddHandler_AG( c, p, Handler_CG_GUILD::On##p ) ) return FALSE
HANDLER_CG_GUILD( CG_GUILD, CG_GUILD_SELECT_SYN );
HANDLER_CG_GUILD( CG_GUILD, CG_GUILD_CREATE_SYN );
HANDLER_CG_GUILD( CG_GUILD, CG_GUILD_DESTROY_SYN );
HANDLER_CG_GUILD( CG_GUILD, CG_GUILD_INVITE_SYN );
HANDLER_CG_GUILD( CG_GUILD, CG_GUILD_INVITE_ACCEPT_SYN );
HANDLER_CG_GUILD( CG_GUILD, CG_GUILD_INVITE_REJECT_SYN );
HANDLER_CG_GUILD( CG_GUILD, CG_GUILD_WITHDRAW_SYN );
HANDLER_CG_GUILD( CG_GUILD, CG_GUILD_TRANSFER_POSITION_SYN );
HANDLER_CG_GUILD( CG_GUILD, CG_GUILD_GRANT_LOW_POSITION_SYN );
HANDLER_CG_GUILD( CG_GUILD, CG_GUILD_DROP_LOW_POSITION_SYN );
// 捞亥飘 牢亥配府
#define HANDLER_CG_EVENT( c, p ) if( !AddHandler_AG( c, p, Handler_CG_EVENT::On##p ) ) return FALSE
HANDLER_CG_EVENT( CG_EVENT, CG_EVENT_SELECT_SYN );
HANDLER_CG_EVENT( CG_EVENT, CG_EVENT_MOVE_ITEM_TO_INVEN_SYN );
return TRUE;
}
VOID PacketHandler::ParsePacket_GZ( ServerSession * pServer, MSG_BASE * pMsg, WORD wSize )
{
if( 0xff == pMsg->m_byCategory )
{
}
FUNC_GZ * pFuncInfo = (FUNC_GZ *)m_FunctionMap_GZ.Find( MAKEWORD( pMsg->m_byCategory,pMsg->m_byProtocol ) );
if( NULL == pFuncInfo )
{
SUNLOG( eCRITICAL_LOG, "[PacketHandler::ParsePacket_GZ] PacketType Error GZ!!");
return ;
}
pFuncInfo->m_fnHandler( pServer, pMsg, wSize );
}
VOID PacketHandler::ParsePacket_DG( ServerSession * pServer, MSG_BASE * pMsg, WORD wSize )
{
if( 0xff == pMsg->m_byCategory )
{
}
FUNC_DG * pFuncInfo = (FUNC_DG *)m_FunctionMap_DG.Find( MAKEWORD( pMsg->m_byCategory,pMsg->m_byProtocol ) );
if( NULL == pFuncInfo )
{
SUNLOG( eCRITICAL_LOG, "[PacketHandler::ParsePacket_DG] PacketType Error DG!!");
return ;
}
pFuncInfo->m_fnHandler( pServer, pMsg, wSize );
}
VOID PacketHandler::ParsePacket_GM( ServerSession * pServer, MSG_BASE * pMsg, WORD wSize )
{
if( 0xff == pMsg->m_byCategory )
{
}
FUNC_GM * pFuncInfo = (FUNC_GM *)m_FunctionMap_GM.Find( MAKEWORD( pMsg->m_byCategory,pMsg->m_byProtocol ) );
if( NULL == pFuncInfo )
{
SUNLOG( eCRITICAL_LOG, "[PacketHandler::ParsePacket_GM] PacketType Error!! GM");
return ;
}
pFuncInfo->m_fnHandler( pServer, pMsg, wSize );
}
VOID PacketHandler::ParsePacket_AG( ServerSession * pServer, MSG_BASE * pMsg, WORD wSize )
{
if( 0xff == pMsg->m_byCategory )
{
}
FUNC_AG * pFuncInfo = (FUNC_AG *)m_FunctionMap_AG.Find( MAKEWORD( pMsg->m_byCategory,pMsg->m_byProtocol ) );
if( NULL == pFuncInfo )
{
SUNLOG( eCRITICAL_LOG, "[PacketHandler::ParsePacket_AG] PacketType Error!! AG Category[%d] Protocol[%d] ", pMsg->m_byCategory,pMsg->m_byProtocol);
return ;
}
pFuncInfo->m_fnHandler( pServer, pMsg, wSize );
}
BOOL PacketHandler::AddHandler_GZ( BYTE category, BYTE protocol, fnHandler fnHandler)
{
FUNC_GZ * pFuncInfo = new FUNC_GZ;
pFuncInfo->m_dwFunctionKey = MAKEWORD( category, protocol );
pFuncInfo->m_fnHandler = fnHandler;
return m_FunctionMap_GZ.Add( pFuncInfo );
}
BOOL PacketHandler::AddHandler_DG( BYTE category, BYTE protocol, fnHandler fnHandler)
{
FUNC_DG * pFuncInfo = new FUNC_DG;
pFuncInfo->m_dwFunctionKey = MAKEWORD( category, protocol );
pFuncInfo->m_fnHandler = fnHandler;
return m_FunctionMap_DG.Add( pFuncInfo );
}
BOOL PacketHandler::AddHandler_GM( BYTE category, BYTE protocol, fnHandler fnHandler)
{
FUNC_GM * pFuncInfo = new FUNC_GM;
pFuncInfo->m_dwFunctionKey = MAKEWORD( category, protocol );
pFuncInfo->m_fnHandler = fnHandler;
return m_FunctionMap_GM.Add( pFuncInfo );
}
BOOL PacketHandler::AddHandler_AG( BYTE category, BYTE protocol, fnHandler fnHandler)
{
FUNC_AG * pFuncInfo = new FUNC_AG;
pFuncInfo->m_dwFunctionKey = MAKEWORD( category, protocol );
pFuncInfo->m_fnHandler = fnHandler;
return m_FunctionMap_AG.Add( pFuncInfo );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -