#include "stdafx.h" #include "Handler_Guild.DbpToGuild.h" #include #include #include #include #include "Services/DominationManager.h" // GUILD #include "Services/Guild/GuildManager.h" #include "Services/Guild/Guild.h" #include "Services/Guild/GuildMember.h" #include "Services/Guild/GuildRelation.h" #include "Services/Guild/GuildSmallContentEntry.h" #include "QueryObjects/DBHandler.h" #include "PacketHandler/Handler_Guild.GuildToDbp.h" #include #ifdef _NA_003923_20120130_GUILD_RENEWAL #include "GuildInGameLog.h" #endif #ifdef _NA_007128_20140326_MONDSCHIEN_DOMINATION #include "DominationInfoParser.h" #endif //_NA_007128_20140326_MONDSCHIEN_DOMINATION //================================================================================================== BOOST_STATIC_ASSERT(RC::RC_GUILD_RESULT_COUNTS <= UCHAR_MAX); //================================================================================================== Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_CREATE_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_CREATE_ACK * pRecvMsg = (MSG_DZ_GUILD_CREATE_ACK *)pMsg; RC::eGUILD_RESULT rc = g_GuildManager.CreateGuild( pRecvMsg->m_GuildGuid, pRecvMsg->m_szGuildName, pRecvMsg->m_byCreateCorpsNum, pRecvMsg->m_MasterCharGuid, pRecvMsg->m_szMasterName, pRecvMsg->m_MasterDuty, pRecvMsg->m_byMasterClass, pRecvMsg->m_MasterLevel, pRecvMsg->m_byChaoState, pRecvMsg->m_nGuildPenaltyTime, pRecvMsg->m_nDestroyRequestTime, pRecvMsg->m_nMasterChangeTime ); if( rc != RC::RC_GUILD_SUCCESS ) { MSG_GZ_GUILD_CREATE_NAK nakMsg; nakMsg.m_dwKey = pRecvMsg->m_dwKey; nakMsg.m_byErrorCode = rc; g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &nakMsg, sizeof(nakMsg)); SUNLOG( eCRITICAL_LOG, "[Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_CREATE_ACK)] ʧ°Ü!!, °ï»áGuid = %u, °ïÖ÷½ÇÉ«Ãû = %s", pRecvMsg->m_GuildGuid, pRecvMsg->m_szMasterName ); return; } MSG_GZ_GUILD_CREATE_ACK amsg; amsg.m_dwKey = pRecvMsg->m_dwKey; g_GuildManager.SerializeGameGuildInfo( pRecvMsg->m_GuildGuid, amsg.m_GameGuildInfo, SERIALIZE_LOAD ); g_GuildManager.GetGuildBaseMemberInfo( pRecvMsg->m_GuildGuid, pRecvMsg->m_MasterCharGuid, amsg.m_BaseMemberInfo ); g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &amsg, sizeof(amsg)); MSG_WZ_GUILD_CREATE_CMD cmsg; g_GuildManager.SerializeBaseGuildInfo( pRecvMsg->m_GuildGuid, cmsg.m_WorldGuildInfo, SERIALIZE_LOAD ); g_GuildManager.GetGuildBaseMemberInfo( pRecvMsg->m_GuildGuid, pRecvMsg->m_MasterCharGuid, cmsg.m_BaseMemberInfo ); g_DBProxyServer.SendToWorldServer(&cmsg, sizeof(cmsg)); #ifdef _NA004034_20120102_GUILD_POINT_SYSTEM g_GuildPointSystem.Create(pRecvMsg->m_GuildGuid); #endif //_NA004034_20120102_GUILD_POINT_SYSTEM } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_DESTROY_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); const MSG_DZ_GUILD_DESTROY_ACK* receive_msg = static_cast(pMsg); #ifdef _USING_GUILD_DESTROY_LOGGING SUNLOG(eCRITICAL_LOG, _T("|±æµåÇØ»ê½Åû|Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_DESTROY_ACK)|MSG_DZ_GUILD_DESTROY_ACK ¹ÞÀ½|GuildGuid:%d, DestroyTime:%u|"), receive_msg->m_GuildGuid, receive_msg->m_dwDestroyTime); #endif // _USING_GUILD_DESTROY_LOGGING GuildSmallContentEntry::GuildPenalty::SetGuildDeleteWaitMap( receive_msg->m_GuildGuid, receive_msg->m_dwDestroyTime); GuildSmallContentEntry::RelationSystem::RemainRelationDestroy(receive_msg->m_GuildGuid); MSG_GZ_GUILD_DESTROY_WAIT_BRD brd_msg; brd_msg.m_dwKey = receive_msg->m_dwKey; brd_msg.m_GuildGuid = receive_msg->m_GuildGuid; #ifdef _USING_GUILD_DESTROY_LOGGING SUNLOG(eCRITICAL_LOG, _T("|±æµåÇØ»ê½Åû|Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_DESTROY_ACK)|MSG_GZ_GUILD_DESTROY_WAIT_BRD º¸³¿|Key:%u, GuildGuid:%d|"), brd_msg.m_dwKey, brd_msg.m_GuildGuid); #endif // _USING_GUILD_DESTROY_LOGGING g_DBProxyServer.SendToSessionType(GAME_SERVER, &brd_msg, sizeof(brd_msg)); MSG_WZ_GUILD_DESTROY_WAIT_CMD cmd_msg; cmd_msg.m_dwKey = receive_msg->m_dwKey; cmd_msg.m_GuildGuid = receive_msg->m_GuildGuid; #ifdef _USING_GUILD_DESTROY_LOGGING SUNLOG(eCRITICAL_LOG, _T("|±æµåÇØ»ê½Åû|Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_DESTROY_ACK)|MSG_WZ_GUILD_DESTROY_WAIT_CMD º¸³¿|Key:%u, GuildGuid:%d|"), cmd_msg.m_dwKey, cmd_msg.m_GuildGuid); #endif // _USING_GUILD_DESTROY_LOGGING g_DBProxyServer.SendToWorldServer(&cmd_msg, sizeof(cmd_msg)); #ifdef _NA004034_20120102_GUILD_POINT_SYSTEM g_GuildPointSystem.Destroy(receive_msg->m_GuildGuid); #endif //_NA004034_20120102_GUILD_POINT_SYSTEM } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_JOIN_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_JOIN_ACK* pRecvMsg = (MSG_DZ_GUILD_JOIN_ACK *)pMsg; // 0,0,0Àº ¾ÆÁ÷ ±æµå¿¡¼­ ÇÊ¿ä ÇÏÁö ¾ÊÀ¸°Å °°¾Æ¼­ Àú·¸°Ô ³Ö¾ú´Ù. // »ç¿ëµÇ´Â ºÎºÐÀ» ã¾Æ¾ß ÇÑ´Ù. RC::eGUILD_RESULT rt = g_GuildManager.JoinGuild( pRecvMsg->m_GuildGuid, pRecvMsg->m_byCorpsNum, pRecvMsg->m_CharGuid, pRecvMsg->m_tszCharName, pRecvMsg->m_Duty, pRecvMsg->m_byClass, pRecvMsg->m_Level, pRecvMsg->m_byChaoState ); if( rt != RC::RC_GUILD_SUCCESS ) { MSG_GZ_GUILD_JOIN_NAK nakMsg; nakMsg.m_dwKey = pRecvMsg->m_dwKey; strncpy(nakMsg.m_szTargetCharName, pRecvMsg->m_tszCharName, _countof(nakMsg.m_szTargetCharName)); nakMsg.m_szTargetCharName[_countof(nakMsg.m_szTargetCharName) - 1] = '\0'; nakMsg.m_byErrorCode = rt; g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &nakMsg, sizeof(nakMsg)); return; } GuildMember* pMember = g_GuildManager.FindGuildMember( pRecvMsg->m_GuildGuid, pRecvMsg->m_CharGuid ); if( !pMember ) return; //°ÔÀÓ¼­¹ö·Î º¸³½´Ù. MSG_GZ_GUILD_JOIN_BRD msg; msg.m_dwKey = pRecvMsg->m_dwKey; msg.m_GuildGuid = pRecvMsg->m_GuildGuid; pMember->SerializeMemberInfo( msg.m_MemberInfo, SERIALIZE_LOAD ); g_DBProxyServer.SendToSessionType(GAME_SERVER, &msg, sizeof(msg)); //¿ùµå¼­¹ö·Î º¸³½´Ù. MSG_WZ_GUILD_JOIN_GUILD_CMD cmsg; cmsg.m_GuildGuid = pRecvMsg->m_GuildGuid; pMember->SerializeBaseMemberInfo( cmsg.m_Info, SERIALIZE_LOAD ); g_DBProxyServer.SendToWorldServer(&cmsg, sizeof(cmsg)); } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_WITHDRAW_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_WITHDRAW_ACK * pRecvMsg = (MSG_DZ_GUILD_WITHDRAW_ACK *)pMsg; TCHAR szCharName[MAX_CHARNAME_LENGTH+1]; g_GuildManager.GetCharName( pRecvMsg->m_GuildGuid, pRecvMsg->m_CharGuid, szCharName, MAX_CHARNAME_LENGTH ); szCharName[MAX_CHARNAME_LENGTH] = '\0'; RC::eGUILD_RESULT rc = g_GuildManager.LeaveGuild( pRecvMsg->m_GuildGuid, pRecvMsg->m_CharGuid ); if( rc != RC::RC_GUILD_SUCCESS ) { SUNLOG( eCRITICAL_LOG, "[Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_WITHDRAW_ACK)] ʧ°Ü, °ï»áGuid = %d, ½ÇÉ«Guid = %d, rc = %d", pRecvMsg->m_GuildGuid, pRecvMsg->m_CharGuid, rc ); return; } MSG_GZ_GUILD_WITHDRAW_BRD msgBRD; msgBRD.m_dwKey = pRecvMsg->m_dwKey; msgBRD.m_GuildGuid = pRecvMsg->m_GuildGuid; msgBRD.m_CharGuid = pRecvMsg->m_CharGuid; strncpy(msgBRD.m_szCharName, szCharName, _countof(msgBRD.m_szCharName)); msgBRD.m_szCharName[_countof(msgBRD.m_szCharName) - 1] = '\0'; msgBRD.m_MemberPenaltyTime = pRecvMsg->m_MemberPenaltyTime; msgBRD.m_byPenaltyType = pRecvMsg->m_byPenaltyType; g_DBProxyServer.SendToSessionType(GAME_SERVER, &msgBRD, sizeof(msgBRD)); // Send To WorldServer MSG_WZ_GUILD_WITHDRAW_GUILD_CMD msgCMD; msgCMD.m_GuildGuid = pRecvMsg->m_GuildGuid; msgCMD.m_CharGuid = pRecvMsg->m_CharGuid; g_DBProxyServer.SendToWorldServer(&msgCMD, sizeof(msgCMD)); #ifdef _NA004034_20120102_GUILD_POINT_SYSTEM ;{ DWORD guid = pRecvMsg->m_GuildGuid; DWORD uuid = pRecvMsg->m_CharGuid; g_GuildPointSystem.Quit(guid, uuid); }; #endif //_NA004034_20120102_GUILD_POINT_SYSTEM } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_SELECT_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_SELECT_ACK* pRecvMsg = (MSG_DZ_GUILD_SELECT_ACK*)pMsg; //·Î±×Àνà SELECT È£ÃâÀ̸é... if( pRecvMsg->m_bySelectType == 1 ) { // ·Î±×Àνà select ack°¡ ¿Ô´Ù´Â °ÍÀº ±æµå ¼­¹ö¿¡ ÇØ´ç ±æµå Á¤º¸°¡ ¾ø´Ù´Â ¶æÀÌ´Ù. ±æµå¼­¹ö¿¡¼­ »õ·Î ¸¸µç´Ù. g_GuildManager.SerializeGuildInfo( pRecvMsg->m_GuildInfo.m_GuildGuid, pRecvMsg->m_GuildInfo, SERIALIZE_STORE ); g_GuildManager.SerializeCorpsInfo( pRecvMsg->m_GuildInfo.m_GuildGuid, pRecvMsg->m_CorpsTotalInfo, SERIALIZE_STORE ); g_GuildManager.SerializeServerMemberTotalInfo( pRecvMsg->m_GuildInfo.m_GuildGuid, pRecvMsg->m_MemberTotalInfo, SERIALIZE_STORE ); g_GuildManager.Login( pRecvMsg->m_GuildInfo.m_GuildGuid, pRecvMsg->m_LoginCharGuid ); g_GuildManager.SetGuildNotice( pRecvMsg->m_GuildInfo.m_GuildGuid, pRecvMsg->m_szGuildNotice ); if (GuildSmallContentEntry::GuildPenalty::IsGuildDestroyWaitState( pRecvMsg->m_GuildInfo.m_GuildGuid)) { return; } MSG_GZ_GUILD_LOGIN_CHAR_BRD brdMsg; brdMsg.m_dwKey = pRecvMsg->m_dwKey; g_GuildManager.SerializeGuildInfo( pRecvMsg->m_GuildInfo.m_GuildGuid, brdMsg.m_GuildInfo, SERIALIZE_LOAD ); g_GuildManager.SerializeCorpsInfo( pRecvMsg->m_GuildInfo.m_GuildGuid, brdMsg.m_CorpsTotalInfo, SERIALIZE_LOAD ); g_GuildManager.GetGuildMemberInfo( pRecvMsg->m_GuildInfo.m_GuildGuid, pRecvMsg->m_LoginCharGuid, brdMsg.m_MemberInfo ); g_DBProxyServer.SendToSessionType(GAME_SERVER, &brdMsg, sizeof(brdMsg)); MSG_WZ_GUILD_LOGIN_CHAR_CMD cmd; g_GuildManager.GetWorldGuildInfo( pRecvMsg->m_GuildInfo.m_GuildGuid, cmd.m_WorldGuildInfo ); g_GuildManager.GetGuildBaseMemberInfo( pRecvMsg->m_GuildInfo.m_GuildGuid, pRecvMsg->m_LoginCharGuid, cmd.m_BaseMemberInfo ); g_DBProxyServer.SendToWorldServer(&cmd, sizeof(cmd)); } else { // NOTE("³Í¹¹³Ä? ¾ÆÁ÷ ·Î±×Àνà »©°ï ¿¹¿Ü »óȲ ¾ø´Ù") SUNLOG(eCRITICAL_LOG, _T("|["__FUNCTION__"]|ÒâÍâ½á¹û (%d), °ï»áGuid=%u|"), pRecvMsg->m_bySelectType, pRecvMsg->m_GuildInfo.m_GuildGuid); } } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_CREATE_NAK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_CREATE_NAK * pRecvMsg = (MSG_DZ_GUILD_CREATE_NAK *)pMsg; MSG_GZ_GUILD_CREATE_NAK msg; msg.m_dwKey = pRecvMsg->m_dwKey; msg.m_byErrorCode = pRecvMsg->m_byErrorCode; g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &msg, sizeof(msg)); } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_DESTROY_NAK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_DESTROY_NAK * pRecvMsg = (MSG_DZ_GUILD_DESTROY_NAK *)pMsg; MSG_GZ_GUILD_DESTROY_NAK msg; msg.m_dwKey = pRecvMsg->m_dwKey; msg.m_byErrorCode = pRecvMsg->m_byErrorCode; g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &msg, sizeof(msg)); } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_JOIN_NAK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_JOIN_NAK * pRecvMsg = (MSG_DZ_GUILD_JOIN_NAK *)pMsg; MSG_GZ_GUILD_JOIN_NAK msg; msg.m_dwKey = pRecvMsg->m_dwKey; msg.m_byErrorCode = pRecvMsg->m_byErrorCode; strncpy(msg.m_szTargetCharName, pRecvMsg->m_tszCharName, _countof(msg.m_szTargetCharName)); msg.m_szTargetCharName[_countof(msg.m_szTargetCharName) - 1] = '\0'; g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &msg, sizeof(msg)); } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_WITHDRAW_NAK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_WITHDRAW_NAK * pRecvMsg = (MSG_DZ_GUILD_WITHDRAW_NAK *)pMsg; } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_SELECT_NAK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); const MSG_DZ_GUILD_SELECT_NAK* recv_msg = static_cast(pMsg); // NOTE: f110627.2L, don't process this acknowledgement SUNLOG(eCRITICAL_LOG, _T("|["__FUNCTION__"]|GuildGuid=%u|"), recv_msg->m_GuildGuid); } // °­Åð °á°ú Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_KICKPLAYER_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_KICKPLAYER_ACK* pRecvMsg = (MSG_DZ_GUILD_KICKPLAYER_ACK*)pMsg; TCHAR szCharName[MAX_CHARNAME_LENGTH+1]; g_GuildManager.GetCharName( pRecvMsg->m_GuildGuid, pRecvMsg->m_TargetCharGuid, szCharName, MAX_CHARNAME_LENGTH ); szCharName[MAX_CHARNAME_LENGTH] = '\0'; RC::eGUILD_RESULT rc = g_GuildManager.KickMember( pRecvMsg->m_GuildGuid, pRecvMsg->m_OperCharGuid, pRecvMsg->m_TargetCharGuid ); if( rc != RC::RC_GUILD_SUCCESS ) { SUNLOG( eCRITICAL_LOG, "[Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_KICKPLAYER_ACK)] ʧ°Ü, °ï»áGuid = %u, ½ÇÉ«Guid = %u, ½á¹û = %d", pRecvMsg->m_GuildGuid, pRecvMsg->m_TargetCharGuid, rc ); return; } MSG_GZ_GUILD_KICKPLAYER_BRD brdACK; brdACK.m_dwKey = pRecvMsg->m_dwKey; brdACK.m_GuildGuid = pRecvMsg->m_GuildGuid; brdACK.m_CharGuid = pRecvMsg->m_TargetCharGuid; strncpy( brdACK.m_ptszCharName, szCharName, MAX_CHARNAME_LENGTH ); brdACK.m_ptszCharName[MAX_CHARNAME_LENGTH]='\0'; brdACK.m_GuildPenaltyTime = pRecvMsg->m_GuildPenaltyTime; brdACK.m_MemberPenaltyTime = pRecvMsg->m_MemberPenaltyTime; g_DBProxyServer.SendToSessionType(GAME_SERVER, &brdACK, sizeof(brdACK)); MSG_WZ_GUILD_KICK_PLAYER_CMD msgCMD; msgCMD.m_GuildGuid = pRecvMsg->m_GuildGuid; msgCMD.m_KickCharGuid = pRecvMsg->m_TargetCharGuid; g_DBProxyServer.SendToWorldServer(&msgCMD, sizeof(msgCMD)); #ifdef _NA004034_20120102_GUILD_POINT_SYSTEM ;{ DWORD guid = pRecvMsg->m_GuildGuid; DWORD uuid = pRecvMsg->m_TargetCharGuid; g_GuildPointSystem.Quit(guid, uuid); }; #endif //_NA004034_20120102_GUILD_POINT_SYSTEM } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_KICKPLAYER_NAK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_KICKPLAYER_NAK* pRecvMsg = (MSG_DZ_GUILD_KICKPLAYER_NAK*)pMsg; } // ±æµå °øÁö º¯°æ Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_CHANGE_NOTICE_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); PACKET_PTR_CONVERT(MSG_DZ_GUILD_CHANGE_NOTICE_ACK, pRecvMsg, pMsg); g_GuildManager.SetGuildNotice( pRecvMsg->m_GuildGuid, pRecvMsg->m_tszGuildNotice ); MSG_WZ_GUILD_CHANGE_NOTICE_CMD msg; msg.m_eNoticeType = eGUILD_NOTICE_GUILD; msg.m_GuildGuid = pRecvMsg->m_GuildGuid; msg.m_wNoticeLen = (WORD)_tcslen(pRecvMsg->m_tszGuildNotice); strncpy(msg.m_szGuildNotice, pRecvMsg->m_tszGuildNotice, MAX_GUILDNOTICE_LENGTH ); msg.m_szGuildNotice[MAX_GUILDNOTICE_LENGTH] = '\0'; g_DBProxyServer.SendToWorldServer(&msg, msg.GetSize()); } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_CHANGE_NOTICE_NAK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); PACKET_PTR_CONVERT(MSG_DZ_GUILD_CHANGE_NOTICE_NAK, pRecvMsg, pMsg); MSG_WZ_GUILD_CHANGE_NOTICE_NAK msg; //msg.m_OperCharGuid = pRecvMsg->m_OperCharGuid; msg.m_byErrorCode = pRecvMsg->m_byErrorCode; g_DBProxyServer.SendToWorldServer(&msg, sizeof(msg)); } //////////////// // ±æµå Æ÷ÀÎÆ® °ü·Ã // UP Àû¸³ Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_DONATE_UP_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_DONATE_UP_ACK *pRecvMsg = (MSG_DZ_GUILD_DONATE_UP_ACK*)pMsg; RC::eGUILD_RESULT rc = g_GuildManager.DonateUP( pRecvMsg->m_GuildGuid, pRecvMsg->m_TotalUP, pRecvMsg->m_OperCharGuid, pRecvMsg->m_DonateUP ); if( rc != RC::RC_GUILD_SUCCESS ) { SUNLOG( eCRITICAL_LOG, "[Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_DONATE_UP_ACK)] Error! GuildGuid = %u, UP = %d", pRecvMsg->m_GuildGuid, pRecvMsg->m_TotalUP ); return; } MSG_GZ_GUILD_DONATE_UP_BRD sendMsg; sendMsg.m_dwKey = pRecvMsg->m_dwKey; sendMsg.m_GuildGuid = pRecvMsg->m_GuildGuid; sendMsg.m_TotalUP = pRecvMsg->m_TotalUP; sendMsg.m_DonateUP = pRecvMsg->m_DonateUP; g_DBProxyServer.SendToSessionType(GAME_SERVER, &sendMsg, sizeof(sendMsg)); } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_DONATE_UP_NAK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_DONATE_UP_NAK *pRecvMsg = (MSG_DZ_GUILD_DONATE_UP_NAK*)pMsg; MSG_GZ_GUILD_DONATE_UP_NAK nakMsg; nakMsg.m_dwKey = pRecvMsg->m_dwKey; nakMsg.m_byErrorCode = pRecvMsg->m_byErrorCode; g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &nakMsg, sizeof(nakMsg)); } // UP->GP º¯È¯ Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_CONVERT_UP2GP_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_CONVERT_UP2GP_ACK *pRecvMsg = (MSG_DZ_GUILD_CONVERT_UP2GP_ACK*)pMsg; g_GuildManager.SetPoint( pRecvMsg->m_GuildGuid, pRecvMsg->m_TotalGP, pRecvMsg->m_RemainUP ); MSG_GZ_GUILD_CONVERT_UP2GP_BRD sendMsg; sendMsg.m_dwKey = pRecvMsg->m_dwKey; sendMsg.m_GuildGuid = pRecvMsg->m_GuildGuid; sendMsg.m_RemainUP = pRecvMsg->m_RemainUP; sendMsg.m_TotalGP = pRecvMsg->m_TotalGP; g_DBProxyServer.SendToSessionType(GAME_SERVER, &sendMsg, sizeof(sendMsg)); } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_CONVERT_UP2GP_NAK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_CONVERT_UP2GP_NAK *pRecvMsg = (MSG_DZ_GUILD_CONVERT_UP2GP_NAK*)pMsg; MSG_GZ_GUILD_CONVERT_UP2GP_NAK nakMsg; nakMsg.m_dwKey = pRecvMsg->m_dwKey; nakMsg.m_byErrorCode = pRecvMsg->m_byErrorCode; g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &nakMsg, sizeof(nakMsg) ); } #ifdef __NA_000000_20070528_TAIWAN_GUILD_PVP Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_CHUNTING_PVP_RESULT_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_CHUNTING_PVP_RESULT_ACK * pRecvMsg = (MSG_DZ_GUILD_CHUNTING_PVP_RESULT_ACK *)pMsg; MSG_GZ_GUILD_CHUNTING_PVP_RESULT_BRD msg; msg.m_dwKey = pRecvMsg->m_dwKey; msg.m_GuildGuid = pRecvMsg->m_GuildGuid; msg.m_PVPInfo = pRecvMsg->m_PVPInfo; g_DBProxyServer.SendToSessionType(GAME_SERVER, &msg, sizeof(msg)); // Send To WorldServer MSG_WZ_GUILD_CHUNTING_PVP_RESULT_CMD cmsg; cmsg.m_GuildGuid = pRecvMsg->m_GuildGuid; cmsg.m_PVPInfo = pRecvMsg->m_PVPInfo; pGuildServer->ConnectSessions.SendToWorld( &cmsg, sizeof(cmsg) ); } #endif //±æµå Á÷Ã¥ ack Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_CHANGE_DUTY_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_CHANGE_DUTY_ACK *pRecvMsg = (MSG_DZ_GUILD_CHANGE_DUTY_ACK *)pMsg; if( !g_GuildManager.ChangeMemberDuty( pRecvMsg->m_GuildGuid, pRecvMsg->m_TargetCharGuid, pRecvMsg->m_eTargetChangeDuty ) ) { //½ÇÆÐÇß´Ù.. NAK´Â º¸³»Áö ¸»°í ½ÇÆÐ ·Î±×´Â ³»ºÎ¿¡¼­ Âï´Â´Ù. return; } //GAME¼­¹ö·Î º¸³½´Ù. MSG_GZ_GUILD_CHANGE_DUTY_BRD gsMSG; gsMSG.m_dwKey = pRecvMsg->m_dwKey; gsMSG.m_GuildGuid = pRecvMsg->m_GuildGuid; g_GuildManager.GetCharName( pRecvMsg->m_GuildGuid, pRecvMsg->m_TargetCharGuid, gsMSG.m_szTargetCharName, MAX_CHARNAME_LENGTH ); gsMSG.m_byDuty = pRecvMsg->m_eTargetChangeDuty; //¸ðµç °ÔÀÓ¼­¹ö°¡ ¸ðµç ±æµå¿øÀÇ Á¤º¸¸¦ ¸ðµÎ °¡Áö°í Àִ°¡? g_DBProxyServer.SendToSessionType(GAME_SERVER, &gsMSG, sizeof(gsMSG)); //¿ùµå¼­¹ö·Î º¸³½´Ù. MSG_WZ_GUILD_CHANGE_DUTY_CMD wsMSG; wsMSG.m_dwKey = pRecvMsg->m_dwKey; wsMSG.m_GuildGuid = pRecvMsg->m_GuildGuid; wsMSG.m_TargetCharGuid = pRecvMsg->m_TargetCharGuid; wsMSG.m_eGuildDuty = pRecvMsg->m_eTargetChangeDuty; g_DBProxyServer.SendToWorldServer(&wsMSG, sizeof(wsMSG)); //Æ®·£Àè¼Ç Á¾·á g_GuildManager.SetGuildTransaction( pRecvMsg->m_GuildGuid, GUILD_TRANS_CHANGE_DUTY_END ); } //±æµå Á÷Ã¥ nak Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_CHANGE_DUTY_NAK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_CHANGE_DUTY_NAK *pRecvMsg = (MSG_DZ_GUILD_CHANGE_DUTY_NAK *)pMsg; MSG_GZ_GUILD_CHANGE_DUTY_NAK nakMsg; nakMsg.m_dwKey = pRecvMsg->m_dwKey; nakMsg.m_byErrorCode = RC::RC_GUILD_CHANGE_MEMBER_DUTY_FAILED; g_DBProxyServer.SendToSessionType(GAME_SERVER, &nakMsg, sizeof(nakMsg)); //Æ®·£Àè¼Ç Á¾·á g_GuildManager.SetGuildTransaction( pRecvMsg->m_GuildGuid, GUILD_TRANS_CHANGE_DUTY_END ); } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_RIGHT_DELEGATION_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_RIGHT_DELEGATION_ACK* pRecvMsg = (MSG_DZ_GUILD_RIGHT_DELEGATION_ACK*)pMsg; g_GuildManager.ChangeDelegateRight( pRecvMsg->m_GuildGuid, pRecvMsg->m_TargetGuid, pRecvMsg->m_DelegateRight ); //À§ÀÓµÈ ±ÇÇÑÀº Áö½ÃÀÚ¿Í ´çÀڻ縸 ¾Ë°í ÀÖÀ¸¸é µÈ´Ù. MSG_GZ_GUILD_RIGHT_DELEGATION_BRD gsMsg; gsMsg.m_dwKey = pRecvMsg->m_dwKey; gsMsg.m_GuildGuid = pRecvMsg->m_GuildGuid; g_GuildManager.GetCharName( pRecvMsg->m_GuildGuid, pRecvMsg->m_TargetGuid, gsMsg.m_szTargetCharName, MAX_CHARNAME_LENGTH ); CopyMemory( gsMsg.m_DelegateRight, pRecvMsg->m_DelegateRight, sizeof(gsMsg.m_DelegateRight) ); g_DBProxyServer.SendToSessionType(GAME_SERVER, &gsMsg, sizeof(gsMsg)); } //±æµå Á÷Ã¥ nak Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_RIGHT_DELEGATION_NAK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_RIGHT_DELEGATION_NAK* pRecvMsg = (MSG_DZ_GUILD_RIGHT_DELEGATION_NAK*)pMsg; MSG_GZ_GUILD_RIGHT_DELEGATION_NAK nakMsg; nakMsg.m_dwKey = pRecvMsg->m_dwKey; nakMsg.m_byErrorCode = RC::RC_GUILD_CHANGE_MEMBER_RIGHT_FAILED; g_DBProxyServer.SendToSessionType(GAME_SERVER, &nakMsg, sizeof(nakMsg)); } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_CHANGE_MASTER_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_CHANGE_MASTER_ACK* pRecvMsg = (MSG_DZ_GUILD_CHANGE_MASTER_ACK*)pMsg; if( !g_GuildManager.ChangeMaster( pRecvMsg->m_GuildGuid, pRecvMsg->m_OldMasterCharGuid, pRecvMsg->m_NewMasterCharGuid, pRecvMsg->m_nMasterChangeTime ) ) { // ¿©±â·Î ¿À¸é ¾ÈµÈ´Ù.. ·Î±×´Â À§ ÇÔ¼ö ¾È¿¡¼­ ³²±ä´Ù. return; } //GAME¼­¹ö·Î º¸³½´Ù. MSG_GZ_GUILD_CHANGE_MASTER_BRD gsMSG; gsMSG.m_dwKey = pRecvMsg->m_dwKey; gsMSG.m_GuildGuid = pRecvMsg->m_GuildGuid; gsMSG.m_OldMasterCharGuid = pRecvMsg->m_OldMasterCharGuid; g_GuildManager.GetCharName( pRecvMsg->m_GuildGuid, pRecvMsg->m_OldMasterCharGuid, gsMSG.m_szOldMasterCharName, MAX_CHARNAME_LENGTH ); gsMSG.m_NewMasterCharGuid = pRecvMsg->m_NewMasterCharGuid; g_GuildManager.GetCharName( pRecvMsg->m_GuildGuid, pRecvMsg->m_NewMasterCharGuid, gsMSG.m_szNewMasterCharName, MAX_CHARNAME_LENGTH ); g_DBProxyServer.SendToSessionType(GAME_SERVER, &gsMSG, sizeof(gsMSG)); //¿ùµå¼­¹ö·Î º¸³½´Ù. MSG_WZ_GUILD_CHANGE_MASTER_CMD wsMSG; wsMSG.m_dwKey = pRecvMsg->m_dwKey; wsMSG.m_GuildGuid = pRecvMsg->m_GuildGuid; wsMSG.m_OldMasterGuid = pRecvMsg->m_OldMasterCharGuid; wsMSG.m_NewMasterGuid = pRecvMsg->m_NewMasterCharGuid; g_DBProxyServer.SendToWorldServer(&wsMSG, sizeof(wsMSG)); } //±æµå Á÷Ã¥ nak Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_CHANGE_MASTER_NAK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_CHANGE_MASTER_NAK* pRecvMsg = (MSG_DZ_GUILD_CHANGE_MASTER_NAK *)pMsg; MSG_GZ_GUILD_CHANGE_MASTER_NAK nakMsg; nakMsg.m_dwKey = pRecvMsg->m_dwKey; nakMsg.m_byErrorCode = pRecvMsg->m_byErrorCode; g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &nakMsg, sizeof(nakMsg)); } // ±æµå ±º´Ü »ý¼º Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_CREATE_CORPS_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_CREATE_CORPS_ACK* pRecvMsg = (MSG_DZ_GUILD_CREATE_CORPS_ACK*)pMsg; //ÇöÀç RC::eGUILD_RESULT rc = g_GuildManager.CreateCorps( pRecvMsg->m_GuildGuid, pRecvMsg->m_byCorpsNum, pRecvMsg->m_TargetCharGuid ); if( rc != RC::RC_GUILD_SUCCESS ) { MSG_GZ_GUILD_CREATE_CORPS_NAK nakMSG; nakMSG.m_dwKey = pRecvMsg->m_dwKey; nakMSG.m_byErrorCode = rc; g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &nakMSG, sizeof(nakMSG)); SUNLOG( eCRITICAL_LOG, "[DZ_GUILD_CREATE_CORPS_ACK] DB³É¹¦µ«GuildServerʧ°Ü, °ï»á = %u, Ö÷Ìå±àºÅ = %d", pRecvMsg->m_GuildGuid, pRecvMsg->m_byCorpsNum ); return; } GuildMember* pCommander = g_GuildManager.FindGuildMember( pRecvMsg->m_GuildGuid, pRecvMsg->m_TargetCharGuid ); if( !pCommander ) return; //GAME¼­¹ö·Î º¸³½´Ù. ==> °ÔÀÓ¼­¹ö¿¡¼­´Â ¹Ù·Î À¯Àú¿¡°Ô Åë°ú½ÃŲ´Ù. MSG_GZ_GUILD_CREATE_CORPS_BRD brdMSG; brdMSG.m_dwKey = pRecvMsg->m_dwKey; brdMSG.m_GuildGuid = pRecvMsg->m_GuildGuid; brdMSG.m_byCorpsNum = pRecvMsg->m_byCorpsNum; strncpy(brdMSG.m_szTargetCharName, pCommander->GetCharName(), _countof(brdMSG.m_szTargetCharName)); brdMSG.m_szTargetCharName[_countof(brdMSG.m_szTargetCharName) - 1] = '\0'; g_DBProxyServer.SendToSessionType(GAME_SERVER, &brdMSG, sizeof(brdMSG)); } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_CREATE_CORPS_NAK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_CREATE_CORPS_NAK* pRecvMsg = (MSG_DZ_GUILD_CREATE_CORPS_NAK*)pMsg; MSG_GZ_GUILD_CREATE_CORPS_NAK nakMSG; nakMSG.m_dwKey = pRecvMsg->m_dwKey; nakMSG.m_byErrorCode = pRecvMsg->m_byErrorCode; g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &nakMSG, sizeof(nakMSG)); } // ±æµå ±º´Ü ÇØ»ê Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_DESTROY_CORPS_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_DESTROY_CORPS_ACK* pRecvMsg = (MSG_DZ_GUILD_DESTROY_CORPS_ACK*)pMsg; //ÇöÀç RC::eGUILD_RESULT rc = g_GuildManager.DestoryCorps( pRecvMsg->m_GuildGuid, pRecvMsg->m_byCorpsNum, pRecvMsg->m_OperCharGuid ); if( rc != RC::RC_GUILD_SUCCESS ) { MSG_GZ_GUILD_DESTROY_CORPS_NAK nakMSG; nakMSG.m_dwKey = pRecvMsg->m_dwKey; nakMSG.m_byErrorCode = rc; g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &nakMSG, sizeof(nakMSG)); SUNLOG( eCRITICAL_LOG, "[DZ_GUILD_DESTROY_CORPS_ACK] DB³É¹¦µ«GuildServerʧ°Ü, °ï»á = %u, Ö÷Ìå±àºÅ = %d", pRecvMsg->m_GuildGuid, pRecvMsg->m_byCorpsNum ); return; } //GAME¼­¹ö·Î º¸³½´Ù. ==> °ÔÀÓ¼­¹ö¿¡´Â º¸³¾ Çʿ䰡 ¾øÀ»°Å °°´Ù. MSG_GZ_GUILD_DESTROY_CORPS_BRD brdMSG; brdMSG.m_dwKey = pRecvMsg->m_dwKey; brdMSG.m_GuildGuid = pRecvMsg->m_GuildGuid; brdMSG.m_byCorpsNum = pRecvMsg->m_byCorpsNum; g_DBProxyServer.SendToSessionType(GAME_SERVER, &brdMSG, sizeof(brdMSG)); } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_DESTROY_CORPS_NAK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_DESTROY_CORPS_NAK* pRecvMsg = (MSG_DZ_GUILD_DESTROY_CORPS_NAK*)pMsg; MSG_GZ_GUILD_DESTROY_CORPS_NAK nakMSG; nakMSG.m_dwKey = pRecvMsg->m_dwKey; nakMSG.m_byErrorCode = pRecvMsg->m_byErrorCode; g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &nakMSG, sizeof(nakMSG)); } // ±æµå ±º´ÜÀå º¯°æ Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_CHANGE_COMMANDER_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_CHANGE_COMMANDER_ACK* pRecvMsg = (MSG_DZ_GUILD_CHANGE_COMMANDER_ACK*)pMsg; RC::eGUILD_RESULT rc = g_GuildManager.ChangeCommander( pRecvMsg->m_GuildGuid, pRecvMsg->m_byCorpsNum, pRecvMsg->m_TargetGuid ); if( rc != RC::RC_GUILD_SUCCESS ) { MSG_GZ_GUILD_CHANGE_COMMANDER_NAK nakMSG; nakMSG.m_dwKey = pRecvMsg->m_dwKey; nakMSG.m_byErrorCode = rc; g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &nakMSG, sizeof(nakMSG)); SUNLOG( eCRITICAL_LOG, "[DZ_GUILD_CHANGE_COMMANDER_ACK] DB³É¹¦µ«GuildServerʧ°Ü, °ï»á = %u, Ö÷Ìå±àºÅ = %d, ½ÇÉ«Guid = %u, rc = %d", pRecvMsg->m_GuildGuid, pRecvMsg->m_byCorpsNum, pRecvMsg->m_TargetGuid, rc ); return; } GuildMember* pMember = g_GuildManager.FindGuildMember( pRecvMsg->m_GuildGuid, pRecvMsg->m_TargetGuid ); if( !pMember ) return; //GAME¼­¹ö·Î º¸³½´Ù. MSG_GZ_GUILD_CHANGE_COMMANDER_BRD brdMSG; brdMSG.m_dwKey = pRecvMsg->m_dwKey; brdMSG.m_GuildGuid = pRecvMsg->m_GuildGuid; brdMSG.m_byCorpsNum = pRecvMsg->m_byCorpsNum; strncpy(brdMSG.m_szTargetCharName, pMember->GetCharName(), _countof(brdMSG.m_szTargetCharName)); brdMSG.m_szTargetCharName[_countof(brdMSG.m_szTargetCharName) - 1] = '\0'; g_DBProxyServer.SendToSessionType(GAME_SERVER, &brdMSG, sizeof(brdMSG)); //¿ùµå¼­¹ö·Î º¸³½´Ù. MSG_WZ_GUILD_CHANGE_COMMANDER_CMD wsMSG; wsMSG.m_dwKey = pRecvMsg->m_dwKey; wsMSG.m_GuildGuid = pRecvMsg->m_GuildGuid; wsMSG.m_byCorpsNum = pRecvMsg->m_byCorpsNum; wsMSG.m_TargetCharGuid = pRecvMsg->m_TargetGuid; g_DBProxyServer.SendToWorldServer(&wsMSG, sizeof(wsMSG)); } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_CHANGE_COMMANDER_NAK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_CHANGE_COMMANDER_NAK* pRecvMsg = (MSG_DZ_GUILD_CHANGE_COMMANDER_NAK*)pMsg; MSG_GZ_GUILD_CHANGE_COMMANDER_NAK nakMSG; nakMSG.m_dwKey = pRecvMsg->m_dwKey; nakMSG.m_byErrorCode = pRecvMsg->m_byErrorCode; g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &nakMSG, sizeof(nakMSG)); } // ±æµå ±º´Ü À̵¿ Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_CHANGE_CORPS_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_CHANGE_CORPS_ACK* pRecvMsg = (MSG_DZ_GUILD_CHANGE_CORPS_ACK*)pMsg; //ÇöÀç RC::eGUILD_RESULT rc = g_GuildManager.ChangeCorps( pRecvMsg->m_GuildGuid, pRecvMsg->m_TargetGuid, pRecvMsg->m_byCorpsNum ); if( rc != RC::RC_GUILD_SUCCESS ) { MSG_GZ_GUILD_CHANGE_CORPS_NAK nakMSG; nakMSG.m_dwKey = pRecvMsg->m_dwKey; nakMSG.m_byErrorCode = rc; g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &nakMSG, sizeof(nakMSG)); SUNLOG( eCRITICAL_LOG, "[DZ_GUILD_CHANGE_CORPS_ACK] DB³É¹¦µ«GuildServerʧ°Ü, °ï»á = %u, Ö÷Ìå±àºÅ = %d", pRecvMsg->m_GuildGuid, pRecvMsg->m_byCorpsNum ); return; } GuildMember* pMember = g_GuildManager.FindGuildMember( pRecvMsg->m_GuildGuid, pRecvMsg->m_TargetGuid ); if( !pMember ) return; //GAME¼­¹ö·Î º¸³½´Ù. MSG_GZ_GUILD_CHANGE_CORPS_BRD brdMSG; brdMSG.m_dwKey = pRecvMsg->m_dwKey; brdMSG.m_GuildGuid = pRecvMsg->m_GuildGuid; brdMSG.m_TargetCharGuid = pRecvMsg->m_TargetGuid; brdMSG.m_byCorpsNum = pRecvMsg->m_byCorpsNum; strncpy(brdMSG.m_szTargetCharName, pMember->GetCharName(), _countof(brdMSG.m_szTargetCharName)); brdMSG.m_szTargetCharName[_countof(brdMSG.m_szTargetCharName) - 1] = '\0'; g_DBProxyServer.SendToSessionType(GAME_SERVER, &brdMSG, sizeof(brdMSG)); //¿ùµå¼­¹ö·Î º¸³½´Ù. MSG_WZ_GUILD_CHANGE_CORPS_CMD wsMSG; wsMSG.m_dwKey = pRecvMsg->m_dwKey; wsMSG.m_GuildGuid = pRecvMsg->m_GuildGuid; wsMSG.m_byCorpsNum = pRecvMsg->m_byCorpsNum; wsMSG.m_TargetCharGuid = pRecvMsg->m_TargetGuid; g_DBProxyServer.SendToWorldServer(&wsMSG, sizeof(wsMSG)); } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_CHANGE_CORPS_NAK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_CHANGE_CORPS_NAK* pRecvMsg = (MSG_DZ_GUILD_CHANGE_CORPS_NAK*)pMsg; MSG_GZ_GUILD_CHANGE_CORPS_NAK nakMSG; nakMSG.m_dwKey = pRecvMsg->m_dwKey; nakMSG.m_byErrorCode = pRecvMsg->m_byErrorCode; g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &nakMSG, sizeof(nakMSG)); } // ±æµå ÈÆ·ÃÄ·ÇÁ »ý¼º Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_CREATE_REAR_CAMP_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_CREATE_REAR_CAMP_ACK* pRecvMsg = (MSG_DZ_GUILD_CREATE_REAR_CAMP_ACK*)pMsg; RC::eGUILD_RESULT rc = g_GuildManager.CreateRearCamp( pRecvMsg->m_GuildGuid, pRecvMsg->m_byCorpsNum, pRecvMsg->m_TargetCharGuid ); if( rc != RC::RC_GUILD_SUCCESS ) { MSG_GZ_GUILD_CREATE_REAR_CAMP_NAK nakMSG; nakMSG.m_dwKey = pRecvMsg->m_dwKey; nakMSG.m_byErrorCode = rc; g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &nakMSG, sizeof(nakMSG)); SUNLOG( eCRITICAL_LOG, "[DZ_GUILD_CREATE_REAR_CAMP_ACK] DB³É¹¦µ«GuildServerʧ°Ü, °ï»á = %u, Ö÷Ìå±àºÅ = %d", pRecvMsg->m_GuildGuid, pRecvMsg->m_byCorpsNum ); return; } GuildMember* pMember = g_GuildManager.FindGuildMember( pRecvMsg->m_GuildGuid, pRecvMsg->m_TargetCharGuid ); if( !pMember ) return; //GAME¼­¹ö·Î º¸³½´Ù. MSG_GZ_GUILD_CREATE_REAR_CAMP_BRD brdMSG; brdMSG.m_dwKey = pRecvMsg->m_dwKey; brdMSG.m_GuildGuid = pRecvMsg->m_GuildGuid; brdMSG.m_byCorpsNum = pRecvMsg->m_byCorpsNum; strncpy(brdMSG.m_szTargetCharName, pMember->GetCharName(), _countof(brdMSG.m_szTargetCharName)); brdMSG.m_szTargetCharName[_countof(brdMSG.m_szTargetCharName) - 1] = '\0'; g_DBProxyServer.SendToSessionType(GAME_SERVER, &brdMSG, sizeof(brdMSG)); //¿ùµå¼­¹ö·Î º¸³½´Ù. MSG_WZ_GUILD_CREATE_REAR_CAMP_CMD wsMSG; wsMSG.m_dwKey = pRecvMsg->m_dwKey; wsMSG.m_GuildGuid = pRecvMsg->m_GuildGuid; wsMSG.m_byCorpsNum = pRecvMsg->m_byCorpsNum; g_DBProxyServer.SendToWorldServer(&wsMSG, sizeof(wsMSG)); } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_CREATE_REAR_CAMP_NAK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_CREATE_REAR_CAMP_NAK* pRecvMsg = (MSG_DZ_GUILD_CREATE_REAR_CAMP_NAK*)pMsg; MSG_GZ_GUILD_CREATE_REAR_CAMP_NAK nakMSG; nakMSG.m_dwKey = pRecvMsg->m_dwKey; nakMSG.m_byErrorCode = pRecvMsg->m_byErrorCode; g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &nakMSG, sizeof(nakMSG)); } // ±æµå ÈÆ·ÃÄ·ÇÁ ÇØ»ê Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_DESTROY_REAR_CAMP_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_DESTROY_REAR_CAMP_ACK* pRecvMsg = (MSG_DZ_GUILD_DESTROY_REAR_CAMP_ACK*)pMsg; RC::eGUILD_RESULT rc = g_GuildManager.DestroyRearCamp( pRecvMsg->m_GuildGuid, pRecvMsg->m_byCorpsNum, pRecvMsg->m_OperCharGuid ); if( rc != RC::RC_GUILD_SUCCESS ) { MSG_GZ_GUILD_DESTROY_REAR_CAMP_NAK nakMSG; nakMSG.m_dwKey = pRecvMsg->m_dwKey; nakMSG.m_byErrorCode = rc; g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &nakMSG, sizeof(nakMSG)); SUNLOG( eCRITICAL_LOG, "[DZ_GUILD_DESTROY_REAR_CAMP_ACK] DB³É¹¦µ«GuildServerʧ°Ü, °ï»á = %u, Ö÷Ìå±àºÅ = %d", pRecvMsg->m_GuildGuid, pRecvMsg->m_byCorpsNum ); return; } //GAME¼­¹ö·Î º¸³½´Ù. MSG_GZ_GUILD_DESTROY_REAR_CAMP_BRD brdMSG; brdMSG.m_dwKey = pRecvMsg->m_dwKey; brdMSG.m_GuildGuid = pRecvMsg->m_GuildGuid; brdMSG.m_byCorpsNum = pRecvMsg->m_byCorpsNum; g_DBProxyServer.SendToSessionType(GAME_SERVER, &brdMSG, sizeof(brdMSG)); //¿ùµå¼­¹ö·Î º¸³½´Ù. MSG_WZ_GUILD_DESTROY_REAR_CAMP_CMD wsMSG; wsMSG.m_dwKey = pRecvMsg->m_dwKey; wsMSG.m_GuildGuid = pRecvMsg->m_GuildGuid; wsMSG.m_byCorpsNum = pRecvMsg->m_byCorpsNum; g_DBProxyServer.SendToWorldServer(&wsMSG, sizeof(wsMSG)); } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_DESTROY_REAR_CAMP_NAK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_DESTROY_REAR_CAMP_NAK* pRecvMsg = (MSG_DZ_GUILD_DESTROY_REAR_CAMP_NAK*)pMsg; MSG_GZ_GUILD_DESTROY_REAR_CAMP_NAK nakMSG; nakMSG.m_dwKey = pRecvMsg->m_dwKey; nakMSG.m_byErrorCode = pRecvMsg->m_byErrorCode; g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &nakMSG, sizeof(nakMSG)); } // ±æµå¸â¹ö ·Î±×¾Æ¿ô Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_LOGOUT_CHAR_CMD) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_LOGOUT_CHAR_CMD* pRecvMsg = (MSG_DZ_GUILD_LOGOUT_CHAR_CMD*)pMsg; //1. ±æµå¼­¹öÀÇ ÇØ´ç À¯ÀúÀÇ Á¤º¸¸¦ ·Î±×¾Æ¿ôÀ¸·Î º¯°æÇÑ´Ù. RC::eGUILD_RESULT rc = g_GuildManager.Logout( pRecvMsg->m_GuildGuid, pRecvMsg->m_CharGuid ); if( rc != RC::RC_GUILD_SUCCESS ) { SUNLOG( eCRITICAL_LOG, "Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_LOGOUT_CHAR_CMD) ʧ°Ü, °ï»áGuid = %u, ½ÇÉ«Guid = %u, rc = %d", pRecvMsg->m_GuildGuid, pRecvMsg->m_CharGuid, rc ); return; } //2. °ÔÀÓ¼­¹ö·Î º¸³½´Ù. MSG_GZ_GUILD_LOGOUT_CHAR_BRD brdMsg; brdMsg.m_GuildGuid = pRecvMsg->m_GuildGuid; brdMsg.m_CharGuid = pRecvMsg->m_CharGuid; g_GuildManager.GetCharName( pRecvMsg->m_GuildGuid, pRecvMsg->m_CharGuid, brdMsg.m_szCharName, MAX_CHARNAME_LENGTH ); g_DBProxyServer.SendToSessionType(GAME_SERVER, &brdMsg, sizeof(brdMsg)); //3. ¿ùµå¼­¹ö·Î º¸³½´Ù. MSG_WZ_GUILD_LOGOUT_CHAR_CMD cmdMsg; cmdMsg.m_GuildGuid = pRecvMsg->m_GuildGuid; cmdMsg.m_CharGuid = pRecvMsg->m_CharGuid; g_DBProxyServer.SendToWorldServer(&cmdMsg, sizeof(cmdMsg)); } // GM¸í·É¾î ±æµåÆ÷ÀÎÆ® Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_GM_GUILD_POINT_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_GM_GUILD_POINT_ACK* pRecvMsg = (MSG_DZ_GUILD_GM_GUILD_POINT_ACK*)pMsg; //1. ±æµå¼­¹öÀÇ ÇØ´ç À¯ÀúÀÇ Á¤º¸¸¦ ·Î±×¾Æ¿ôÀ¸·Î º¯°æÇÑ´Ù. BOOL bRet = g_GuildManager.SetPoint( pRecvMsg->m_GuildGuid, pRecvMsg->m_GP, pRecvMsg->m_UP ); if( !bRet ) { SUNLOG( eCRITICAL_LOG, "Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_GM_GUILD_POINT_ACK) ʧ°Ü, °ï»áGuid = %u, GP = %d, UP = %d", pRecvMsg->m_GuildGuid, pRecvMsg->m_GP, pRecvMsg->m_UP ); return; } //2. °ÔÀÓ¼­¹ö·Î º¸³½´Ù. MSG_GZ_GUILD_GM_GUILD_POINT_BRD brdMsg; brdMsg.m_GuildGuid = pRecvMsg->m_GuildGuid; brdMsg.m_UP = pRecvMsg->m_UP; brdMsg.m_GP = pRecvMsg->m_GP; g_DBProxyServer.SendToSessionType(GAME_SERVER, &brdMsg, sizeof(brdMsg)); } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_GM_GUILD_POINT_NAK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_GM_GUILD_POINT_NAK* pRecvMsg = (MSG_DZ_GUILD_GM_GUILD_POINT_NAK*)pMsg; MSG_GZ_GUILD_GM_GUILD_POINT_NAK nakMsg; nakMsg.m_byErrorCode = pRecvMsg->m_byErrorCode; g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &nakMsg, sizeof(nakMsg) ); } // ±º´Ü Á¤º¸ ¿äû ½ÇÆÐ. Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_SELECT_CORPS_NAK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); const MSG_DZ_GUILD_SELECT_CORPS_NAK* recv_msg = static_cast(pMsg); // NOTE: f110627.2L, don't process this acknowledgement SUNLOG(eCRITICAL_LOG, _T("|["__FUNCTION__"]|°ï»áGuid=%u|"), recv_msg->m_GuildGuid); } #ifdef _NA_003923_20120130_GUILD_RENEWAL Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_RELATION_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); PACKET_PTR_CONVERT(MSG_DZ_GUILD_RELATION_ACK, recv_msg, pMsg); RC::eGUILD_RESULT result_code = RC::RC_GUILD_SUCCESS; if (recv_msg->m_eRelationType == eGUILD_RELATION_CANCEL_BOTH_HOSTILITY) { result_code = GuildSmallContentEntry::RelationSystem::RemoveRelation( recv_msg->m_GuildGuid, recv_msg->m_RelationGuildGuid, recv_msg->m_eRelationType ); } else { result_code = GuildSmallContentEntry::RelationSystem::AddRelation( recv_msg->m_GuildGuid, recv_msg->m_RelationGuildGuid, recv_msg->m_eRelationType, recv_msg->m_RelationApplyTime, recv_msg->m_tszRELGuildName ); } if (result_code == RC::RC_GUILD_SUCCESS) { MSG_GZ_GUILD_RELATION_BRD brd_msg; brd_msg.m_dwKey = recv_msg->m_dwKey; brd_msg.m_eRelationType = recv_msg->m_eRelationType; brd_msg.m_GuildGuid = recv_msg->m_GuildGuid; brd_msg.m_RelationGuildGuid = recv_msg->m_RelationGuildGuid; brd_msg.m_RelationApplyTime = recv_msg->m_RelationApplyTime; brd_msg.m_RelationChangeTime = GuildSmallContentEntry::RelationSystem::CalcRelationChangeTime( recv_msg->m_eRelationType, recv_msg->m_RelationApplyTime ); util::GUILDNAMECOPY(brd_msg.m_tszRelationGuildName, recv_msg->m_tszRELGuildName); Guild* request_guild = g_GuildManager.FindGuild(recv_msg->m_GuildGuid); if (request_guild) { util::GUILDNAMECOPY(brd_msg.m_tszRequestGuildName, request_guild->GetGuildName()); } g_DBProxyServer.SendToSessionType(GAME_SERVER, &brd_msg, sizeof(brd_msg)); } else { SUNLOG( eCRITICAL_LOG, __FUNCTION__" : ²åÈë°ï»á¹ØÏµÐÅϢʧ°Ü : °ï»águid = %d", recv_msg->m_GuildGuid ); } } #else//_NA_003923_20120130_GUILD_RENEWAL Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_RELATION_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); PACKET_PTR_CONVERT(MSG_DZ_GUILD_RELATION_ACK, pRecvMsg, pMsg); if(RC:: RC_GUILD_SUCCESS == GuildSmallContentEntry::RelationSystem::AddRelation( pRecvMsg->m_GuildGuid, pRecvMsg->m_RelationGuildGuid, pRecvMsg->m_eRelationType, pRecvMsg->m_tszRELGuildName)) { MSG_GZ_GUILD_RELATION_BRD msgToGameServer; msgToGameServer.m_dwKey = pRecvMsg->m_dwKey; msgToGameServer.m_eRelationType = pRecvMsg->m_eRelationType; msgToGameServer.m_GuildGuid = pRecvMsg->m_GuildGuid; msgToGameServer.m_RelationGuildGuid = pRecvMsg->m_RelationGuildGuid; util::GUILDNAMECOPY(msgToGameServer.m_tszRelationGuildName, pRecvMsg->m_tszRELGuildName); Guild* pRequestGuild = g_GuildManager.FindGuild(pRecvMsg->m_GuildGuid); if(pRequestGuild) { util::GUILDNAMECOPY(msgToGameServer.m_tszRequestGuildName, pRequestGuild->GetGuildName()); } g_DBProxyServer.SendToSessionType(GAME_SERVER, &msgToGameServer, sizeof(msgToGameServer)); } } #endif//_NA_003923_20120130_GUILD_RENEWAL Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_RELATION_NAK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); PACKET_PTR_CONVERT(MSG_DZ_GUILD_RELATION_NAK, pRecvMsg, pMsg); MSG_GZ_GUILD_RELATION_NAK msg; msg.m_dwKey = pRecvMsg->m_dwKey; msg.m_byErrorCode = pRecvMsg->m_byErrorCode; g_DBProxyServer.SendToSessionType(GAME_SERVER, &msg, sizeof(msg)); } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_RELATION_DELETE_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); PACKET_PTR_CONVERT(MSG_DZ_GUILD_RELATION_DELETE_ACK, pRecvMsg, pMsg); if(RC:: RC_GUILD_SUCCESS == GuildSmallContentEntry::RelationSystem::RemoveRelation( pRecvMsg->m_GuildGuid, pRecvMsg->m_RelGuildGuid, pRecvMsg->m_eType)) { MSG_GZ_GUILD_RELATION_DELETE_BRD msgToGameServer; msgToGameServer.m_dwKey = pRecvMsg->m_dwKey; msgToGameServer.m_eType= pRecvMsg->m_eType; msgToGameServer.m_GuildGuid = pRecvMsg->m_GuildGuid; msgToGameServer.m_RelGuildGuid = pRecvMsg->m_RelGuildGuid; g_DBProxyServer.SendToSessionType(GAME_SERVER, &msgToGameServer, sizeof(msgToGameServer)); } } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_RELATION_DELETE_NAK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); PACKET_PTR_CONVERT(MSG_DZ_GUILD_RELATION_DELETE_NAK , pRecvMsg, pMsg); MSG_GZ_GUILD_RELATION_DELETE_NAK msg; msg.m_dwKey = pRecvMsg->m_dwKey; msg.m_eType = pRecvMsg->m_eType; msg.m_GuildGuid = pRecvMsg->m_GuildGuid; msg.m_RelGuildGuid = pRecvMsg->m_RelGuildGuid; msg.m_byErrorCode = pRecvMsg->m_byErrorCode; g_DBProxyServer.SendToSessionType(GAME_SERVER, &msg, sizeof(msg)); } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_RELATION_BOTH_AGAINST_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); PACKET_PTR_CONVERT(MSG_DZ_GUILD_RELATION_BOTH_AGAINST_ACK, pRecvMsg, pMsg); #ifdef _NA_003923_20120130_GUILD_RENEWAL if(GuildSmallContentEntry::RelationSystem::AddRelation( pRecvMsg->m_GuildGuid, pRecvMsg->m_RelGuildGuid, pRecvMsg->m_eRelType, pRecvMsg->m_RelationApplyTime ) == RC:: RC_GUILD_SUCCESS) { MSG_GZ_GUILD_RELATION_BOTH_AGAINST_BRD msgToGameServer; msgToGameServer.m_dwKey = pRecvMsg->m_dwKey; msgToGameServer.m_GuildGuid = pRecvMsg->m_GuildGuid; msgToGameServer.m_RelGuildGuid = pRecvMsg->m_RelGuildGuid; msgToGameServer.m_RelationApplyTime = pRecvMsg->m_RelationApplyTime; msgToGameServer.m_RelationChangeTime = GuildSmallContentEntry::RelationSystem::CalcRelationChangeTime( pRecvMsg->m_eRelType, pRecvMsg->m_RelationApplyTime ); g_DBProxyServer.SendToSessionType(GAME_SERVER, &msgToGameServer, sizeof(msgToGameServer)); } #else if(RC:: RC_GUILD_SUCCESS == GuildSmallContentEntry::RelationSystem::AddRelation( pRecvMsg->m_GuildGuid, pRecvMsg->m_RelGuildGuid, pRecvMsg->m_eRelType)) { MSG_GZ_GUILD_RELATION_BOTH_AGAINST_BRD msgToGameServer; msgToGameServer.m_dwKey = pRecvMsg->m_dwKey; msgToGameServer.m_GuildGuid = pRecvMsg->m_GuildGuid; msgToGameServer.m_RelGuildGuid = pRecvMsg->m_RelGuildGuid; g_DBProxyServer.SendToSessionType(GAME_SERVER, &msgToGameServer, sizeof(msgToGameServer)); } #endif } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_RELATION_BOTH_AGAINST_NAK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); PACKET_PTR_CONVERT(MSG_DZ_GUILD_RELATION_BOTH_AGAINST_NAK, pRecvMsg, pMsg); MSG_GZ_GUILD_RELATION_BOTH_AGAINST_NAK msg; msg.m_dwKey = pRecvMsg->m_dwKey; msg.m_GuildGuid = pRecvMsg->m_GuildGuid; msg.m_RelGuildGuid = pRecvMsg->m_RelGuildGuid; msg.m_byErrorCode = pRecvMsg->m_byErrorCode; g_DBProxyServer.SendToSessionType(GAME_SERVER, &msg, sizeof(msg)); } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_RELATION_INFO_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); PACKET_PTR_CONVERT(MSG_DZ_GUILD_RELATION_INFO_ACK, pRecvMsg, pMsg); GuildSmallContentEntry::RelationSystem::SaveRelationInfo(&pRecvMsg ->m_AddInfo); MSG_GZ_GUILD_RELATION_INFO_BRD SendToGameServer; SendToGameServer.m_dwKey = pRecvMsg->m_dwKey; SendToGameServer.m_AddInfo.m_GuildGuid = pRecvMsg->m_AddInfo.m_GuildGuid; SendToGameServer.m_byRelCnt = pRecvMsg->m_AddInfo.m_byRelationGuildCnt; GuildSmallContentEntry::RelationSystem::LoadRelationInfo(&SendToGameServer.m_AddInfo); g_DBProxyServer.SendToSessionType(GAME_SERVER, &SendToGameServer, SendToGameServer.GetSize()); } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_RELATION_INFO_NAK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); PACKET_PTR_CONVERT(MSG_DZ_GUILD_RELATION_INFO_NAK, pRecvMsg, pMsg); MSG_DZ_GUILD_RELATION_INFO_NAK msg; msg.m_dwKey = pRecvMsg->m_dwKey; msg.m_GuildGuid = pRecvMsg->m_GuildGuid; msg.m_byErrorCode = pRecvMsg->m_byErrorCode; g_DBProxyServer.SendToSessionType(GAME_SERVER, &msg, sizeof(msg)); } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_RECOVERY_GUILD_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_RECOVERY_GUILD_ACK *pRecvMsg = static_cast(pMsg); if(!GuildSmallContentEntry::GuildPenalty::GuildRecovery( pRecvMsg->m_CharGuid, pRecvMsg->m_GuildGuid)) return; //TODO : ·Î±×¸¦ ³²±âÀÚ. MSG_GZ_GUILD_RECOVERY_GUILD_BRD msgBRD; msgBRD.m_dwKey = pRecvMsg->m_dwKey; msgBRD.m_GuildGuid = pRecvMsg->m_GuildGuid; g_DBProxyServer.SendToSessionType(GAME_SERVER, &msgBRD, sizeof(msgBRD)); MSG_WZ_GUILD_RECOVERY_GUILD_CMD msgCMD; msgCMD.m_dwKey = pRecvMsg->m_dwKey; msgCMD.m_GuildGuid = pRecvMsg->m_GuildGuid; g_DBProxyServer.SendToWorldServer(&msgCMD, sizeof(msgCMD)); } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_RECOVERY_GUILD_NAK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_RECOVERY_GUILD_NAK *pRecvMsg = static_cast(pMsg); MSG_GZ_GUILD_RECOVERY_GUILD_NAK msg; msg.m_dwKey = pRecvMsg->m_dwKey; msg.m_CharGuid = pRecvMsg->m_CharGuid; msg.m_byErrorCode = RC::RC_GUILD_RECOVERY_FAILED; g_DBProxyServer.SendToSessionType(GAME_SERVER, &msg, sizeof(msg)); } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_DESTROY_COMPLETE_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_DESTROY_COMPLETE_ACK* receive_msg = static_cast(pMsg); #ifdef _USING_GUILD_DESTROY_LOGGING SUNLOG(eCRITICAL_LOG, _T("|±æµåÇØ»ê¿Ï·á|Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_DESTROY_COMPLETE_ACK)|MSG_DZ_GUILD_DESTROY_COMPLETE_ACK ¹ÞÀ½|GuildGuid:%d, MasterCharGuid:%d|"), receive_msg->m_GuildGuid, receive_msg->m_MasterCharGuid); #endif // _USING_GUILD_DESTROY_LOGGING g_GuildManager.DestroyGuild(receive_msg->m_GuildGuid); MSG_GZ_GUILD_DESTROY_BRD brd_msg; //(shogen)(20090819) //brd_msg.m_dwKey = receive_msg->m_dwKey; brd_msg.m_dwKey = receive_msg->m_MasterCharGuid; brd_msg.m_GuildGuid = receive_msg->m_GuildGuid; #ifdef _USING_GUILD_DESTROY_LOGGING SUNLOG(eCRITICAL_LOG, _T("|±æµåÇØ»ê¿Ï·á|Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_DESTROY_COMPLETE_ACK)|MSG_GZ_GUILD_DESTROY_BRD º¸³¿|GuildGuid:%d, MasterCharGuid:%u|"), brd_msg.m_GuildGuid, brd_msg.m_dwKey); #endif // _USING_GUILD_DESTROY_LOGGING g_DBProxyServer.SendToSessionType(GAME_SERVER, &brd_msg, sizeof(brd_msg)); // Send To WorldServer MSG_WZ_GUILD_DESTROY_GUILD_CMD cmd_msg; cmd_msg.m_GuildGuid = receive_msg->m_GuildGuid; #ifdef _USING_GUILD_DESTROY_LOGGING SUNLOG(eCRITICAL_LOG, _T("|±æµåÇØ»ê¿Ï·á|Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_DESTROY_COMPLETE_ACK)|MSG_WZ_GUILD_DESTROY_GUILD_CMD º¸³¿|GuildGuid:%d|"), cmd_msg.m_GuildGuid); #endif // _USING_GUILD_DESTROY_LOGGING g_DBProxyServer.SendToWorldServer(&cmd_msg, sizeof(cmd_msg)); } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_DESTROY_COMPLETE_NAK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_DESTROY_COMPLETE_NAK* pRecvMsg = static_cast(pMsg); MSG_GZ_GUILD_DESTROY_NAK msg; msg.m_dwKey = pRecvMsg->m_dwKey; msg.m_byErrorCode = pRecvMsg->m_byErrorCode; g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &msg, sizeof(msg)); } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_GUILDMARK_REGISTER_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_GUILDMARK_REGISTER_ACK *pRecvMsg = static_cast(pMsg); /* ¼­¹ö ¸¶Å© µî·Ï */ GuildSmallContentEntry::GuildMark::GuildMarkInfo info; info.guild_Index = pRecvMsg->m_GuildIndex; info.pattern_index = pRecvMsg->m_PatternIndex; info.background_index = pRecvMsg->m_BackGroundIndex; GuildSmallContentEntry::GuildMark::RegisterMark(info); MSG_GZ_GUILD_GUILDMARK_REGISTER_BRD msgToGameServer; msgToGameServer.m_dwKey = pRecvMsg->m_dwKey; msgToGameServer.m_SlotIdx = pRecvMsg->m_SlotIdx; msgToGameServer.m_SlotPos = pRecvMsg->m_SlotPos; msgToGameServer.m_GuildIndex = pRecvMsg->m_GuildIndex; msgToGameServer.m_PatternIndex = pRecvMsg->m_PatternIndex; msgToGameServer.m_BackGroundIndex = pRecvMsg->m_BackGroundIndex; g_DBProxyServer.SendToSessionType(GAME_SERVER, &msgToGameServer, sizeof(msgToGameServer) ); MSG_WZ_GUILD_GUILDMARK_REGISTER_CMD msgToWorld; msgToWorld.m_GuildGuid = pRecvMsg->m_GuildIndex; msgToWorld.m_PatternIndex = pRecvMsg->m_PatternIndex; msgToWorld.m_BackGroundIndex = pRecvMsg->m_BackGroundIndex; g_DBProxyServer.SendToWorldServer(&msgToWorld, sizeof(msgToWorld) ); } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_GUILDMARK_REGISTER_NAK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_GUILDMARK_REGISTER_NAK *pRecvMsg = static_cast(pMsg); MSG_GZ_GUILD_GUILDMARK_REGISTER_NAK msg; msg.m_dwKey = pRecvMsg->m_dwKey; msg.m_Result = pRecvMsg->m_Result; g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &msg, sizeof(msg)); } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_GUILDMARK_DELETE_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_GUILDMARK_DELETE_ACK *pRecvMsg = static_cast(pMsg); /* ¼­¹ö ¸¶Å© »èÁ¦ */ GuildSmallContentEntry::GuildMark::GuildMarkInfo info; info.guild_Index = pRecvMsg->m_GuildIndex; info.pattern_index = pRecvMsg->m_PatternIndex; info.background_index = pRecvMsg->m_BackGroundIndex; GuildSmallContentEntry::GuildMark::DeleteMark(info); MSG_GZ_GUILD_GUILDMARK_DELETE_BRD msgToGameServer; msgToGameServer.m_dwKey = pRecvMsg->m_dwKey; msgToGameServer.m_GuildIndex = pRecvMsg->m_GuildIndex; msgToGameServer.m_PatternIndex = pRecvMsg->m_PatternIndex; msgToGameServer.m_BackGroundIndex = pRecvMsg->m_BackGroundIndex; g_DBProxyServer.SendToSessionType(GAME_SERVER, &msgToGameServer, sizeof(msgToGameServer) ); MSG_WZ_GUILD_GUILDMARK_DELETE_CMD msgToWorld; msgToWorld.m_dwKey = pRecvMsg->m_dwKey; msgToWorld.m_GuildGuid = pRecvMsg->m_GuildIndex; msgToWorld.m_PatternIndex = pRecvMsg->m_PatternIndex; msgToWorld.m_BackGroundIndex = pRecvMsg->m_BackGroundIndex; g_DBProxyServer.SendToWorldServer(&msgToWorld, sizeof(msgToWorld)); } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_GUILDMARK_DELETE_NAK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); PACKET_PTR_CONVERT(MSG_DZ_GUILD_GUILDMARK_DELETE_NAK , pRecvMsg, pMsg); MSG_GZ_GUILD_GUILDMARK_DELETE_NAK msg; msg.m_dwKey = pRecvMsg->m_dwKey; msg.m_Result = pRecvMsg->m_Result; g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &msg, sizeof(msg)); } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_WAREHOUSE_OPEN_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); PACKET_PTR_CONVERT(MSG_DZ_GUILD_WAREHOUSE_OPEN_ACK, pRecvMsg, pMsg); // (f100527.3L) if (sizeof(*pRecvMsg) < static_cast(pRecvMsg->GetSize())) { SUNLOG(eCRITICAL_LOG, _T("[%s]|±ØÐëÖµ='<=%d'|É趨ֵ=%u|ÐÅÏ¢=½ÓÊÕµ½Ë𻵵ÄÊý¾Ý°ü|"), __FUNCTION__, sizeof(*pRecvMsg), pRecvMsg->GetSize()); return; } GUILDGUID GuildGuid = pRecvMsg->m_GuildGuid; CHARGUID OperCharGuid = pRecvMsg->m_OperCharGuid; MONEY WarehouseMoney = pRecvMsg->m_WarehouseMoney; BYTE SlotTabNum = pRecvMsg->m_SlotTabNum; bool IsRight = g_GuildManager.CheckRight(GuildGuid, OperCharGuid, eGUILD_RIGHTS_WAREHOUSE_OUT); // (f100527.3L) const int guild_warehouse_stream_size = pRecvMsg->m_ItemInfo.GetSize(); //int size = sizeof(_GUILDWAREHOUSE_TOTAL_INFO) - // (_GUILDWAREHOUSE_TOTAL_INFO::MAX_SLOT_NUM - pRecvMsg->m_ItemInfo.m_Count) * // sizeof(_GUILDWAREHOUSE_TOTAL_INFO::SLOT_TYPE); MSG_GZ_GUILD_WAREHOUSE_OPEN_BRD msgToGameServer; if (guild_warehouse_stream_size == 0) { //compile debug util::AssertCompileTimeVariableTypeEqual(msgToGameServer.m_ItemInfo, pRecvMsg->m_ItemInfo); } msgToGameServer.m_dwKey = pRecvMsg->m_dwKey; msgToGameServer.m_GuildGuid = GuildGuid; msgToGameServer.m_WarehouseRight = IsRight; msgToGameServer.m_SlotTabNum = SlotTabNum; msgToGameServer.m_OperCharGuid = OperCharGuid; msgToGameServer.m_WarehouseMoney = WarehouseMoney; CopyMemory(&msgToGameServer.m_ItemInfo, &pRecvMsg->m_ItemInfo, guild_warehouse_stream_size); g_DBProxyServer.SendToSessionType(GAME_SERVER, &msgToGameServer, msgToGameServer.GetSize()); //pGuildServer->SendToSession(pRecvMsg->m_dwSessionIndex, &msgToGameServer, msgToGameServer.GetSize()); //MSG_WZ_GUILD_WAREHOUSE_OPEN_CMD msgToWorld; //msgToWorld.m_GuildGuid = GuildGuid; //msgToWorld.m_OpenUserKey = OperCharGuid; //pGuildServer->ConnectSessions.SendToWorld(&msgToWorld, sizeof(msgToWorld)); } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_WAREHOUSE_OPEN_NAK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); PACKET_PTR_CONVERT(MSG_DZ_GUILD_WAREHOUSE_OPEN_NAK, pRecvMsg, pMsg); MSG_GZ_GUILD_WAREHOUSE_OPEN_NAK msg; msg.m_dwKey = pRecvMsg->m_dwKey; msg.m_GuildGuid = pRecvMsg->m_GuildGuid; msg.m_bErrorCode = pRecvMsg->m_byErrorCode; g_DBProxyServer.SendToSessionType(GAME_SERVER, &msg, sizeof(msg)); //pGuildServer->SendToSession(pRecvMsg->m_dwSessionIndex, &msg, sizeof(msg)); //pGuildServer->SendToSession() } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_NAME_CHANGE_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_NAME_CHANGE_ACK* pRecvMsg = (MSG_DZ_GUILD_NAME_CHANGE_ACK*)pMsg; GUILDGUID GuildGuid = pRecvMsg->m_GuildGuid; //{__NA001254_20090109_RTTG_FUNC_ADD if( pRecvMsg->m_TargetPos == INVALID_POSTYPE_VALUE && pRecvMsg->m_OperCharGuid == 0 )//INVALID_CHARGUID ) { // RTTG¸í·ÉÀÌ ¼º°ø ÇßÀ½À» ¾Ë¸°´Ù. MSG_MZ_GUILD_NAME_CHANGE_ACK msg; msg.m_dwKey = pRecvMsg->m_dwKey; g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &msg, sizeof(msg)); } //} if( pRecvMsg->m_TargetPos != INVALID_POSTYPE_VALUE && pRecvMsg->m_OperCharGuid != 0 )// INVALID_CHARGUID ) { Guild* pGuild = g_GuildManager.FindGuild(GuildGuid); const TCHAR* guild_name = (pGuild != NULL ? pGuild->GetGuildName() : "[Unknown]"); // ¾ÆÀÌÅÛ »ç¿ëÀÌ ¼º°ø ÇßÀ½À» ¾Ë¸°´Ù. MSG_GZ_GUILD_NAME_CHANGE_ACK msg; // NOTE: f110523.5L, if the object of 'm_dwSessionIndex' is MasterServer, // 'm_dwKey' is the wops key. msg.m_dwKey = pRecvMsg->m_dwKey; msg.m_TargetPos = pRecvMsg->m_TargetPos; //_NA_0_20100901_GUILD_NAME_CHANGE_ITEM_LOG util::GUILDNAMECOPY(msg.m_tszCurrentGuildName, guild_name); util::GUILDNAMECOPY(msg.m_tszchangeGuildName, pRecvMsg->m_tszGuildName); g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &msg, sizeof(msg)); } // ÇöÀç ±æµå ¼­¹öÀÇ ±æµå¸íÀ» ¹Ù²Û´Ù. g_GuildManager.ChangeGuildName(GuildGuid, pRecvMsg->m_tszGuildName); // ¿¬°áµÈ ¸ðµç °ÔÀÓ ¼­¹ö¿¡ ±æµå¸íÀÌ ¹Ù²î¾úÀ½À» ¾Ë¸°´Ù. MSG_GZ_GUILD_NAME_CHANGE_BRD msgBRD; msgBRD.m_GuildGuid = GuildGuid; util::GUILDNAMECOPY(msgBRD.m_tszGuildName, pRecvMsg->m_tszGuildName); g_DBProxyServer.SendToSessionType(GAME_SERVER, &msgBRD, sizeof(msgBRD)); //¿ùµå ¼­¹ö¿¡ º¯°æÀ» ¾Ë¸°´Ù. MSG_WZ_GUILD_NAME_CHANGE_CMD Wmsg; Wmsg.m_GuildGuid = GuildGuid; util::GUILDNAMECOPY(Wmsg.m_tszGuildName, pRecvMsg->m_tszGuildName); g_DBProxyServer.SendToWorldServer(&Wmsg, sizeof(Wmsg)); } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_NAME_CHANGE_NAK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_NAME_CHANGE_NAK* pRecvMsg = (MSG_DZ_GUILD_NAME_CHANGE_NAK*)pMsg; //{__NA001254_20090109_RTTG_FUNC_ADD if( pRecvMsg->m_TargetPos == INVALID_POSTYPE_VALUE && pRecvMsg->m_OperCharGuid == 0 )//INVALID_CHARGUID ) { MSG_MZ_GUILD_NAME_CHANGE_NAK msg; msg.m_dwKey = pRecvMsg->m_dwKey; msg.m_byErrorCode = pRecvMsg->m_byErrorCode; g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &msg, sizeof(msg)); return; } //} MSG_GZ_GUILD_NAME_CHANGE_NAK msg; msg.m_dwKey = pRecvMsg->m_dwKey; msg.m_TargetPos = pRecvMsg->m_TargetPos; msg.m_byErrorCode = pRecvMsg->m_byErrorCode; g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &msg, sizeof(msg)); } /************************************************************************/ /* Áö¿ª Á¡·ÉÀü ½Ã½ºÅÛ ÀÛ¾÷ */ /************************************************************************/ Handler_Guild_DbpToGuild_IMPL(DZ_DOMINATION_INFO_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); const MSG_DZ_DOMINATION_INFO_ACK* recv_msg = static_cast(pMsg); if (recv_msg->m_RsultCode == RC::DOMINATION_RESULT_FAIL) { SUNLOG( eCRITICAL_LOG, _T("|%s|[ͳÖÎ] ÇøÓòÐÅÏ¢ÇëÇóʧ°Ü.|ÇëÇó½á¹û = %d|"), __FUNCTION__, recv_msg->m_RsultCode ); return; } const int number_of_records = recv_msg->m_NumRecords; if (number_of_records > _countof(recv_msg->m_DominationInfo)) { SUNLOG( eCRITICAL_LOG, _T("|%s|[ͳÖÎ] ÇøÓòÊýÒç³ö.|ÇøÓòÊýÁ¿ = %d, ×î´óÖµ = %d|"), __FUNCTION__, number_of_records, _countof(recv_msg->m_DominationInfo) ); return; } // ÀÌÀü Á¤º¸¸¦ ¸ÕÀú ÃʱâÈ­ÇÏ°í »ðÀÔÇÑ´Ù. DominationManager* const domination_manager = DominationManager::Instance(); domination_manager->ClearAreaInfos(); for (int i = 0; i < number_of_records; ++i) { const DOMINATION_INFO& curInfo = recv_msg->m_DominationInfo[i]; domination_manager->InsertAreaInfo(curInfo); } //load success domination_manager->SetCompleteLoadAreaInfo(); SUNLOG( eCRITICAL_LOG, _T("|%s|[ͳÖÎ] ÇøÓòÐÅÏ¢¼ÓÔØ³É¹¦.|ÇøÓòÊýÁ¿ = %d|"), __FUNCTION__, number_of_records ); } #ifdef _CH_20100420_CHANGE_DOMINATION_APPLY_WAY Handler_Guild_DbpToGuild_IMPL(DZ_DOMINATION_AUCTION_INFO_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); const MSG_DZ_DOMINATION_AUCTION_INFO_ACK* recv_msg = static_cast(pMsg); if (recv_msg->m_RsultCode == RC::DOMINATION_RESULT_FAIL) { SUNLOG( eCRITICAL_LOG, _T("|%s|[ͳÖÎ] ÅÄÂôÐÅÏ¢ÇëÇóʧ°Ü.|µØÍ¼´úÂë = %d, ÇëÇó½á¹û = %d|"), __FUNCTION__, recv_msg->m_MapCode, recv_msg->m_RsultCode ); return; } //Àü´ÞµÈ µ¥ÀÌÅÍÀÇ ·¹ÄÚµå¼ö ¸¸Å­ÀÇ µ¥ÀÌÅ͸¦ ÀúÀåÇÑ´Ù. const BYTE data_count = recv_msg->m_DataCount; if (data_count > _countof(recv_msg->m_DominationActionDBInfo)) { SUNLOG( eCRITICAL_LOG, _T("|%s|[ͳÖÎ] ÅÄÂôÊýÁ¿¹ý¶à.|µØÍ¼´úÂë = %d, ÅÄÂô´ÎÊý = %d, ×î´óÖµ = %d|"), __FUNCTION__, recv_msg->m_MapCode, data_count, _countof(recv_msg->m_DominationActionDBInfo) ); return; } // ÀÌÀü Á¤º¸¸¦ ¸ÕÀú ÃʱâÈ­ÇÏ°í »ðÀÔÇÑ´Ù. DominationManager* const domination_manager = DominationManager::Instance(); domination_manager->ClearAuctions(recv_msg->m_MapCode); for (int i = 0; i < data_count; ++i) { const DominationAuctionInfo& info = recv_msg->m_DominationActionDBInfo[i]; domination_manager->InsertAuction(info.m_ActionInfo.m_FieldCode, info); } domination_manager->SetCompleteLoadAuctions(recv_msg->m_MapCode); SUNLOG( eCRITICAL_LOG, _T("|%s|[ͳÖÎ] ÅÄÂôÐÅÏ¢¼ÓÔØ³É¹¦.|µØÍ¼´úÂë = %d, ÅÄÂô´ÎÊý = %d|"), __FUNCTION__, recv_msg->m_MapCode, data_count ); } #else//_CH_20100420_CHANGE_DOMINATION_APPLY_WAY Handler_Guild_DbpToGuild_IMPL(DZ_DOMINATION_AUCTION_INFO_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); const MSG_DZ_DOMINATION_AUCTION_INFO_ACK* pRecvMsg = static_cast(pMsg); if( pRecvMsg->m_RsultCode == RC::DOMINATION_RESULT_FAIL ) { SUNLOG( eCRITICAL_LOG, _T("|%s|[ͳÖÎ] Auction info request is fail.|map code = %d, result code = %d|"), __FUNCTION__, pRecvMsg->m_MapCode, pRecvMsg->m_RsultCode ); return; } //Àü´ÞµÈ µ¥ÀÌÅÍÀÇ ·¹ÄÚµå¼ö ¸¸Å­ÀÇ µ¥ÀÌÅ͸¦ ÀúÀåÇÑ´Ù. const BYTE number_of_data = pRecvMsg->NumRecords; if (number_of_data > _countof(pRecvMsg->m_DominationActionDBInfo)) { //Àý´ÞµÈ ÆÐŶ ³»¿ëÀÌ ÃÖ´ë °æ¸Å ¸®½ºÆ® °¹¼ö¸¦ ³Ñ°Ô µÈ´Ù¸é ½ÇÆÐ SUNLOG( eCRITICAL_LOG, _T("|%s|[ͳÖÎ] Number of auction is overflow.|map code = %d, number of auction = %d, max = %d|"), __FUNCTION__, pRecvMsg->m_MapCode, number_of_data, _countof(recv_msg->m_DominationActionDBInfo) ); return; } MAPCODE mapCode = pRecvMsg->m_MapCode; // ÀÌÀü Á¤º¸¸¦ ¸ÕÀú ÃʱâÈ­ÇÏ°í »ðÀÔÇÑ´Ù. DominationManager* const domination_manager = DominationManager::Instance(); domination_manager->ClearAuctions(mapCode); for (int i = 0; i < number_of_data; ++i) { const DominationAuctionInfo& CurInfo = pRecvMsg->m_DominationActionDBInfo[i]; domination_manager->InsertAuction(CurInfo.m_ActionInfo.m_FieldCode, CurInfo); } domination_manager->SetCompleteLoadAuctions(mapCode); SUNLOG( eCRITICAL_LOG, _T("|%s|[ͳÖÎ] Auction info load success.|map code = %d, number of auction = %d|"), __FUNCTION__, pRecvMsg->m_MapCode, number_of_data ); } #endif//_CH_20100420_CHANGE_DOMINATION_APPLY_WAY //_KR_001385_20091105_DOMINATION_UPDATEDOMINATIONINFO Handler_Guild_DbpToGuild_IMPL(DZ_DOMINATION_UPDATE_INFO_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); const MSG_DZ_DOMINATION_UPDATE_INFO_ACK* pRecvMsg = static_cast(pMsg); MSG_GZ_DOMINATION_UPDATE_INFO_ACK sendMsg; if( pRecvMsg->m_RsultCode == RC::DOMINATION_RESULT_FAIL ) { sendMsg.m_ResultCode = pRecvMsg->m_RsultCode; sendMsg.m_DominationInfo = pRecvMsg->m_DominationInfo; g_DBProxyServer.SendToSessionType(GAME_SERVER, &sendMsg, sizeof(sendMsg)); SUNLOG( eCRITICAL_LOG, "["__FUNCTION__"]Êý¾Ý¸üнá¹ûʧ°Ü" ); return; } #ifdef _NA_003923_20120130_GUILD_RENEWAL DominationManager::Instance()->DominationInGameGuildLog( pRecvMsg->m_DominationInfo, pRecvMsg->m_eSetType ); #endif const DOMINATION_INFO& dominationInfo = pRecvMsg->m_DominationInfo; DOMINATION_INFO* pInfo = DominationManager::Instance()->FindDominationInfo( pRecvMsg->m_DominationInfo.m_FieldCode ); if( pInfo ) { switch ( pRecvMsg->m_eSetType ) { case DOMINATION_DEFFENSEWALL_SET: case DOMINATION_INIT: case DOMINATION_INFO_SET: (*pInfo) = pRecvMsg->m_DominationInfo; break; case DOMINATION_SUCCESS_DEFENCE: pInfo->m_disGuildInfo.m_GuildGuid = 0; break; case DOMINATION_SUCCESS_OFFENCE: pInfo->m_inGuildInfo = pRecvMsg->m_DominationInfo.m_disGuildInfo; pInfo->m_disGuildInfo.m_GuildGuid = 0; break; case DOMINATION_DISGUILD_SET: //ÇöÀç °æ¸Å Á¤º¸¿¡¼­ °ø°Ý±æµå·Î ¼±Á¤µÈ °æ¸Å ¸®½ºÆ®¸¦ »èÁ¦ ÇÑ´Ù. DominationManager::Instance()->DeleteAuction( dominationInfo.m_FieldCode, dominationInfo.m_disGuildInfo.m_GuildGuid ); break; #ifdef _NA_007128_20140326_MONDSCHIEN_DOMINATION case DOMINATION_TURN_OVER: //ÅÏ¿À¹ö ½Ã¿¡ °¢Àμº°ø ±æµå¸¦ ¼ö¼º±æµå¿¡ ÀúÀåÇÑ´Ù. pInfo->m_inGuildInfo = pRecvMsg->m_DominationInfo.m_disGuildInfo; pInfo->m_disGuildInfo.m_GuildGuid = 0; break; #endif //_NA_007128_20140326_MONDSCHIEN_DOMINATION } } else { //µ¥ÀÌÅͰ¡ Á¸Àç ÇÏÁö ¾ÊÀ¸¸é »õ·Î ¸¸µé¾î ÁØ´Ù. DominationManager::Instance()->InsertAreaInfo( dominationInfo ); } #ifdef _NA_007128_20140326_MONDSCHIEN_DOMINATION eDOMINATION_TYPE domi_type = DominationInfoParser::Instance()->GetDominationTypeFromFieldCode(dominationInfo.m_FieldCode); if (domi_type == DOMINATION_TYPE_MONDSCHIEN) { //ÅÏ¿À¹ö´Â Á¡·ÉÀü ¼­¹ö¿¡¼­¸¸ °»½ÅÇÏ°í ´Ù¸¥ ¼­¹ö¿¡´Â º¸³»Áö ¾Ê´Â´Ù. if (pRecvMsg->m_eSetType == DOMINATION_TURN_OVER) { return; } //¸óÆ®»þÀÎÀÏ °æ¿ì ´ë·ú ¿µÁÖ Á¤º¸ ¾÷µ¥ÀÌÆ®¸¦ ¿äûÇÑ´Ù. DominationManager::Instance()->UpdateContinentLordInfo(true); } #endif //_NA_007128_20140326_MONDSCHIEN_DOMINATION sendMsg.m_ResultCode = pRecvMsg->m_RsultCode; sendMsg.m_DominationInfo = pRecvMsg->m_DominationInfo; sendMsg.m_eSetType = pRecvMsg->m_eSetType; g_DBProxyServer.SendToSessionType(GAME_SERVER, &sendMsg, sizeof(sendMsg)); } Handler_Guild_DbpToGuild_IMPL(DZ_DOMINATION_ACCEP_HEIM_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); const MSG_DZ_DOMINATION_ACCEP_HEIM_ACK* pRecvMsg = static_cast(pMsg); MSG_GZ_DOMINATION_ACCEP_HEIM_ACK sendMsg; if( pRecvMsg->m_ResultCode != RC::DOMINATION_RESULT_SUCCESS ) { sendMsg.m_dwKey = pRecvMsg->m_dwKey; sendMsg.m_ResultCode = pRecvMsg->m_ResultCode; sendMsg.m_DominationActionInfo = pRecvMsg->m_DominationActionInfo; #ifdef _CH_20100420_CHANGE_DOMINATION_APPLY_WAY sendMsg.m_TokenPos = pRecvMsg->m_TokenPos; sendMsg.number_of_betting_item = pRecvMsg->number_of_betting_item; #endif SUNLOG( eCRITICAL_LOG, "["__FUNCTION__"]Result Fail\n" ); } else if( pRecvMsg->m_ResultCode == RC::DOMINATION_RESULT_SUCCESS ) { const DominationAuctionInfo& curActionInfo = pRecvMsg->m_DominationActionInfo; DominationManager::Instance()->InsertAuction( curActionInfo.m_ActionInfo.m_FieldCode, curActionInfo ); sendMsg.m_dwKey = pRecvMsg->m_dwKey; sendMsg.m_ResultCode = pRecvMsg->m_ResultCode; sendMsg.m_DominationActionInfo = pRecvMsg->m_DominationActionInfo; #ifdef _CH_20100420_CHANGE_DOMINATION_APPLY_WAY sendMsg.m_TokenPos = pRecvMsg->m_TokenPos; sendMsg.number_of_betting_item = pRecvMsg->number_of_betting_item; #endif SUNLOG( eFULL_LOG, __FUNCTION__" : Update success : Map = %d, cost = %d", pRecvMsg->m_DominationActionInfo.m_ActionInfo.m_FieldCode, pRecvMsg->m_DominationActionInfo.m_ActionInfo.m_TenderCost ); #ifdef _NA_003923_20120130_GUILD_RENEWAL #ifdef _CN_006014_20120822_GUILD_LOG_DELETE #else //Write guild game log const DOMINATION_ACTION_INFO& auction_info = pRecvMsg->m_DominationActionInfo.m_ActionInfo; Guild* guild = g_GuildManager.FindGuild(auction_info.m_GuilGuid); if (guild == NULL) { SUNLOG( eCRITICAL_LOG, __FUNCTION__" : Not found guild : guid = %d", auction_info.m_GuilGuid ); return; } guild->GetGuildInGameLog()->WriteGuildLog( GuildAuctionBatting, auction_info.m_GuilGuid, NULL, auction_info.m_FieldCode, auction_info.m_TenderCost ); #endif // _CN_006014_20120822_GUILD_LOG_DELETE #endif // _NA_003923_20120130_GUILD_RENEWAL } g_DBProxyServer.SendToSessionType(GAME_SERVER, &sendMsg, sizeof(sendMsg)); } Handler_Guild_DbpToGuild_IMPL(DZ_DOMINATION_INIT_AUCTIONINFO_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); const MSG_DZ_DOMINATION_INIT_AUCTIONINFO_ACK* pRecvMsg = static_cast(pMsg); MSG_GZ_DOMINATION_INIT_ACTIONINFO_ACK sendMsg; if( pRecvMsg->m_ResultCode != RC::DOMINATION_RESULT_SUCCESS ) { sendMsg.m_ResultCode = pRecvMsg->m_ResultCode; SUNLOG( eCRITICAL_LOG, "["__FUNCTION__"]Result Fail\n" ); } else if( pRecvMsg->m_ResultCode == RC::DOMINATION_RESULT_SUCCESS ) { sendMsg.m_ResultCode = pRecvMsg->m_ResultCode; DominationManager::Instance()->ClearAuctions( pRecvMsg->m_MapCode ); SUNLOG( eFULL_LOG, "["__FUNCTION__"]ActionInfo Init Success~!!\n" ); } sendMsg.m_MapCode = pRecvMsg->m_MapCode; g_DBProxyServer.SendToSessionType(GAME_SERVER, &sendMsg, sizeof(sendMsg)); } //_NA_20100604_BETTER_DOMINATION_MANAGER Handler_Guild_DbpToGuild_IMPL(DZ_DOMINATION_UPDATE_GUILDINFO_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); const MSG_DZ_DOMINATION_UPDATE_GUILDINFO_ACK* recv_msg = static_cast(pMsg); //--DB ÀúÀå ½ÇÆÐ if (recv_msg->db_result_ == MSG_DZ_DOMINATION_UPDATE_GUILDINFO_ACK::DB_RESULT_FAIL) { MSG_GZ_DOMINATION_UPDATE_GUILDINFO_ACK nak_msg; { nak_msg.db_result_ = MSG_DZ_DOMINATION_UPDATE_GUILDINFO_ACK::DB_RESULT_FAIL; nak_msg.guild_guid_ = recv_msg->guild_guid_; nak_msg.domination_join_count_ = 0; nak_msg.domination_defense_count_ = 0; nak_msg.domination_hunting_count_ = 0; } g_DBProxyServer.SendToSessionType(GAME_SERVER, &nak_msg, sizeof(nak_msg)); SUNLOG(eCRITICAL_LOG, "["__FUNCTION__"]DB Store Fail"); return; } //--±æµå Á¤º¸³» Á¡·ÉÀü Á¤º¸ ¼ÂÆÃ Guild* request_guild = g_GuildManager.FindGuild(recv_msg->guild_guid_); if (request_guild == NULL) return; request_guild->SetDominationJointCount(recv_msg->domination_join_count_); request_guild->SetDominationDefenseCount(recv_msg->domination_defense_count_); request_guild->SetDominationHuntingCount(recv_msg->domination_hunting_count_); MSG_GZ_DOMINATION_UPDATE_GUILDINFO_ACK send_msg; { send_msg.db_result_ = MSG_DZ_DOMINATION_UPDATE_GUILDINFO_ACK::DB_RESULT_SUCCESS; send_msg.guild_guid_ = recv_msg->guild_guid_; send_msg.domination_join_count_ = recv_msg->domination_join_count_; send_msg.domination_defense_count_ = recv_msg->domination_defense_count_; send_msg.domination_hunting_count_ = recv_msg->domination_hunting_count_; } g_DBProxyServer.SendToSessionType(GAME_SERVER, &send_msg, sizeof(send_msg)); } //_NA_20110216_INCREASE_DOMINATION_DEFFENSEWALL_POINT Handler_Guild_DbpToGuild_IMPL(DZ_DOMINATION_ADD_DEFFENSEWALL_POINT_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); const MSG_DZ_DOMINATION_ADD_DEFFENSEWALL_POINT_ACK* recv_msg = static_cast(pMsg); if (recv_msg->result_value_ == false) { MSG_GZ_DOMINATION_ADD_DEFFENSEWALL_POINT_ACK nak_msg; nak_msg.db_result_ = recv_msg->result_value_; nak_msg.domination_info_ = recv_msg->domination_info_; nak_msg.item_code = recv_msg->item_code_; nak_msg.m_dwKey = recv_msg->m_dwKey; g_DBProxyServer.SendToSessionType(GAME_SERVER, &nak_msg, sizeof(nak_msg)); SUNLOG(eCRITICAL_LOG, "["__FUNCTION__"]Update Failed to domination info[map:%d]", recv_msg->domination_info_.m_FieldCode); return; } DominationManager* const domination_manager = DominationManager::Instance(); DOMINATION_INFO* info = domination_manager->FindDominationInfo(recv_msg->domination_info_.m_FieldCode); if (info == NULL) { SUNLOG(eCRITICAL_LOG, "["__FUNCTION__"]Not found domination info[map:%d]", recv_msg->domination_info_.m_FieldCode); return; } *(info) = recv_msg->domination_info_; MSG_GZ_DOMINATION_ADD_DEFFENSEWALL_POINT_ACK ack_msg; ack_msg.db_result_ = recv_msg->result_value_; ack_msg.domination_info_ = recv_msg->domination_info_; ack_msg.item_code = recv_msg->item_code_; ack_msg.m_dwKey = recv_msg->m_dwKey; g_DBProxyServer.SendToSessionType(GAME_SERVER, &ack_msg, sizeof(ack_msg)); } //_NA_20110406_CHANGE_RULE_FOR_DOMINATION_JOIN Handler_Guild_DbpToGuild_IMPL(DZ_DOMINATION_MEMBER_JOIN_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); const MSG_DZ_DOMINATION_MEMBER_JOIN_ACK* recv_msg = static_cast(pMsg); if (recv_msg->db_result_ == false) { MSG_GZ_DOMINATION_MEMBER_JOIN_ACK nak_msg; nak_msg.db_result_ = recv_msg->db_result_; nak_msg.map_code_ = recv_msg->map_code_; nak_msg.member_info_ = recv_msg->member_info_; g_DBProxyServer.SendToSessionType(GAME_SERVER, &nak_msg, sizeof(nak_msg)); return; } DominationManager::Instance()->InsertMember(recv_msg->map_code_, recv_msg->member_info_); MSG_GZ_DOMINATION_MEMBER_JOIN_ACK ack_msg; ack_msg.db_result_ = recv_msg->db_result_; ack_msg.map_code_ = recv_msg->map_code_; ack_msg.member_info_ = recv_msg->member_info_; g_DBProxyServer.SendToSessionType(GAME_SERVER, &ack_msg, sizeof(ack_msg)); } Handler_Guild_DbpToGuild_IMPL(DZ_DOMINATION_MEMBER_LEAVE_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); const MSG_DZ_DOMINATION_MEMBER_LEAVE_ACK* recv_msg = static_cast(pMsg); if (recv_msg->db_result_ == false) { MSG_GZ_DOMINATION_MEMBER_LEAVE_ACK nak_msg; nak_msg.db_result_ = recv_msg->db_result_; nak_msg.map_code_ = recv_msg->map_code_; nak_msg.member_guid_ = recv_msg->member_guid_; nak_msg.requester_guid = recv_msg->requester_guid; g_DBProxyServer.SendToSessionType(GAME_SERVER, &nak_msg, sizeof(nak_msg)); return; } DominationManager::Instance()->DeleteMember(recv_msg->map_code_, recv_msg->member_guid_); MSG_GZ_DOMINATION_MEMBER_LEAVE_ACK ack_msg; ack_msg.db_result_ = recv_msg->db_result_; ack_msg.map_code_ = recv_msg->map_code_; ack_msg.member_guid_ = recv_msg->member_guid_; ack_msg.requester_guid = recv_msg->requester_guid; g_DBProxyServer.SendToSessionType(GAME_SERVER, &ack_msg, sizeof(ack_msg)); } Handler_Guild_DbpToGuild_IMPL(DZ_DOMINATION_MEMBERLIST_ANS) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); const MSG_DZ_DOMINATION_MEMBERLIST_ANS* recv_msg = static_cast(pMsg); const BYTE data_count = recv_msg->data_count_; if (data_count > _countof(recv_msg->member_list_)) { SUNLOG( eCRITICAL_LOG, _T("|%s|[ͳÖÎ] ³ÉÔ±ÊýÒç³ö.|µØÍ¼´úÂë = %d, »áÔ±ÈËÊý = %d, ×î´óÖµ = %d|"), __FUNCTION__, recv_msg->map_code_, data_count, _countof(recv_msg->member_list_) ); return; } const MAPCODE map_code = recv_msg->map_code_; DominationManager* const domination_manager = DominationManager::Instance(); domination_manager->ClearMembers(map_code); if (data_count > 0) { for (BYTE i = 0; i < data_count; ++i) { const DominationMemberInfo& member_info = recv_msg->member_list_[i]; domination_manager->InsertMember(map_code, member_info); } } domination_manager->SetCompleteLoadMembers(map_code); SUNLOG( eCRITICAL_LOG, _T("|%s|[ͳÖÎ] ³ÉÔ±ÐÅÏ¢¼ÓÔØ³É¹¦.|µØÍ¼´úÂë = %d, »áÔ±ÈËÊý = %d|"), __FUNCTION__, recv_msg->map_code_, data_count ); } Handler_Guild_DbpToGuild_IMPL(DZ_DOMINATION_MEMBERLIST_INIT_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); const MSG_DZ_DOMINATION_MEMBERLIST_INIT_ACK* recv_msg = static_cast(pMsg); // NOTE: f110525.3L, this result always requires success. #if SUN_CODE_BACKUP if (recv_msg->db_result_ == false) { MSG_DZ_DOMINATION_MEMBERLIST_INIT_SYN send_msg; Handler_Guild_GuildToDbp::OnDZ_DOMINATION_MEMBERLIST_INIT_SYN( g_DBHandler.GetSharedSession(), &send_msg, sizeof(send_msg)); } #endif SUNLOG(eCRITICAL_LOG, "ͳÖγÉÔ±Áбí³õʼ»¯³É¹¦"); } /************************************************************************/ /* Áö¿ª Á¡·ÉÀü ½Ã½ºÅÛ ÀÛ¾÷ END */ /************************************************************************/ #ifdef _NA_003923_20120130_GUILD_RENEWAL Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_WRITE_IN_GAME_LOG_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); const MSG_DZ_GUILD_WRITE_IN_GAME_LOG_ACK* recv_msg = static_cast(pMsg); const GUILDGUID guild_guid = recv_msg->guild_guid_; Guild* guild = g_GuildManager.FindGuild(guild_guid); if (guild == NULL) { return; } guild->GetGuildInGameLog()->InsertLogToLIst(recv_msg->log_data_); } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_IN_GAME_LOG_LIST_ANS) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); const MSG_DZ_GUILD_IN_GAME_LOG_LIST_ANS* recv_msg = static_cast(pMsg); const GUILDGUID guild_guid = recv_msg->guild_guid_; Guild* guild = g_GuildManager.FindGuild(guild_guid); if (guild == NULL) { return; } guild->GetGuildInGameLog()->InitializeGuildLog(recv_msg->log_data_, recv_msg->log_count_); } #endif //_NA_003923_20120130_GUILD_RENEWAL #ifdef _NA_008334_20150608_SONNENSCHEIN Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_SONNENSCHEIN_INITIALIZE_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_SONNENSCHEIN_INITIALIZE_ACK * ack_msg = \ static_cast(pMsg); //¸ðµç ¼Ò³Ù»þÀÎ µî±Þ ÃʱâÈ­ g_GuildManager.InitializeAllSonnenScheinPhase(); MSG_GZ_GUILD_SONNENSCHEIN_INITIALIZE_CMD init_ack_msg; g_DBProxyServer.SendToSessionType(GAME_SERVER, &init_ack_msg, sizeof(init_ack_msg)); } Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_SONNENSCHEIN_UPDATE_ACK) { __TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING(); MSG_DZ_GUILD_SONNENSCHEIN_UPDATE_ACK * ack_msg = \ static_cast(pMsg); //DBP¼­¹öÀÇ ±æµåÁ¤º¸¿¡ ¼Ò³Ù»þÀÎ µî±Þ°ª ¼¼ÆÃ g_GuildManager.SetGuildSonnenScheinPhase(ack_msg->guild_guid, ack_msg->sonnenschein_phase); MSG_GZ_GUILD_SONNENSCHEIN_UPDATE_ACK update_ack_msg; update_ack_msg.guild_guid = ack_msg->guild_guid; update_ack_msg.sonnenschein_phase = ack_msg->sonnenschein_phase; g_DBProxyServer.SendToSessionType(GAME_SERVER, &update_ack_msg, sizeof(update_ack_msg)); } #endif //_NA_008334_20150608_SONNENSCHEIN