#include "stdafx.h" #include "Handler_MZ.h" #include "PacketHandler.Shared.h" #include #define ADD_HANDLER_INFO_EOR() { MAKEWORD(0, 0), PHASE_NOACTION, (PH_fnHandler)NULL } #define ADD_HANDLER_INFO( c, p, accptablePHASE ) \ { MAKEWORD(c, p), accptablePHASE, (PH_fnHandler)&Handler_MZ::On##p } sPACKET_HANDLER_INFO* Handler_MZ::GetHandlerInfo() { static sPACKET_HANDLER_INFO s_pHandlerInfo[] = { ADD_HANDLER_INFO(DM_CONNECTION, DM_CONNECTION_GROUND_CMD, PHASE_UNLIMITED), //{__NA001254_20090109_RTTG_FUNC_ADD ADD_HANDLER_INFO(MZ_GUILD, MZ_GUILD_NAME_CHANGE_ACK, PHASE_UNLIMITED), ADD_HANDLER_INFO(MZ_GUILD, MZ_GUILD_NAME_CHANGE_NAK, PHASE_UNLIMITED), //} // //ADD_HANDLER_INFO(SERVERCOMMON, SERVERCOMMON_SERVERSHUTDOWN_ANS, PHASE_UNLIMITED), ADD_HANDLER_INFO_EOR(), }; return s_pHandlerInfo; }; VOID Handler_MZ::RegisterHandler_ALL( PACKET_HANDLER_DELEGATOR pInstance ) { pInstance->RegisterHandler_( GetHandlerInfo() ); pInstance->RegisterHandler_( PacketHandlerShared::GetHandlerInfo() ); pInstance->RegisterHandler_( PacketHandlerShared::GetDataHandlerInfo() ); } // // // #include #include HANDLER_MZ_IMPL(DM_CONNECTION_GROUND_CMD) { __UNUSED((pServerSession, pMsg, wSize)); } //HANDLER_MZ_IMPL(SERVERCOMMON_SERVERSHUTDOWN_ANS) //{ // //// Á¾·á ´ë±âÁßÀÎ ³ðÀÌ Á¾·áµÈ °ÍÀ̹ǷΠüũ // //if( MasterServer::Instance()->IsExitServer() && MasterServer::Instance()->GetExitType() == eEXIT_GAMEWAIT ) // //{ // // MasterServer::Instance()->RemoveExitServer( pGuildServerSession->GetServerKey() ); // Á¾·áµÇ¾ú´Ù! // // MessageOut( eFULL_LOG, "Guild Exit Message Recv[%u]", pGuildServerSession->GetServerKey() ); // //} //} //{__NA001254_20090109_RTTG_FUNC_ADD HANDLER_MZ_IMPL(MZ_GUILD_NAME_CHANGE_ACK) { MSG_MZ_GUILD_NAME_CHANGE_ACK* pMsgACK = (MSG_MZ_GUILD_NAME_CHANGE_ACK*)pMsg; MasterServerEx* pMasterServer = MasterServerEx::GetMainFrame(); OpServerSession* pOpSession = pMasterServer->ConnectSessions.SessionOpServer(); if( !pOpSession) return; MSG_MO_RTTG_CHANGE_GUILDNAME_ANS msg; msg.m_dwWopsKey = pMsgACK->m_dwKey; msg.m_dwResult = 0; pOpSession->SendPacket( &msg,sizeof(MSG_MO_RTTG_CHANGE_GUILDNAME_ANS) ); SUNLOG(eCRITICAL_LOG, "[MSG_MO_RTTG_CHANGE_GUILDNAME_ANS] ±æµå¸í º¯°æ °á°ú[¼º°ø] WopsKey[%d]", msg.m_dwWopsKey); } HANDLER_MZ_IMPL(MZ_GUILD_NAME_CHANGE_NAK) { const int MaxLen = MSG_MO_RTTG_CHANGE_GUILDNAME_ANS::MAX_RESULT_DESCRIPTION_LENGTH; MSG_MZ_GUILD_NAME_CHANGE_NAK* pMsgACK = (MSG_MZ_GUILD_NAME_CHANGE_NAK*)pMsg; MasterServerEx* pMasterServer = MasterServerEx::GetMainFrame(); OpServerSession* pOpSession = pMasterServer->ConnectSessions.SessionOpServer(); if( !pOpSession) return; MSG_MO_RTTG_CHANGE_GUILDNAME_ANS msg; msg.m_dwWopsKey = pMsgACK->m_dwKey; msg.m_dwResult = MSG_MO_RTTG_CHANGE_GUILDNAME_ANS::CHANGE_FAIL; switch( pMsgACK->m_byErrorCode ) { case RC::RC_GUILD_NAME_CHANGE_CANNOT_DB: strncpy( msg.m_szResultDescription, "DB ¿À·ù", MaxLen ); break; case RC::RC_GUILD_NAME_CHANGE_CANNOT_DB_SYSTEM: strncpy( msg.m_szResultDescription, "DB ½Ã½ºÅÛ ¿À·ù", MaxLen ); break; case RC::RC_GUILD_NAME_CHANGE_CANNOT_DB_SAME_GUILDNAME: strncpy( msg.m_szResultDescription, "µ¿ÀÏ ±æµå¸í Á¸Àç", MaxLen ); break; case RC::RC_GUILD_NAME_CHANGE_CANNOT_DB_BLANK_SPACE: strncpy( msg.m_szResultDescription, "±æµå¸í °ø¹é Æ÷ÇÔ", MaxLen ); break; case RC::RC_GUILD_DISCONNECTED_DBP_SERVER: strncpy( msg.m_szResultDescription, "±æµå ¼­¹ö°¡ DBP¼­¹ö¿Í ¿¬°áµÇ¾î ÀÖÁö ¾Ê´Ù.", MaxLen ); break; default: strncpy( msg.m_szResultDescription, "DB ERROR", MaxLen ); } msg.m_szResultDescription[MaxLen] = '\0'; pOpSession->SendPacket( &msg,sizeof(MSG_MO_RTTG_CHANGE_GUILDNAME_ANS) ); SUNLOG(eCRITICAL_LOG, "[MSG_MO_RTTG_CHANGE_GUILDNAME_ANS] WopsKey[%d] ±æµå¸í º¯°æ °á°ú[%s][%d] ", msg.m_dwWopsKey, msg.m_szResultDescription, pMsgACK->m_byErrorCode ); //RC::RC_GUILD_NOT_EXIST_GUILD; //RC::RC_GUILD_DELCHK_DESTROY_WAIT; //RC_GUILD_DISCONNECTED_DBP_SERVER } //}__NA001254_20090109_RTTG_FUNC_ADD