#include "StdAfx.h" #include "DNGuildTask.h" #include "DNConnection.h" #include "DNSQLConnectionManager.h" #include "DNSQLMembership.h" #include "DNSQLWorld.h" #include "DNExtManager.h" #include "Log.h" CDNGuildTask::CDNGuildTask(CDNConnection* pConnection) : CDNMessageTask(pConnection) { } CDNGuildTask::~CDNGuildTask(void) { } void CDNGuildTask::OnRecvMessage(int nThreadID, int nMainCmd, int nSubCmd, char* pData) { CDNSQLMembership *pMembershipDB = NULL; CDNSQLWorld *pWorldDB = NULL; int nRet = ERROR_DB; switch (nSubCmd) { case QUERY_DISMISSGUILD: // ±æµå ÇØÃ¼ ¿äû { TQDismissGuild *pGuild = reinterpret_cast(pData); pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB){ TADismissGuild Guild; memset(&Guild, 0, sizeof(Guild)); Guild.nRetCode = ERROR_DB; Guild.nAccountDBID = pGuild->nAccountDBID; Guild.cWorldSetID = pGuild->cWorldSetID; Guild.nCharacterDBID = pGuild->nCharacterDBID; Guild.nGuildDBID = pGuild->nGuildDBID; Guild.nRetCode = pWorldDB->QueryDismissGuild(pGuild, &Guild); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(Guild)); if (ERROR_NONE != Guild.nRetCode) { g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, pGuild->nCharacterDBID, 0, L"[ADBID:%u CDBID:%lld] [QUERY_DISMISSGUILD:%d] Query Error (Ret:%d)\r\n", pGuild->nAccountDBID, pGuild->nCharacterDBID, pGuild->cWorldSetID, Guild.nRetCode); } } else { g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, pGuild->nCharacterDBID, 0, L"[ADBID:%u CDBID:%lld] [QUERY_DISMISSGUILD:%d] pWorldDB not found\r\n", pGuild->nAccountDBID, pGuild->nCharacterDBID, pGuild->cWorldSetID); } } break; case QUERY_ADDGUILDMEMBER: // ±æµå¿ø Ãß°¡ ¿äû { TQAddGuildMember *pGuild = reinterpret_cast(pData); pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB){ TAAddGuildMember Guild; memset(&Guild, 0, sizeof(Guild)); Guild.nRetCode = ERROR_DB; Guild.nAccountDBID = pGuild->nAccountDBID; Guild.cWorldSetID = pGuild->cWorldSetID; Guild.nGuildDBID = pGuild->nGuildDBID; Guild.nRetCode = pWorldDB->QueryAddGuildMember(pGuild, &Guild); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(Guild)); if (ERROR_NONE != Guild.nRetCode) { g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, pGuild->nCharacterDBID, 0, L"[ADBID:%u CDBID:%lld] [QUERY_ADDGUILDMEMBER:%d] Query Error (Ret:%d)\r\n", pGuild->nAccountDBID, pGuild->nCharacterDBID, pGuild->cWorldSetID, Guild.nRetCode); } } else { g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, pGuild->nCharacterDBID, 0, L"[ADBID:%u CDBID:%lld] [QUERY_ADDGUILDMEMBER:%d] pWorldDB not found\r\n", pGuild->nAccountDBID, pGuild->nCharacterDBID, pGuild->cWorldSetID); } } break; case QUERY_DELGUILDMEMBER: // ±æµå¿ø Á¦°Å (Å»Åð/Ãß¹æ) ¿äû { TQDelGuildMember *pGuild = reinterpret_cast(pData); pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB){ TADelGuildMember Guild; memset(&Guild, 0, sizeof(Guild)); Guild.nRetCode = ERROR_DB; Guild.cWorldSetID = pGuild->cWorldSetID; Guild.nAccountDBID = pGuild->nReqAccountDBID; Guild.nReqAccountDBID = pGuild->nReqAccountDBID; Guild.nReqCharacterDBID = pGuild->nReqCharacterDBID; Guild.nDelAccountDBID = pGuild->nDelAccountDBID; Guild.nDelCharacterDBID = pGuild->nDelCharacterDBID; Guild.nGuildDBID = pGuild->nGuildDBID; Guild.bIsExiled = pGuild->bIsExiled; #ifdef PRE_ADD_BEGINNERGUILD Guild.bIsGraduateBeginnerGuild = pGuild->bIsGraduateBeginnerGuild; #endif //#ifdef PRE_ADD_BEGINNERGUILD Guild.nRetCode = pWorldDB->QueryDelGuildMember(pGuild, &Guild); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(Guild)); switch (Guild.nRetCode) { case ERROR_NONE: case 103241: // ±æµå¿øÀÌ ¾Æ´Ï°Å³ª ±æµå ¸¶½ºÅÍÀÔ´Ï´Ù. break; default: g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nReqAccountDBID, pGuild->nReqCharacterDBID, 0, L"[ADBID:%u CDBID:%lld] [QUERY_DELGUILDMEMBER:%d] Query Error (Ret:%d)\r\n", pGuild->nReqAccountDBID, pGuild->nReqCharacterDBID, pGuild->cWorldSetID, Guild.nRetCode); break; } } else { g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nReqAccountDBID, pGuild->nReqCharacterDBID, 0, L"[ADBID:%u CDBID:%lld] [QUERY_DELGUILDMEMBER:%d] pWorldDB not found\r\n", pGuild->nReqAccountDBID, pGuild->nReqCharacterDBID, pGuild->cWorldSetID); } } break; case QUERY_CREATEGUILD: // ±æµå â¼³ ¿äû { TQCreateGuild *pGuild = reinterpret_cast(pData); pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB){ TACreateGuild Guild; memset(&Guild, 0, sizeof(Guild)); Guild.nRetCode = ERROR_DB; Guild.cWorldSetID = pGuild->cWorldSetID; Guild.nAccountDBID = pGuild->nAccountDBID; Guild.nCharacterDBID = pGuild->nCharacterDBID; _wcscpy(Guild.wszGuildName, _countof(Guild.wszGuildName), pGuild->wszGuildName, (int)wcslen(pGuild->wszGuildName)); Guild.nEstablishExpense = pGuild->nEstablishExpense; Guild.nRetCode = pWorldDB->QueryCreateGuild(pGuild, &Guild); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(Guild)); switch (Guild.nRetCode) { case ERROR_NONE: case 103234: // ÀÌ¹Ì Á¸ÀçÇÏ´Â ±æµå À̸§ÀÔ´Ï´Ù. break; default: g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, pGuild->nCharacterDBID, 0, L"[ADBID:%u CDBID:%lld] [QUERY_CREATEGUILD:%d] Query Error (Ret:%d)\r\n", pGuild->nAccountDBID, pGuild->nCharacterDBID, pGuild->cWorldSetID, Guild.nRetCode); break; } } else { g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, pGuild->nCharacterDBID, 0, L"[ADBID:%u CDBID:%lld] [QUERY_CREATEGUILD:%d] pWorldDB not found\r\n", pGuild->nAccountDBID, pGuild->nCharacterDBID, pGuild->cWorldSetID); } } break; case QUERY_CHANGEGUILDINFO: // ±æµå Á¤º¸ º¯°æ ¿äû { TQChangeGuildInfo *pGuild = reinterpret_cast(pData); pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB) { TAChangeGuildInfo Guild; memset(&Guild, 0, sizeof(Guild)); Guild.nRetCode = ERROR_DB; Guild.nAccountDBID = pGuild->nAccountDBID; Guild.nCharacterDBID = pGuild->nCharacterDBID; Guild.nGuildDBID = pGuild->nGuildDBID; Guild.cWorldSetID = pGuild->cWorldSetID; Guild.btGuildUpdate = pGuild->btGuildUpdate; Guild.nInt1 = pGuild->nInt1; Guild.nInt2 = pGuild->nInt2; Guild.nInt3 = pGuild->nInt3; Guild.nInt4 = pGuild->nInt4; Guild.biInt64 = pGuild->biInt64; Guild.nCurCommonPoint = pGuild->nAddCommonPoint; _wcscpy(Guild.Text, _countof(Guild.Text), pGuild->Text, (int)wcslen(pGuild->Text)); switch(pGuild->btGuildUpdate) { case GUILDUPDATE_TYPE_NOTICE: // °øÁö º¯°æ { Guild.nRetCode = pWorldDB->QueryChangeGuildInfoNotice(pGuild, &Guild); } break; case GUILDUPDATE_TYPE_ROLEAUTH: // Á÷±Þ ±ÇÇÑ º¯°æ { Guild.nRetCode = pWorldDB->QueryChangeGuildInfoRoleAuth(pGuild, &Guild); } break; #if defined( PRE_ADD_GUILD_EASYSYSTEM ) case GUILDUPDATE_TYPE_HOMEPAGE: { Guild.nRetCode = pWorldDB->QueryChangeGuildInfoHomePage(pGuild, &Guild); } break; #endif default: break; } m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(Guild)); if (ERROR_NONE != Guild.nRetCode) { g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, pGuild->nCharacterDBID, 0, L"[ADBID:%u CDBID:%lld] [QUERY_CHANGEGUILDINFO:%d/%d] Query Error (Ret:%d)\r\n", pGuild->nAccountDBID, pGuild->nCharacterDBID, pGuild->cWorldSetID, pGuild->btGuildUpdate, Guild.nRetCode); } } else { g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, pGuild->nCharacterDBID, 0, L"[ADBID:%u CDBID:%lld] [QUERY_CHANGEGUILDINFO:%d/%d] pWorldDB not found\r\n", pGuild->nAccountDBID, pGuild->nCharacterDBID, pGuild->cWorldSetID, pGuild->btGuildUpdate); } } break; case QUERY_CHANGEGUILDMEMBERINFO: // ±æµå¿ø Á¤º¸ º¯°æ ¿äû { TQChangeGuildMemberInfo *pGuild = reinterpret_cast(pData); pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB){ TAChangeGuildMemberInfo Guild; memset(&Guild, 0, sizeof(Guild)); Guild.nRetCode = ERROR_DB; Guild.nAccountDBID = pGuild->nReqAccountDBID; Guild.nReqAccountDBID = pGuild->nReqAccountDBID; Guild.nReqCharacterDBID = pGuild->nReqCharacterDBID; Guild.nChgAccountDBID = pGuild->nChgAccountDBID; Guild.nChgCharacterDBID = pGuild->nChgCharacterDBID; Guild.nGuildDBID = pGuild->nGuildDBID; Guild.cWorldSetID = pGuild->cWorldSetID; Guild.btGuildMemberUpdate = pGuild->btGuildMemberUpdate; Guild.nInt1 = pGuild->nInt1; Guild.nInt2 = pGuild->nInt2; Guild.biInt64 = pGuild->biInt64; _wcscpy(Guild.Text, _countof(Guild.Text), pGuild->Text, (int)wcslen(pGuild->Text)); switch(pGuild->btGuildMemberUpdate) { case GUILDMEMBUPDATE_TYPE_INTRODUCE: // ÀÚ±â¼Ò°³ º¯°æ (±æµå¿ø ÀÚ½Å) { Guild.nRetCode = pWorldDB->QueryChangeGuildMemberInfoIntroduce(pGuild, &Guild); } break; case GUILDMEMBUPDATE_TYPE_ROLE: // Á÷±Þ º¯°æ (±æµåÀå -> ±æµå¿ø ?) { Guild.nRetCode = pWorldDB->QueryChangeGuildMemberInfoRole(pGuild, &Guild); } break; case GUILDMEMBUPDATE_TYPE_GUILDMASTER: // ±æµåÀå À§ÀÓ (±æµåÀå -> ±æµå¿ø ?) { Guild.nRetCode = pWorldDB->QueryChangeGuildMemberInfoGuildMaster(pGuild, &Guild); } break; default: break; } m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(Guild)); if (ERROR_NONE != Guild.nRetCode) g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nReqAccountDBID, pGuild->nReqCharacterDBID, 0, L"[ADBID:%u CDBID:%lld] [QUERY_CHANGEGUILDMEMBERINFO:%d/%d] Query Error (Ret:%d)\r\n", pGuild->nReqAccountDBID, pGuild->nReqCharacterDBID, pGuild->cWorldSetID, pGuild->btGuildMemberUpdate, Guild.nRetCode); } else { g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nReqAccountDBID, pGuild->nReqCharacterDBID, 0, L"[ADBID:%u CDBID:%lld] [QUERY_CHANGEGUILDMEMBERINFO:%d/%d] pWorldDB not found\r\n", pGuild->nReqAccountDBID, pGuild->nReqCharacterDBID, pGuild->cWorldSetID, pGuild->btGuildMemberUpdate); } } break; case QUERY_ADDGUILDHISTORY: // ±æµå È÷½ºÅ丮 Ãß°¡ ¿äû { TQAddGuildHistory *pGuild = reinterpret_cast(pData); pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB){ nRet = pWorldDB->QueryAddGuildHistory(pGuild); if (ERROR_NONE != nRet) { g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, 0, 0, L"[QUERY_ADDGUILDHISTORY:%d] Query Error (Ret:%d)\r\n", pGuild->cWorldSetID, nRet); } } else { g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, 0, 0, L"[QUERY_ADDGUILDHISTORY:%d] pWorldDB not found\r\n", pGuild->cWorldSetID); } } break; case QUERY_GETGUILDHISTORYLIST: // ±æµå È÷½ºÅ丮 ¸ñ·Ï ¿äû { TQGetGuildHistoryList *pGuild = reinterpret_cast(pData); pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB){ TAGetGuildHistoryList Guild; memset(&Guild, 0, sizeof(Guild)); Guild.nRetCode = ERROR_DB; Guild.nAccountDBID = pGuild->nAccountDBID; Guild.nCharacterDBID = pGuild->nCharacterDBID; Guild.nGuildDBID = pGuild->nGuildDBID; Guild.cWorldSetID = pGuild->cWorldSetID; Guild.biIndex = pGuild->biIndex; Guild.bDirection = pGuild->bDirection; Guild.nRetCode = pWorldDB->QueryGetGuildHistoryList(pGuild, &Guild); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(Guild)); if (ERROR_NONE != Guild.nRetCode) { g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, pGuild->nCharacterDBID, 0, L"[ADBID:%u CDBID:%lld] [QUERY_GETGUILDHISTORYLIST:%d] Query Error (Ret:%d)\r\n", pGuild->nAccountDBID, pGuild->nCharacterDBID, pGuild->cWorldSetID, Guild.nRetCode); } } else { g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, pGuild->nCharacterDBID, 0, L"[ADBID:%u CDBID:%lld] [QUERY_GETGUILDHISTORYLIST:%d] pWorldDB not found\r\n", pGuild->nAccountDBID, pGuild->nCharacterDBID, pGuild->cWorldSetID); } } break; case QUERY_INVITEGUILDMEMBER: // ±æµå¿ø ÃÊ´ë ¿äû { TQInviteGuildMember *pPacket = reinterpret_cast(pData); TQGetGuildInfo *pGuild = reinterpret_cast(&pPacket->GuildInfo); pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB){ std::vector vGuildMember; vGuildMember.clear(); TAInviteGuildMember Guild; memset(&Guild, 0, sizeof(Guild)); Guild.nRetCode = ERROR_DB; Guild.nAccountDBID = pPacket->nAccountDBID; Guild.nToSessionID = pPacket->nToSessionID; Guild.GuildInfo.nRetCode = ERROR_DB; Guild.GuildInfo.nAccountDBID = pPacket->nAccountDBID; Guild.GuildInfo.cWorldSetID = pPacket->cWorldSetID; Guild.GuildInfo.nGuildDBID = pGuild->nGuildDBID; Guild.GuildInfo.nRetCode = pWorldDB->QueryGetGuildInfo(pGuild->nGuildDBID, pGuild->cWorldSetID, &Guild.GuildInfo); if (ERROR_NONE == Guild.GuildInfo.nRetCode && pGuild->bNeedMembList) { Guild.GuildInfo.nRetCode = pWorldDB->QueryGetGuildMemberList(pGuild->nGuildDBID, pGuild->cWorldSetID, vGuildMember); } Guild.nRetCode = Guild.GuildInfo.nRetCode; m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(Guild)); if( Guild.GuildInfo.nRetCode == ERROR_NONE ) { TAGetGuildMember GuildMember; memset(&GuildMember, 0, sizeof(GuildMember)); GuildMember.nRetCode = Guild.GuildInfo.nRetCode; GuildMember.nGuildDBID = pGuild->nGuildDBID; GuildMember.cWorldSetID = pGuild->cWorldSetID; GuildMember.bFirstPage = true; int nPacketSize = (sizeof(TAGetGuildMember) - sizeof(GuildMember.MemberList)); int nMaxSendMember = ((SERVERDETACHPACKETSIZE)-nPacketSize) / sizeof(GuildMember.MemberList[0]); if(nMaxSendMember > SENDGUILDMEMBER_MAX) nMaxSendMember = SENDGUILDMEMBER_MAX; for(std::vector::iterator itor = vGuildMember.begin(); itor != vGuildMember.end(); itor++) { GuildMember.MemberList[GuildMember.nCount++] = *itor; if(GuildMember.nCount >= nMaxSendMember) { if( itor + 1 == vGuildMember.end() ) GuildMember.bEndPage = true; int nSize = (sizeof(TAGetGuildMember) - sizeof(GuildMember.MemberList)) + (sizeof(GuildMember.MemberList[0]) * GuildMember.nCount); m_pConnection->AddSendData(nMainCmd, QUERY_GET_GUILDMEMBER, reinterpret_cast(&GuildMember), nSize); GuildMember.nCount = 0; memset( GuildMember.MemberList, 0, sizeof(GuildMember.MemberList)); GuildMember.bFirstPage = false; } } if( GuildMember.nCount > 0 ) { GuildMember.bEndPage = true; int nSize = (sizeof(TAGetGuildMember) - sizeof(GuildMember.MemberList)) + (sizeof(GuildMember.MemberList[0]) * GuildMember.nCount); m_pConnection->AddSendData(nMainCmd, QUERY_GET_GUILDMEMBER, reinterpret_cast(&GuildMember), nSize); } } if (ERROR_NONE != Guild.nRetCode) { g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, 0, 0, L"[QUERY_GETGUILDINFO:%d/%d] Query Error (Ret:%d)\r\n", pGuild->cWorldSetID, pGuild->bNeedMembList, Guild.nRetCode); } } else { g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, 0, 0, L"[QUERY_GETGUILDINFO:%d] pWorldDB not found\r\n", pGuild->cWorldSetID); } } break; case QUERY_MOVE_ITEM_IN_GUILDWARE: // ±æµåâ°í°£ ¾ÆÀÌÅÛ À̵¿ { TQMoveItemInGuildWare *pGuild = reinterpret_cast(pData); pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB){ TAMoveItemInGuildWare Guild; memset(&Guild, 0, sizeof(TAMoveItemInGuildWare)); Guild.nRetCode = pWorldDB->QueryMoveItemInGuildWare(pGuild, &Guild); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(TAMoveItemInGuildWare)); switch (Guild.nRetCode) { case ERROR_NONE: case 103269: // ±æµå â°í¿¡¼­ Split ÇÒ ¾ÆÀÌÅÛÀÌ ±æµå â°í¿¡ ¸ÅÇεǾî ÀÖÁö ¾Ê°Å³ª LockµÇ¾î ÀÖ½À´Ï´Ù. case 103270: // ±æµå â°í¿¡¼­ Split ÇÒ ¾ÆÀÌÅÛÀÌ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù. case 103271: // ±æµå â°í¿¡¼­ Split ÇÒ ¾ÆÀÌÅÛÀÇ ¼ö·®ÀÌ ÀÏÄ¡ÇÏÁö ¾Ê½À´Ï´Ù. case 103272: // Merge¿¡ °ü°èµÈ 2°³ÀÇ ¾ÆÀÌÅÛ Áß 1°³ ÀÌ»óÀÇ ¾ÆÀÌÅÛÀÌ ±æµå â°í¿¡ ¸ÅÇεǾî ÀÖÁö ¾Ê°Å³ª LockµÇ¾î ÀÖ½À´Ï´Ù. case 103273: // @inbItemSerial¿¡ ÇØ´çÇÏ´Â ¾ÆÀÌÅÛÀÌ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù. case 103274: // @inbItemSerial¿¡ ÇØ´çÇÏ´Â ¾ÆÀÌÅÛÀÇ ¼ö·®ÀÌ ÀÏÄ¡ÇÏÁö ¾Ê½À´Ï´Ù. case 103275: // @inbMergeTargetItemSerial¿¡ ÇØ´çÇÏ´Â ¾ÆÀÌÅÛÀÌ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù. case 103276: // @inbMergeTargetItemSerial¿¡ ÇØ´çÇÏ´Â ¾ÆÀÌÅÛÀÇ ¼ö·®ÀÌ ÀÏÄ¡ÇÏÁö ¾Ê½À´Ï´Ù. case 103255: // ±æµå â°í°¡ ²Ë á½À´Ï´Ù break; default: g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, pGuild->nCharacterDBID, 0, L"[ADBID:%u CDBID:%lld] [QUERY_MOVE_ITEM_IN_GUILDWARE:%d] Query Error\r\n", pGuild->nAccountDBID, pGuild->nCharacterDBID, Guild.nRetCode); break; } } else { g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, pGuild->nCharacterDBID, 0, L"[QUERY_MOVEITEMINGUILDWARE:%d] pWorldDB not found\r\n", pGuild->cWorldSetID); } } break; case QUERY_MOVE_INVEN_TO_GUILDWARE: // Àκ¥ -> ±æµåâ°í·Î ¾ÆÀÌÅÛ À̵¿ { TQMoveInvenToGuildWare *pGuild = reinterpret_cast(pData); pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB){ TAMoveInvenToGuildWare Guild; nRet = pWorldDB->QueryMoveInvenToGuildWare(pGuild, &Guild); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(TAMoveInvenToGuildWare)); switch (nRet) { case ERROR_NONE: case 103170: // ¾ÆÀÌÅÛÀÌ Á¸ÀçÇÏÁö ¾Ê°Å³ª ¾ÆÀÌÅÛ ¼ö·®ÀÌ ºÎÁ·ÇÕ´Ï´Ù. (Split ½ÇÆÐ) case 103253: // ±æµå â°í·Î ¿Å±æ ¾ÆÀÌÅÛÀÌ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù. case 103254: // ±æµå â°í·Î ¿Å±æ ¾ÆÀÌÅÛÀÇ ¼ö·®ÀÌ ÀÏÄ¡ÇÏÁö ¾Ê½À´Ï´Ù. case 103255: // ±æµå â°í°¡ ²Ë á½À´Ï´Ù. case 103256: // ±æµå â°í¿¡ MergeÇÒ ´ë»ó ¾ÆÀÌÅÛÀÌ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù. case 103257: // ±æµå â°í¿¡ MergeÇÒ ´ë»ó ¾ÆÀÌÅÛÀÇ ¼ö·®ÀÌ ÀÏÄ¡ÇÏÁö ¾Ê½À´Ï´Ù. case 103258: // ±æµå â°í¿¡ MergeÇÒ ´ë»ó ¾ÆÀÌÅÛÀÌ Á¸ÀçÇÏÁö ¾Ê°Å³ª ´Ù¸¥ »ç¿ëÀÚ¿¡ ÀÇÇØ LockµÇ¾î ÀÖ½À´Ï´Ù. case 103259: // ±æµå â°í·Î ¿Å±æ ¾ÆÀÌÅÛÀÌ Àκ¥Å丮¿¡ ¸ÅÇεǾî ÀÖÁö ¾Ê½À´Ï´Ù. case 103292: // °Å·¡¼Ò¿¡ µî·ÏµÇ¾î ÀÖ´Â ¾ÆÀÌÅÛÀÔ´Ï´Ù. break; default: g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, pGuild->nCharacterDBID, 0, L"[ADBID:%u CDBID:%lld] [QUERY_MOVE_INVEN_TO_GUILDWARE:%d] Query Error\r\n", pGuild->nAccountDBID, pGuild->nCharacterDBID, nRet); break; } } else { g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, pGuild->nCharacterDBID, 0, L"[QUERY_MOVEITEMINGUILDWARE:%d] pWorldDB not found\r\n", pGuild->cWorldSetID); } } break; case QUERY_MOVE_GUILDWARE_TO_INVEN: // ±æµåâ°í -> Àκ¥·Î ¾ÆÀÌÅÛ À̵¿ { TQMoveGuildWareToInven *pGuild = reinterpret_cast(pData); pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB){ TAMoveGuildWareToInven Guild; nRet = pWorldDB->QueryMoveGuildWareToInven(pGuild, &Guild); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(TAMoveGuildWareToInven)); switch (nRet) { case ERROR_NONE: case 103170: case 103260: case 103261: case 103262: case 103263: case 103264: case 103265: case 103266: case 103267: break; default: g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, pGuild->nCharacterDBID, 0, L"[ADBID:%u CDBID:%lld] [QUERY_MOVE_GUILDWARE_TO_INVEN:%d] Query Error\r\n", pGuild->nAccountDBID, pGuild->nCharacterDBID, nRet); break; } } else { g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, pGuild->nCharacterDBID, 0, L"[QUERY_MOVEITEMINGUILDWARE:%d] pWorldDB not found\r\n", pGuild->cWorldSetID); } } break; case QUERY_GUILDWARE_COIN: // Àκ¥ <-> â°í ÄÚÀÎÀ̵¿ { TQGuildWareHouseCoin *pGuild = reinterpret_cast(pData); pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB){ TAGuildWareHouseCoin Guild; nRet = pWorldDB->QueryModGuildCoin(pGuild, &Guild); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(TAGuildWareHouseCoin)); if (ERROR_NONE != nRet) { g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, pGuild->nCharacterDBID, 0, L"[ADBID:%u CDBID:%lld] [QUERY_GUILDWARE_COIN:%d] Query Error\r\n", pGuild->nAccountDBID, pGuild->nCharacterDBID, nRet); } } else { g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, pGuild->nCharacterDBID, 0, L"[QUERY_GUILDWARE_COIN:%d] pWorldDB not found\r\n", pGuild->cWorldSetID); } } break; case QUERY_GET_GUILDWAREINFO: { TQGetGuildWareInfo *pGuild = reinterpret_cast(pData); pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB) { TAGetGuildWareInfo Guild; nRet = pWorldDB->QueryGetGuildWareInfo(pGuild, &Guild); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(TAGetGuildWareInfo)); if (ERROR_NONE != nRet) { g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, 0, 0, L"[QUERY_GET_GUILDWAREINFO] Query Error Guild:%d Ret:%d\r\n", pGuild->nGuildDBID, nRet); } } else { g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, 0, 0, L"[QUERY_GET_GUILDWAREINFO:%d] pWorldDB not found\r\n", pGuild->cWorldSetID); } } break; case QUERY_SET_GUILDWAREINFO: { TQSetGuildWareInfo *pGuild = reinterpret_cast(pData); pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB) { TASetGuildWareInfo Guild; nRet = pWorldDB->QuerySetGuildWareInfo(pGuild, &Guild); if (ERROR_NONE != nRet) { g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, 0, 0, L"[QUERY_SET_GUILDWAREINFO:%d/%d] Query Error\r\n"); } } else { g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, 0, 0, L"[QUERY_SET_GUILDWAREINFO:%d] pWorldDB not found\r\n", pGuild->cWorldSetID); } } break; case QUERY_GET_GUILDWAREHISTORY: { TQGetGuildWareHistory *pGuild = reinterpret_cast(pData); pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB) { TAGetGuildWareHistory Guild; nRet = pWorldDB->QueryGetGuildWareHistoryList(pGuild, &Guild); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(TAGetGuildWareHistory)); if (ERROR_NONE != nRet) { g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, pGuild->nCharacterDBID, 0, L"[QUERY_GET_GUILDWAREHISTORY:%d/%d] Query Error\r\n"); } } else { g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, pGuild->nCharacterDBID, 0, L"[QUERY_GET_GUILDWAREHISTORY:%d] pWorldDB not found\r\n", pGuild->cWorldSetID); } } break; case QUERY_CHANGEGUILDWARESIZE: { TQChangeGuildWareSize *pGuild = reinterpret_cast(pData); pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB) { TAChangeGuildWareSize Guild; Guild.nRetCode = ERROR_DB; Guild.nAccountDBID = pGuild->nAccountDBID; Guild.nCharacterDBID = pGuild->nCharacterDBID; Guild.nGuildDBID = pGuild->nGuildDBID; Guild.cWorldSetID = pGuild->cWorldSetID; Guild.wStorageSize = pGuild->wStorageSize; Guild.nRetCode = pWorldDB->QueryChangeGuildWareSize(pGuild, &Guild); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(TAChangeGuildWareSize)); if (ERROR_NONE != Guild.nRetCode) { g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, pGuild->nCharacterDBID, 0, L"[QUERY_CHANGEGUILDWARESIZE:%d/%d] Query Error (Ret:%d)\r\n", Guild.nRetCode); } } else { g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, pGuild->nCharacterDBID, 0, L"[QUERY_CHANGEGUILDWARESIZE:%d] pWorldDB not found\r\n", pGuild->cWorldSetID); } } break; case QUERY_CHANGEGUILDMARK: { TQChangeGuildMark *pGuild = reinterpret_cast(pData); pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB) { TAChangeGuildMark Guild; Guild.nAccountDBID = pGuild->nAccountDBID; Guild.nCharacterDBID = pGuild->nCharacterDBID; Guild.nGuildDBID = pGuild->nGuildDBID; Guild.cWorldSetID = pGuild->cWorldSetID; Guild.wGuildMark = pGuild->wGuildMark; Guild.wGuildMarkBG = pGuild->wGuildMarkBG; Guild.wGuildMarkBorder = pGuild->wGuildMarkBorder; Guild.nRetCode = pWorldDB->QueryChangeGuildMark(pGuild, &Guild); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(TAChangeGuildMark)); if (ERROR_NONE != Guild.nRetCode) { g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, pGuild->nCharacterDBID, 0, L"[QUERY_CHANGEGUILDMARK:%d/%d] Query Error\r\n"); } } else { g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, pGuild->nCharacterDBID, 0, L"[QUERY_CHANGEGUILDMARK:%d] pWorldDB not found\r\n", pGuild->cWorldSetID); } } break; case QUERY_GETGUILDINFO: // ±æµå Á¤º¸ ¿äû { TQGetGuildInfo *pGuild = reinterpret_cast(pData); pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB){ std::vector vGuildMember; vGuildMember.clear(); TAGetGuildInfo Guild; memset(&Guild, 0, sizeof(Guild)); Guild.nRetCode = ERROR_DB; Guild.nGuildDBID = pGuild->nGuildDBID; Guild.cWorldSetID = pGuild->cWorldSetID; Guild.nRetCode = pWorldDB->QueryGetGuildInfo(pGuild->nGuildDBID, pGuild->cWorldSetID, &Guild); if (ERROR_NONE == Guild.nRetCode && pGuild->bNeedMembList) { Guild.nRetCode = pWorldDB->QueryGetGuildMemberList(pGuild->nGuildDBID, pGuild->cWorldSetID, vGuildMember); } m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(TAGetGuildInfo)); if( Guild.nRetCode == ERROR_NONE ) { TAGetGuildMember GuildMember; memset(&GuildMember, 0, sizeof(GuildMember)); GuildMember.nRetCode = Guild.nRetCode; GuildMember.nGuildDBID = pGuild->nGuildDBID; GuildMember.cWorldSetID = pGuild->cWorldSetID; GuildMember.bFirstPage = true; int nPacketSize = (sizeof(TAGetGuildMember) - sizeof(GuildMember.MemberList)); int nMaxSendMember = ((SERVERDETACHPACKETSIZE)-nPacketSize) / sizeof(GuildMember.MemberList[0]); if(nMaxSendMember > SENDGUILDMEMBER_MAX) nMaxSendMember = SENDGUILDMEMBER_MAX; for(std::vector::iterator itor = vGuildMember.begin(); itor != vGuildMember.end(); itor++) { GuildMember.MemberList[GuildMember.nCount++] = *itor; if(GuildMember.nCount >= nMaxSendMember) { if( itor + 1 == vGuildMember.end() ) GuildMember.bEndPage = true; int nSize = (sizeof(TAGetGuildMember) - sizeof(GuildMember.MemberList)) + (sizeof(GuildMember.MemberList[0]) * GuildMember.nCount); m_pConnection->AddSendData(nMainCmd, QUERY_GET_GUILDMEMBER, reinterpret_cast(&GuildMember), nSize); GuildMember.nCount = 0; memset( GuildMember.MemberList, 0, sizeof(GuildMember.MemberList)); GuildMember.bFirstPage = false; } } if( GuildMember.nCount > 0 ) { GuildMember.bEndPage = true; int nSize = (sizeof(TAGetGuildMember) - sizeof(GuildMember.MemberList)) + (sizeof(GuildMember.MemberList[0]) * GuildMember.nCount); m_pConnection->AddSendData(nMainCmd, QUERY_GET_GUILDMEMBER, reinterpret_cast(&GuildMember), nSize); } } if (ERROR_NONE != Guild.nRetCode) { g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, 0, 0, L"[QUERY_GETGUILDINFO:%d/%d] Query Error (Ret:%d)\r\n", pGuild->cWorldSetID, pGuild->bNeedMembList, Guild.nRetCode); } } else { g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, 0, 0, L"[QUERY_GETGUILDINFO:%d] pWorldDB not found\r\n", pGuild->cWorldSetID); } } break; case QUERY_CHANGEGUILDNAME : // ±æµå¸í º¯°æ { TQChangeGuildName *pGuild = reinterpret_cast(pData); pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if( pWorldDB ) { TAChangeGuildName Guild; Guild.nAccountDBID = pGuild->nAccountDBID; Guild.cWorldSetID = pGuild->cWorldSetID; Guild.nGuildDBID = pGuild->nGuildDBID; Guild.biItemSerial = pGuild->biItemSerial; _wcscpy(Guild.wszGuildName, _countof(Guild.wszGuildName), pGuild->wszGuildName, (int)wcslen(pGuild->wszGuildName)); Guild.nRetCode = pWorldDB->QueryModGuildName(pGuild); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(TAChangeGuildName)); } else { g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, 0, 0, L"[QUERY_CHANGEGUILDNAME:%d] pWorldDB not found\r\n", pGuild->cWorldSetID); } } break; case QUERY_ENROLL_GUILDWAR: // ±æµåÀü ½Åû { TQEnrollGuildWar *pGuild = reinterpret_cast(pData); TAEnrollGuildWar Guild; memset (&Guild, 0, sizeof(Guild)); Guild.cWorldSetID = pGuild->cWorldSetID; Guild.nAccountDBID = pGuild->nAccountDBID; Guild.nGuildDBID = pGuild->nGuildDBID; Guild.wScheduleID = pGuild->wScheduleID; Guild.nRetCode = ERROR_DB; pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB) { Guild.nRetCode = pWorldDB->QueryEnrollGuildWar(pGuild, &Guild); } else g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, 0, 0, L"[QUERY_ENROLL_GUILDWAR:%d] DB Error\r\n", pGuild->cWorldSetID); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(TAEnrollGuildWar)); } break; case QUERY_GET_GUILDWARSCHEDULE: // ±æµåÀü ÀÏÁ¤ Á¤º¸ °¡Á®¿À±â { TQGetGuildWarSchedule *pGuild = reinterpret_cast(pData); TAGetGuildWarSchedule Guild; memset (&Guild, 0, sizeof(Guild)); Guild.nAccountDBID = pGuild->nAccountDBID; Guild.nRetCode = ERROR_DB; pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB) { Guild.nRetCode = pWorldDB->QueryGetGuildWarSchedule(pGuild, &Guild); } else g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, 0, 0, L"[QUERY_GET_GUILDWARSCHEDULE:%d] DB Error\r\n", pGuild->cWorldSetID); if (Guild.wScheduleID == 0) Guild.wScheduleID = GUILDWARSCHEDULE_DEF; m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(TAGetGuildWarSchedule)); } break; case QUERY_GET_GUILDWARFINALSCHEDULE : // º»¼± ÀÏÁ¤ °¡Á®¿À±â { TQGetGuildWarFinalSchedule *pGuild = reinterpret_cast(pData); TAGetGuildWarFinalSchedule Guild; memset(&Guild, 0, sizeof(Guild)); Guild.nAccountDBID = pGuild->nAccountDBID; Guild.nRetCode = ERROR_DB; pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB) { Guild.nRetCode = pWorldDB->QueryGetGuildWarFinalSchedule(pGuild, &Guild); } else g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, 0, 0, L"[QUERY_GET_GUILDWARFINALSCHEDULE:%d] DB Error\r\n", pGuild->cWorldSetID); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(TAGetGuildWarFinalSchedule)); } break; case QUERY_ADD_GUILDWARPOINT : // ¿¹¼± ¹Ì¼Ç Ŭ¸®¾î½Ã Æ÷ÀÎÆ® Àû¸³ { TQAddGuildWarPointRecodrd *pGuild = reinterpret_cast(pData); TAAddGuildWarPointRecodrd Guild; memset(&Guild, 0, sizeof(Guild)); Guild.nAccountDBID = pGuild->nAccountDBID; Guild.nRetCode = ERROR_DB; Guild.nOpeningPoint = pGuild->nOpeningPoint; Guild.nGuildDBID = pGuild->nGuildDBID; Guild.cTeamColorCode = pGuild->cTeamColorCode; Guild.cWorldSetID = pGuild->cWorldSetID; pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB) { Guild.nRetCode = pWorldDB->QueryAddGuildWarPoint(pGuild); } else g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, pGuild->biCharacterDBID, 0, L"[QUERY_ADD_GUILDWARPOINT:%d] DB Error\r\n", pGuild->cWorldSetID); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(TQAddGuildWarPointRecodrd)); } break; case QUERY_GET_GUILDWARPOINT : // ¿¹¼± Æ÷ÀÎÆ® Á¶È¸ { TQGetGuildWarPoint *pGuild = reinterpret_cast(pData); TAGetGuildWarPoint Guild; memset(&Guild, 0, sizeof(Guild)); Guild.nAccountDBID = pGuild->nAccountDBID; Guild.cQueryType = pGuild->cQueryType; Guild.nRetCode = ERROR_DB; Guild.biDBID = pGuild->biDBID; pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB) { Guild.nRetCode = pWorldDB->QueryGetGuildWarPoint(pGuild, &Guild); } else g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, 0, 0, L"[QUERY_GET_GUILDWARPOINT:%d] DB Error\r\n", pGuild->cWorldSetID); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(TAGetGuildWarPoint)); } break; case QUERY_GET_GUILDWARPOINT_PARTTOTAL : // ºÎ¹®º° 1À§ Á¶È¸(°³ÀÎ) { TQGetGuildWarPointPartTotal *pGuild = reinterpret_cast(pData); TAGetGuildWarPointPartTotal Guild; memset(&Guild, 0, sizeof(Guild)); Guild.nAccountDBID = pGuild->nAccountDBID; Guild.cQueryType = pGuild->cQueryType; Guild.nRetCode = ERROR_DB; pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB) { Guild.nRetCode = pWorldDB->QueryGetGuildWarPointPartTotal(pGuild, &Guild); } else g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, pGuild->biCharacterDBID, 0, L"[QUERY_GET_GUILDWARPOINT_PARTTOTAL:%d] DB Error\r\n", pGuild->cWorldSetID); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(TAGetGuildWarPointPartTotal)); } break; case QUERY_GET_GUILDWARPOINT_GUILD_PARTTOTAL : // ºÎ¹®º° ±æµå ¼øÀ§ { TQGetGuildWarPointGuildPartTotal *pGuild = reinterpret_cast(pData); TAGetGuildWarPointGuildPartTotal Guild; memset(&Guild, 0, sizeof(Guild)); Guild.nAccountDBID = pGuild->nAccountDBID; Guild.cQueryType = pGuild->cQueryType; Guild.nRetCode = ERROR_DB; pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB) { Guild.nRetCode = pWorldDB->QueryGetGuildWarPointGuildPartTotal(pGuild, &Guild); } else g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, 0, 0, L"[QUERY_GET_GUILDWARPOINT_GUILD_PARTTOTAL:%d] DB Error\r\n", pGuild->cWorldSetID); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(TAGetGuildWarPointGuildPartTotal)); } break; case QUERY_GET_GUILDWARPOINT_DAILY : // ¿¹¼±Àü °¢ ÀÏÀÚº° 1À§ { TQGetGuildWarPointDaily *pGuild = reinterpret_cast(pData); TAGetGuildWarPointDaily Guild; memset(&Guild, 0, sizeof(Guild)); Guild.nAccountDBID = pGuild->nAccountDBID; Guild.nRetCode = ERROR_DB; pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB) { Guild.nRetCode = pWorldDB->QueryGetGuildWarPointDaily(pGuild->cWorldSetID, pGuild->nAccountDBID, &Guild); } else g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, 0, 0, L"[QUERY_GET_GUILDWARPOINT_DAILY:%d] DB Error\r\n", pGuild->cWorldSetID); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(TAGetGuildWarPointDaily)); } break; case QUERY_GET_GUILDWARPOINT_GUILD_TOTAL : // °¢ ±æµåÀÇ Æ÷ÀÎÆ® Áý°è ¼øÀ§ÇöȲ(¿©±â¼­ º»¼± ÁøÃâÆÀ Á¶È¸µµ °¡´ÉÇÔ) { TQGetGuildWarPointGuildTotal *pGuild = reinterpret_cast(pData); TAGetGuildWarPointGuildTotal Guild; memset(&Guild, 0, sizeof(Guild)); Guild.nAccountDBID = pGuild->nAccountDBID; Guild.cQueryType = pGuild->cQueryType; Guild.bMasterServer = pGuild->bMasterServer; Guild.nRetCode = ERROR_DB; pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB) { Guild.nRetCode = pWorldDB->QueryGetGuildWarPointGuildTotal(pGuild, &Guild); } else g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, 0, 0, L"[QUERY_GET_GUILDWARPOINT_GUILD_TOTAL:%d] DB Error\r\n", pGuild->cWorldSetID); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(TAGetGuildWarPointGuildTotal)-(sizeof(SGuildWarPointGuildTotal)*(GUILDWAR_FINALS_TEAM_MAX-Guild.nTotalCount))); } break; case QUERY_GET_GUILDWARPOINT_RUNNING_TOTAL : // ±æµåÀü ¿¹¼±Àü Á¡¼ö ÇöȲ(24À§±îÁö) { TQGetGuildWarPointRunningTotal *pGuild = reinterpret_cast(pData); TAGetGuildWarPointRunningTotal Guild; memset(&Guild, 0, sizeof(Guild)); Guild.nRetCode = ERROR_DB; pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB) { Guild.nRetCode = pWorldDB->QueryGetGuildWarPointRunningTotal(pGuild, &Guild); } else g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, 0, 0, L"[QUERY_GET_GUILDWARPOINT_RUNNING_TOTAL:%d] DB Error\r\n", pGuild->cWorldSetID); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(TAGetGuildWarPointRunningTotal)-(sizeof(Guild.sGuildWarPointGuildTotal[0])*(GUILDWAR_TRIAL_POINT_TEAM_MAX-Guild.nTotalCount)) ); } break; case QUERY_GET_GUILDWARPOINT_FINAL_REWARDS : { TQHeader* pGuild = reinterpret_cast(pData); TAGetGuildWarPointFinalRewards Guild; memset(&Guild, 0, sizeof(Guild)); Guild.nRetCode = ERROR_DB; pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB) { Guild.nRetCode = pWorldDB->QueryGetGuildWarFinalRewardPoint(&Guild); } else g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, 0, 0, L"[QUERY_GET_GUILDWARPOINT_FINAL_REWARDS:%d] DB Error\r\n", pGuild->cWorldSetID); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(TAGetGuildWarPointFinalRewards)); } break; case QUERY_ADD_GUILDWAR_FINAL_MATCHLIST : // º»¼± ´ëÁøÇ¥ ÀúÀå { TQAddGuildWarFinalMatchList *pGuild = reinterpret_cast(pData); TAAddGuildWarFinalMatchList Guild; memset(&Guild, 0, sizeof(Guild)); Guild.nAccountDBID = pGuild->nAccountDBID; Guild.nRetCode = ERROR_DB; pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB) { Guild.nRetCode = pWorldDB->QueryAddGuildWarFinalMatchList(pGuild); } else g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, 0, 0, L"[QUERY_ADD_GUILDWAR_FINAL_MATCHLIST:%d] DB Error\r\n", pGuild->cWorldSetID); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(TAAddGuildWarFinalMatchList)); } break; case QUERY_ADD_GUILDWARPOPULARITYVOTE : // Àαâ ÅõÇ¥ ÀúÀå { TQAddGuildWarPopularityVote *pGuild = reinterpret_cast(pData); TAAddGuildWarPopularityVote Guild; memset(&Guild, 0, sizeof(Guild)); Guild.nAccountDBID = pGuild->nAccountDBID; Guild.nRetCode = ERROR_DB; pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB) { Guild.nRetCode = pWorldDB->QueryAddGuildWarPopularityVote(pGuild); } else g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, pGuild->biCharacterDBID, 0, L"[QUERY_ADD_GUILDWARPOPULARITYVOTE:%d] DB Error\r\n", pGuild->cWorldSetID); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(TAAddGuildWarPopularityVote)); } break; case QUERY_GET_GUILDWARPOPULARITYVOTE : // Àαâ ÅõÇ¥ °á°ú { TQGetGuildWarPopularityVote *pGuild = reinterpret_cast(pData); TAGetGuildWarPopularityVote Guild; memset(&Guild, 0, sizeof(Guild)); Guild.nAccountDBID = pGuild->nAccountDBID; Guild.cQueryType = pGuild->cQueryType; Guild.nRetCode = ERROR_DB; pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB) { Guild.nRetCode = pWorldDB->QueryGetGuildWarPopularityVote(pGuild, &Guild); } else g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, pGuild->biCharacterDBID, 0, L"[QUERY_GET_GUILDWARPOPULARITYVOTE:%d] DB Error\r\n", pGuild->cWorldSetID); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(TAGetGuildWarPopularityVote)); } break; case QUERY_ADD_GUILDWARFINALRESULTS : // ±æµåÀü º»¼± °á°ú ÀúÀå { TQAddGuildWarFinalResults *pGuild = reinterpret_cast(pData); TAAddGuildWarFinalResults Guild; memset(&Guild, 0, sizeof(Guild)); Guild.nAccountDBID = pGuild->nAccountDBID; Guild.nRetCode = ERROR_DB; pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB) { Guild.nRetCode = pWorldDB->QueryAddGuildWarFinalResults(pGuild); } else g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, 0, 0, L"[QUERY_ADD_GUILDWARFINALRESULTS:%d] DB Error\r\n", pGuild->cWorldSetID); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(TAAddGuildWarFinalResults)); } break; case QUERY_GET_GUILDWARFINALRESULTS : // ±æµåÀü º»¼± °á°ú °¡Á®¿À±â { TQGetGuildWarFinalResults *pGuild = reinterpret_cast(pData); TAGetGuildWarFinalResults Guild; memset(&Guild, 0, sizeof(Guild)); Guild.nAccountDBID = pGuild->nAccountDBID; Guild.nRetCode = ERROR_DB; pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB) { Guild.nRetCode = pWorldDB->QueryGetGuildWarFinalResults(pGuild, &Guild); } else g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, 0, 0, L"[QUERY_GET_GUILDWARFINALRESULTS:%d] DB Error\r\n", pGuild->cWorldSetID); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(TAGetGuildWarFinalResults)); } break; case QUERY_GET_GUILDWAR_PRE_WIN_GUILD : // ±æµåÀü Áö³­ Â÷¼ö ¿ì½ÂÆÀ °¡Á®¿À±â { TQGetGuildWarPreWinGuild *pGuild = reinterpret_cast(pData); TAGetGuildWarPreWinGuild Guild; memset(&Guild, 0, sizeof(Guild)); Guild.nAccountDBID = pGuild->nAccountDBID; Guild.nRetCode = ERROR_DB; pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB) { Guild.nRetCode = pWorldDB->QueryGetGuildWarPreWinGuild(pGuild, &Guild); } else g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, 0, 0, L"[QUERY_GET_GUILDWARFINALRESULTS:%d] DB Error\r\n", pGuild->cWorldSetID); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(TAGetGuildWarPreWinGuild)); } break; case QUERY_ADD_GUILDWAR_REWARD_CHARACTER : // ±æµåÀü ¿¹¼± º¸»ó°á°ú ÀúÀå { TQAddGuildWarRewardCharacter *pGuild = reinterpret_cast(pData); TAAddGuildWarRewardCharacter Guild; memset(&Guild, 0, sizeof(Guild)); Guild.nAccountDBID = pGuild->nAccountDBID; Guild.cRewardType = pGuild->cRewardType; Guild.nRetCode = ERROR_DB; pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB) { Guild.nRetCode = pWorldDB->QueryAddGuildWarRewarForCharacter(pGuild); } else g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, pGuild->biCharacterDBID, 0, L"[QUERY_ADD_GUILDWAR_REWARD_CHARACTER:%d] DB Error\r\n", pGuild->cWorldSetID); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(TAAddGuildWarRewardCharacter)); } break; case QUERY_GET_GUILDWAR_REWARD_CHARACTER : // ±æµåÀü ¿¹¼± º¸»ó°á°ú °¡Á®¿À±â { TQGetGuildWarRewardCharacter *pGuild = reinterpret_cast(pData); TAGetGuildWarRewardCharacter Guild; memset(&Guild, 0, sizeof(Guild)); Guild.nAccountDBID = pGuild->nAccountDBID; Guild.nRetCode = ERROR_DB; pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB) { Guild.nRetCode = pWorldDB->QueryGetGuildWarRewarForCharacter(pGuild, &Guild); } else g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, pGuild->biCharacterDBID, 0, L"[QUERY_GET_GUILDWAR_REWARD_CHARACTER:%d] DB Error\r\n", pGuild->cWorldSetID); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(TAGetGuildWarRewardCharacter)); } break; case QUERY_ADD_GUILDWAR_REWARD_GUILD : { TQAddGuildWarRewardGuild *pGuild = reinterpret_cast(pData); TAAddGuildWarRewardGuild Guild; memset(&Guild, 0, sizeof(Guild)); Guild.nGuildDBID = pGuild->nGuildDBID; Guild.cRewardType = pGuild->cRewardType; Guild.cWorldSetID = pGuild->cWorldSetID; Guild.nRetCode = ERROR_DB; pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB) { Guild.nRetCode = pWorldDB->QueryAddGuildWarRewarForGuild(pGuild); } else g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, 0, 0, L"[QUERY_ADD_GUILDWAR_REWARD_GUILD:%d] DB Error\r\n", pGuild->cWorldSetID); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(TAAddGuildWarRewardGuild)); } break; case QUERY_GET_GUILDWAR_REWARD_GUILD : { TQGetGuildWarRewardGuild *pGuild = reinterpret_cast(pData); TAGetGuildWarRewardGuild Guild; memset(&Guild, 0, sizeof(Guild)); Guild.nGuildDBID = pGuild->nGuildDBID; Guild.cWorldSetID = pGuild->cWorldSetID; Guild.nRetCode = ERROR_DB; Guild.cQueryType = pGuild->cQueryType; pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB) { Guild.nRetCode = pWorldDB->QueryGetGuildWarRewarForGuild(pGuild, &Guild); } else g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, 0, 0, L"[QUERY_GET_GUILDWAR_REWARD_GUILD:%d] DB Error\r\n", pGuild->cWorldSetID); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(TAGetGuildWarRewardGuild)); } break; case QUERY_ADD_GUILDWAR_POINT_QUEUE : // ±æµåÀü º»¼± º¸»ó Æ÷ÀÎÆ® Áö±Þ(°³ÀÎ ÃàÁ¦Æ÷ÀÎÆ® Áö±Þ) { TQAddGuildWarPointQueue *pGuild = reinterpret_cast(pData); TAHeader Guild; memset(&Guild, 0, sizeof(Guild)); Guild.nAccountDBID = pGuild->nAccountDBID; Guild.nRetCode = ERROR_DB; pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB) { Guild.nRetCode = pWorldDB->QueryAddGuildWarPointQueue(pGuild); } else g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, 0, 0, L"[QUERY_ADD_GUILDWAR_POINT_QUEUE:%d] DB Error\r\n", pGuild->cWorldSetID); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(TAHeader)); } break; case QUERY_ADD_GUILDWAR_SYSTEM_MAIL_QUEUE : // ±æµåÀü º»¼± º¸»ó ¸ÞÀÏ º¸³»±â { TQSendSystemMail *pGuild = reinterpret_cast(pData); TAHeader Guild; memset(&Guild, 0, sizeof(Guild)); Guild.nAccountDBID = pGuild->nAccountDBID; Guild.nRetCode = ERROR_DB; pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB) { Guild.nRetCode = pWorldDB->QueryAddGuildWarSystemMailQueue(pGuild); } else g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, 0, 0, L"[QUERY_ADD_GUILDWAR_SYSTEM_MAIL_QUEUE:%d] DB Error\r\n", pGuild->cWorldSetID); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(TAHeader)); } break; case QUERY_ADD_GUILDWAR_MAKE_GIFT_QUEUE : // ±æµåÀü º»¼± º¸»ó ¼±¹° º¸³»±â(ij¸¯ÅÍ ¸®½ºÆ®·Î ¿È) { TQAddGuilWarMakeGiftQueue *pCash = (TQAddGuilWarMakeGiftQueue*)pData; TAHeader Cash; memset(&Cash, 0, sizeof(Cash)); Cash.nAccountDBID = pCash->nAccountDBID; Cash.nRetCode = ERROR_DB; pMembershipDB = g_SQLConnectionManager.FindMembershipDB(nThreadID); if (pMembershipDB) { // ¿©±âºÎÅÍ ±«·Î¿ò ½ÃÀÛ.. // ¸ÕÀú Ŭ·¡½ºº° ij¸¯ÅÍ ID»ÌÀÚ. string CharacterDBIDStr[CLASS_MAX]; char cClass = 0; for( int k=0; k< GUILDSIZE_MAX; ++k) { if( pCash->biCharacterDBIDs[k] <= 0 || pCash->cClass[k] <=0 || pCash->cClass[k] >= CLASS_MAX) break; cClass = pCash->cClass[k]; if (!CharacterDBIDStr[cClass].empty()){ CharacterDBIDStr[cClass].append("|"); } CharacterDBIDStr[cClass].append(boost::lexical_cast(pCash->biCharacterDBIDs[k])); } for (int k=CLASS_WARRIER; k< CLASS_MAX; ++k) { if( CharacterDBIDStr[k].empty() ) continue; std::wstring wstrText; int ItemSN[MAILATTACHITEMMAX] = { 0, }; int nLifeSpan = 7 * 24 * 60; // ÀÏ´Ü 7ÀÏÀ̶ó°í ±âȹ¼­¿¡ ½áÀÖ´Ù TGuildWarRewardData* pRewardData = g_pExtManager->GetGuildWarRewardData(pCash->cRewardType, k); if( pRewardData == NULL) continue; TMailTableData* pData = g_pExtManager->GetMailTableData(pRewardData->nPresentID); if( pData == NULL ) continue; wstrText = boost::io::str( boost::wformat(L"%d") % pData->nTextUIStringIndex ); for( int i=0; iItemSNArr[i] <= 0 ) continue; ItemSN[i] = pData->ItemSNArr[i]; } string ItemIDStr; TCashCommodityData CashData; TCashPackageData PackageData; for (int i = 0; i < MAILATTACHITEMMAX; i++) { if (ItemSN[i] <= 0) continue; memset(&PackageData, 0, sizeof(TCashPackageData)); bool bPackage = g_pExtManager->GetCashPackageData(ItemSN[i], PackageData); if (bPackage) { for (int j = 0; j < (int)PackageData.nVecCommoditySN.size(); j++) { memset(&CashData, 0, sizeof(TCashCommodityData)); bool bRet = g_pExtManager->GetCashCommodityData(PackageData.nVecCommoditySN[j], CashData); if (!bRet) continue; if (!ItemIDStr.empty()){ ItemIDStr.append("|"); } ItemIDStr.append(boost::lexical_cast(CashData.nItemID[0])); } Cash.nRetCode = pMembershipDB->QueryAddGiftSendSchedule(CharacterDBIDStr[k].c_str(), ItemSN[i], ItemIDStr.c_str(), const_cast(wstrText.c_str()), nLifeSpan, DBDNWorldDef::PayMethodCode::GuildWar_Reward, "127.0.0.1", true); } else { memset(&CashData, 0, sizeof(TCashCommodityData)); bool bRet = g_pExtManager->GetCashCommodityData(ItemSN[i], CashData); if (!bRet) continue; ItemIDStr = FormatA("%d", CashData.nItemID[0]); Cash.nRetCode = pMembershipDB->QueryAddGiftSendSchedule(CharacterDBIDStr[k].c_str(), ItemSN[i], ItemIDStr.c_str(), const_cast(wstrText.c_str()), nLifeSpan, DBDNWorldDef::PayMethodCode::GuildWar_Reward, "127.0.0.1", true); } } } } else{ g_Log.Log(LogType::_ERROR, pCash->cWorldSetID, pCash->nAccountDBID, 0, 0, L"[ADBID:%d] [QUERY_ADD_GUILDWAR_MAKE_GIFT_QUEUE:%d] MembershipDB not found\r\n", pCash->nAccountDBID, pCash->cWorldSetID); } if (Cash.nRetCode != ERROR_NONE) g_Log.Log(LogType::_ERROR, pCash->cWorldSetID, pCash->nAccountDBID, 0, 0, L"[ADBID:%d] [QUERY_ADD_GUILDWAR_MAKE_GIFT_QUEUE:%d] DB Error\r\n", pCash->nAccountDBID, pCash->cWorldSetID); m_pConnection->AddSendData(nMainCmd, nSubCmd, (char*)&Cash, sizeof(TAHeader)); } break; case QUERY_ADD_GUILDWAR_MAKE_GIFT_NOTGUILDINFO : { TQAddGuildWarMakeGiftNotGuildInfo* pGuild = (TQAddGuildWarMakeGiftNotGuildInfo*)pData; pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); //ÀÏ´Ü ¸ÕÀú ±æµå¿ø ¸â¹öÁ¤º¸¸¦ °¡Á®¿ÀÀÚ. if (pWorldDB) { std::vector vGuildMember; vGuildMember.clear(); int nRetCode = pWorldDB->QueryGetGuildMemberList(pGuild->nGuildDBID, pGuild->cWorldSetID, vGuildMember); if( nRetCode == ERROR_NONE ) { // ¿©±â¼­ ¼±¹° ³Ö¾îÁÖ±â.. pMembershipDB = g_SQLConnectionManager.FindMembershipDB(nThreadID); if (pMembershipDB) { // ¿©±âºÎÅÍ ±«·Î¿ò ½ÃÀÛ.. // ¸ÕÀú Ŭ·¡½ºº° ij¸¯ÅÍ ID»ÌÀÚ. string CharacterDBIDStr[CLASS_MAX]; char cClass = 0; for( std::vector::iterator itor = vGuildMember.begin() ; itor != vGuildMember.end();itor++) { if( itor->nCharacterDBID <= 0 ) break; //±âº» Ŭ·¡½º ²¨³»¿À±â.. TJobTableData* pJobData = g_pExtManager->GetJobTableData(itor->nJob); if( pJobData == NULL ) continue; cClass = pJobData->cClass; if (!CharacterDBIDStr[cClass].empty()){ CharacterDBIDStr[cClass].append("|"); } CharacterDBIDStr[cClass].append(boost::lexical_cast(itor->nCharacterDBID)); } for (int k=CLASS_WARRIER; k< CLASS_MAX; ++k) { std::wstring wstrText; int ItemSN[MAILATTACHITEMMAX] = { 0, }; int nLifeSpan = 7 * 24 * 60; // ÀÏ´Ü 7ÀÏÀ̶ó°í ±âȹ¼­¿¡ ½áÀÖ´Ù if( CharacterDBIDStr[k].empty() ) continue; TGuildWarRewardData* pRewardData = g_pExtManager->GetGuildWarRewardData(pGuild->cRewardType, k); if( pRewardData == NULL) continue; TMailTableData* pData = g_pExtManager->GetMailTableData(pRewardData->nPresentID); if( pData == NULL ) continue; wstrText = boost::io::str( boost::wformat(L"%d") % pData->nTextUIStringIndex ); for( int i=0; iItemSNArr[i] <= 0 ) continue; ItemSN[i] = pData->ItemSNArr[i]; } string ItemIDStr; TCashCommodityData CashData; TCashPackageData PackageData; for (int i = 0; i < MAILATTACHITEMMAX; i++) { if (ItemSN[i] <= 0) continue; memset(&PackageData, 0, sizeof(TCashPackageData)); bool bPackage = g_pExtManager->GetCashPackageData(ItemSN[i], PackageData); if (bPackage) { for (int j = 0; j < (int)PackageData.nVecCommoditySN.size(); j++) { memset(&CashData, 0, sizeof(TCashCommodityData)); bool bRet = g_pExtManager->GetCashCommodityData(PackageData.nVecCommoditySN[j], CashData); if (!bRet) continue; if (!ItemIDStr.empty()){ ItemIDStr.append("|"); } ItemIDStr.append(boost::lexical_cast(CashData.nItemID[0])); } nRetCode = pMembershipDB->QueryAddGiftSendSchedule(CharacterDBIDStr[k].c_str(), ItemSN[i], ItemIDStr.c_str(), const_cast(wstrText.c_str()), nLifeSpan, DBDNWorldDef::PayMethodCode::GuildWar_Reward, "127.0.0.1", true); } else { memset(&CashData, 0, sizeof(TCashCommodityData)); bool bRet = g_pExtManager->GetCashCommodityData(ItemSN[i], CashData); if (!bRet) continue; ItemIDStr = FormatA("%d", CashData.nItemID[0]); nRetCode = pMembershipDB->QueryAddGiftSendSchedule(CharacterDBIDStr[k].c_str(), ItemSN[i], ItemIDStr.c_str(), const_cast(wstrText.c_str()), nLifeSpan, DBDNWorldDef::PayMethodCode::GuildWar_Reward, "127.0.0.1", true); } } } } else{ g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, 0, 0, L"[ADBID:%d] [QUERY_ADD_GUILDWAR_MAKE_GIFT_NOTGUILDINFO:%d] MembershipDB not found\r\n", 0, pGuild->cWorldSetID); } } else g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, 0, 0, L"[QUERY_ADD_GUILDWAR_MAKE_GIFT_NOTGUILDINFO:%d] QueryGetGuildMemberList DB Error\r\n", nRetCode); } else g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, 0, 0, L"[QUERY_ADD_GUILDWAR_MAKE_GIFT_NOTGUILDINFO:%d] DB Error\r\n", pGuild->cWorldSetID); } break; case QUERY_GETLIST_GUILDWAR_ITEM_TRADE_RECORD: { TQGetListGuildWarItemTradeRecord* pGuild = reinterpret_cast(pData); pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB) { TAGetListGuildWarItemTradeRecord record; memset(&record, 0, sizeof(record)); record.nAccountDBID = pGuild->nAccountDBID; record.nRetCode = pWorldDB->QueryGetListGuildWarItemTradeRecord(pGuild->characterDBID, record); if (ERROR_NONE != record.nRetCode) g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, pGuild->characterDBID, 0, L"[QUERY_GETLIST_GUILDWAR_ITEM_TRADE_RECORD] query error (ret:%d)\r\n", record.nRetCode); int len = sizeof(TAGetListGuildWarItemTradeRecord) - sizeof(record.itemCount) + (sizeof(ItemCount) * record.count); if (len > 0) m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&record), len); } else g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, pGuild->characterDBID, 0, L"[QUERY_GETLIST_GUILDWAR_ITEM_TRADE_RECORD] worldDB not found\r\n"); } break; case QUERY_ADD_GUILDWAR_ITEM_TRADE_RECORD: { TQAddGuildWarItemTradeRecord* pGuild = reinterpret_cast(pData); pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB) { int retCode = pWorldDB->QueryAddGuildWarItemTradeRecord(pGuild->characterDBID, pGuild->itemCount); if (ERROR_NONE != retCode) g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, pGuild->characterDBID, 0, L"[QUERY_ADD_GUILDWAR_ITEM_TRADE_RECORD] query error (ret:%d)\r\n", retCode); } else g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, pGuild->characterDBID, 0, L"[QUERY_ADD_GUILDWAR_ITEM_TRADE_RECORD] worldDB not found\r\n"); } break; case QUERY_MOD_GUILDEXP: { TQModGuildExp *pGuild = reinterpret_cast(pData); pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB) { TAModGuildExp Guild; memset(&Guild, 0, sizeof(Guild)); Guild.nGuildDBID = pGuild->nGuildDBID; Guild.cWorldSetID = pGuild->cWorldSetID; Guild.cPointType = pGuild->cPointType; Guild.nPointValue = pGuild->nPointValue; Guild.nLevel = pGuild->nLevel; Guild.biCharacterDBID = pGuild->biCharacterDBID; Guild.nMissionID = pGuild->nMissionID; Guild.nRetCode = pWorldDB->QueryModGuildExp(pGuild, Guild); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(TAModGuildExp)); if (ERROR_NONE != Guild.nRetCode) g_Log.Log(LogType::_ERROR, Guild.cWorldSetID, Guild.nAccountDBID, pGuild->biCharacterDBID, 0, L"[QUERY_MOD_GUILDEXP] query error (ret:%d)\r\n", Guild.nRetCode); } else g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, pGuild->biCharacterDBID, 0, L"[QUERY_MOD_GUILDEXP] worldDB not found\r\n"); } break; case QUERY_MOD_GUILDCHEAT: { TQModGuildCheat *pGuild = reinterpret_cast(pData); pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB) { TAModGuildCheat Guild; memset(&Guild, 0, sizeof(Guild)); Guild.nGuildDBID = pGuild->nGuildDBID; Guild.cWorldSetID = pGuild->cWorldSetID; Guild.cCheatType = pGuild->cCheatType; Guild.nPoint = pGuild->nPoint; Guild.cLevel = pGuild->cLevel; Guild.nRetCode = pWorldDB->QueryModGuildCheat(pGuild, Guild); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(TAModGuildExp)); if (ERROR_NONE != Guild.nRetCode) g_Log.Log(LogType::_ERROR, Guild.cWorldSetID, Guild.nAccountDBID, 0, 0, L"[QUERY_MOD_GUILDCHEAT] query error (ret:%d)\r\n", Guild.nRetCode); } else g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, 0, 0, L"[QUERY_MOD_GUILDCHEAT] worldDB not found\r\n"); } break; case QUERY_GET_GUILDREWARDITEM: { TQGetGuildRewardItem *pGuild = reinterpret_cast(pData); pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB) { TAGetGuildRewardItem Guild; memset(&Guild, 0, sizeof(Guild)); Guild.nAccountDBID = pGuild->nAccountDBID; Guild.nGuildDBID = pGuild->nGuildDBID; Guild.cWorldSetID = pGuild->cWorldSetID; Guild.nRetCode = pWorldDB->QueryGetGuildRewardItem(pGuild, &Guild); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(TAGetGuildRewardItem)); if (ERROR_NONE != Guild.nRetCode) g_Log.Log(LogType::_ERROR, Guild.cWorldSetID, Guild.nAccountDBID, 0, 0, L"[QUERY_GET_GUILDREWARDITEM] query error (ret:%d)\r\n", Guild.nRetCode); } else g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, 0, 0, L"[QUERY_GET_GUILDREWARDITEM] worldDB not found\r\n"); } break; case QUERY_ADD_GUILDREWARDITEM: { TQAddGuildRewardItem *pGuild = reinterpret_cast(pData); pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB) { TAAddGuildRewardItem Guild; memset(&Guild, 0, sizeof(Guild)); Guild.nAccountDBID = pGuild->nAccountDBID; Guild.nGuildDBID = pGuild->nGuildDBID; Guild.cWorldSetID = pGuild->cWorldSetID; Guild.nItemID = pGuild->nItemID; Guild.cItemBuyType = pGuild->cItemBuyType; Guild.nRetCode = pWorldDB->QueryAddGuildRewardItem(pGuild, &Guild); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(TAGetGuildRewardItem)); if (ERROR_NONE != Guild.nRetCode) g_Log.Log(LogType::_ERROR, Guild.cWorldSetID, Guild.nAccountDBID, pGuild->biCharacterDBID, 0, L"[QUERY_GET_GUILDREWARDITEM] query error (ret:%d)\r\n", Guild.nRetCode); } else g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, pGuild->biCharacterDBID, 0, L"[QUERY_GET_GUILDREWARDITEM] worldDB not found\r\n"); } break; case QUERY_CHANGE_GUILDSIZE: { TQChangeGuildSize *pGuild = reinterpret_cast(pData); pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB) { TAChangeGuildSize Guild; memset(&Guild, 0, sizeof(Guild)); Guild.nAccountDBID = pGuild->nAccountDBID; Guild.nGuildDBID = pGuild->nGuildDBID; Guild.cWorldSetID = pGuild->cWorldSetID; Guild.nGuildSize = pGuild->nGuildSize; Guild.nRetCode = pWorldDB->QueryChangeGuildSize(pGuild); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(TAChangeGuildSize)); if (ERROR_NONE != Guild.nRetCode) g_Log.Log(LogType::_ERROR, Guild.cWorldSetID, Guild.nAccountDBID, 0, 0, L"[QUERY_CHANGE_GUILDSIZE] query error (ret:%d)\r\n", Guild.nRetCode); } else g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, 0, 0, L"[QUERY_CHANGE_GUILDSIZE] worldDB not found\r\n"); } break; case QUERY_DEL_GUILDREWARDITEM: { TQDelGuildEffectItem *pGuild = reinterpret_cast(pData); pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB) { int nRetCode = 0; nRetCode = pWorldDB->QueryDelGuildRewardItem(pGuild); if (ERROR_NONE != nRetCode) g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, pGuild->biCharacterDBID, 0, L"[QUERY_DEL_GUILDREWARDITEM] query error (ret:%d)\r\n", nRetCode); } else g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, pGuild->biCharacterDBID, 0, L"[QUERY_DEL_GUILDREWARDITEM] worldDB not found\r\n"); } break; #if defined(PRE_ADD_GUILD_CONTRIBUTION) case QUERY_GET_GUILDCONTRIBUTION_POINT: { TQGetGuildContributionPoint *pGuild = reinterpret_cast(pData); pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB) { TAGetGuildContributionPoint Guild; memset(&Guild, 0, sizeof(Guild)); Guild.nAccountDBID = pGuild->nAccountDBID; Guild.nRetCode = pWorldDB->QueryGetGuildContributionPoint(pGuild, Guild); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(TAGetGuildContributionPoint)); if (ERROR_NONE != Guild.nRetCode) g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, pGuild->biCharacterDBID, 0, L"[QUERY_GET_GUILDCONTRIBUTION_POINT] query error (ret:%d)\r\n", Guild.nRetCode); } else g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, pGuild->biCharacterDBID, 0, L"[QUERY_GET_GUILDCONTRIBUTION_POINT] worldDB not found\r\n"); } break; case QUERY_GET_GUILDCONTRIBUTION_WEEKLYRANKING: { TQGetGuildContributionRanking *pGuild = reinterpret_cast(pData); pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pGuild->cWorldSetID); if (pWorldDB) { TAGetGuildContributionRanking Guild; memset(&Guild, 0, sizeof(Guild)); Guild.nAccountDBID = pGuild->nAccountDBID; Guild.nRetCode = pWorldDB->QueryGetGuildContributionWeeklyRanking(pGuild, &Guild); if (ERROR_NONE != Guild.nRetCode) g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, 0, 0, L"[QUERY_GET_GUILDCONTRIBUTION_WEEKLYRANKING] query error (ret:%d)\r\n", Guild.nRetCode); m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast(&Guild), sizeof(TAGetGuildContributionRanking)); } else g_Log.Log(LogType::_ERROR, pGuild->cWorldSetID, pGuild->nAccountDBID, 0, 0, L"[QUERY_GET_GUILDCONTRIBUTION_WEEKLYRANKING] worldDB not found\r\n"); } break; #endif // #if defined(PRE_ADD_GUILD_CONTRIBUTION) } }