BOOL CDbManager::PiercingConfirmGuildBank( int nGuildId, CItemContainer< CItemElem >* GuildBank ) { BOOL bUpdate = FALSE; if( prj.IsConvMode( PIERCING_CONFIRM ) ) { int nSize = GuildBank->m_dwItemMax; CItemElem* pItemElem; for( int i = 0 ; i < nSize; i++ ) { pItemElem = GuildBank->GetAtId( i ); if( pItemElem ) { ItemProp* pGetItemProp = prj.GetItemProp( pItemElem->m_dwItemId ); if( pGetItemProp && pGetItemProp->dwItemKind3 != IK3_SUIT && pItemElem->GetPiercingSize() != 0 ) { FILEOUT( "..\\RemoveItemPiercingConfirm.log", "nGuildId = %06d, ItemName : %s %d/%d/%d %d/%d/%d/%d/%d", nGuildId, pGetItemProp->szName, pItemElem->GetOption(), pItemElem->m_bItemResist, pItemElem->m_nResistAbilityOption, pItemElem->GetPiercingSize(), pItemElem->GetPiercingItem( 0 ), pItemElem->GetPiercingItem( 1 ), pItemElem->GetPiercingItem( 2 ), pItemElem->GetPiercingItem( 3 ) ); GuildBank->RemoveAtId( pItemElem->m_dwObjId ); bUpdate = TRUE; } } } } return bUpdate; }
void CPartyQuestProcessor::SetPartyQuest( int nQuestId, int nState, int ns, int nf, u_long idParty, OBJID objidWormon ) { if( nQuestId >= MAX_PARTY_QUEST ) { Error( "" ); return; } PARTYQUESTPROP* pProp = prj.GetPartyQuestProp( nQuestId ); if( !pProp ) { Error( "" ); return; } TRACE( "SET_PARTY_QUEST, %d, %d, %d\n", nQuestId, idParty, objidWormon ); PPARTYQUESTELEM pElem = &m_pElem[nQuestId]; pElem->nId = nQuestId; pElem->nState = nState; pElem->idParty = idParty; pElem->dwEndTime = GetTickCount() + MIN( 60 ); pElem->nProcess = PQP_WORMON; pElem->ns = ns; pElem->nf = nf; pElem->objidWormon = objidWormon; pElem->nCount = 0; // 유저에게 공략시간을 넘겨준다... SendQuestLimitTime( PQP_WORMON, MIN( 60 ), idParty ); // 파티퀘스트시작시 정보를 파일에 기록한다. CString strFileName = "StartPartyQuestInfo.txt"; CString strQuestInfo; CString strMemberName; CString strDateTime; CTime time = CTime::GetCurrentTime(); strDateTime.Format( "DATE : %d%.2d%.2d\nTIME : %d::%d::%d\n", time.GetYear(), time.GetMonth(), time.GetDay(), time.GetHour(), time.GetMinute(), time.GetSecond() ); strQuestInfo.Format( "QUEST ID = %d, PARTY ID = %d, WORMON ID = %d\n", nQuestId, idParty, objidWormon ); CParty* pParty = g_PartyMng.GetParty( idParty ); if( pParty ) { int i; for( i = 0 ; i < pParty->GetSizeofMember() ; ++i ) { CUser* pUsertmp = (CUser *)prj.GetUserByID( pParty->GetPlayerId( i ) ); if( IsValidObj( pUsertmp ) ) { strMemberName += pUsertmp->GetName(); strMemberName += "\n"; } } } FILEOUT( strFileName, "%s%s%s\n", strDateTime, strQuestInfo, strMemberName ); //////////////////////////////////////////////////////////////////////////////////////////// }
BOOL CDbManager::PiercingConfirmInventoryBank( CMover* pMover ) { BOOL bUpdate = FALSE; if( prj.IsConvMode( PIERCING_CONFIRM ) ) { // Inventory int nSize = pMover->m_Inventory.m_dwItemMax; CItemElem* pItemElem; for( int i = 0 ; i < nSize; i++ ) { pItemElem = pMover->m_Inventory.GetAtId( i ); if( pItemElem ) { ItemProp* pGetItemProp = prj.GetItemProp( pItemElem->m_dwItemId ); if( pGetItemProp && pGetItemProp->dwItemKind3 != IK3_SUIT && pItemElem->GetPiercingSize() != 0 ) { FILEOUT( "..\\RemoveItemPiercingConfirm.log", "IdPlayer = %07d, ItemName : %s %d/%d/%d %d/%d/%d/%d/%d", pMover->m_idPlayer, pGetItemProp->szName, pItemElem->GetOption(), pItemElem->m_bItemResist, pItemElem->m_nResistAbilityOption, pItemElem->GetPiercingSize(), pItemElem->GetPiercingItem( 0 ), pItemElem->GetPiercingItem( 1 ), pItemElem->GetPiercingItem( 2 ), pItemElem->GetPiercingItem( 3 ) ); pMover->m_Inventory.RemoveAtId( pItemElem->m_dwObjId ); bUpdate = TRUE; } } } // Bank nSize = pMover->m_Bank[0].m_dwItemMax; for( i = 0 ; i < nSize; i++ ) { pItemElem = pMover->m_Bank[0].GetAtId( i ); if( pItemElem ) { ItemProp* pGetItemProp = prj.GetItemProp( pItemElem->m_dwItemId ); if( pGetItemProp && pGetItemProp->dwItemKind3 != IK3_SUIT && pItemElem->GetPiercingSize() != 0 ) { FILEOUT( "..\\RemoveItemPiercingConfirm.log", "IdPlayer = %07d, ItemName : %s %d/%d/%d %d/%d/%d/%d/%d", pMover->m_idPlayer, pGetItemProp->szName, pItemElem->GetOption(), pItemElem->m_bItemResist, pItemElem->m_nResistAbilityOption, pItemElem->GetPiercingSize(), pItemElem->GetPiercingItem( 0 ), pItemElem->GetPiercingItem( 1 ), pItemElem->GetPiercingItem( 2 ), pItemElem->GetPiercingItem( 3 ) ); pMover->m_Bank[0].RemoveAtId( pItemElem->m_dwObjId ); bUpdate = TRUE; } } } } return bUpdate; }
BOOL CDbManager::RemoveItemGuildBank( int nGuildId, CItemContainer< CItemElem >* GuildBank, int* nCountItem0, int* nCountItem1 ) { BOOL bResult = FALSE; SET_STRING::iterator it; for( it = m_RemoveItem_List.begin() ; it != m_RemoveItem_List.end() ; ++it ) { ItemProp* pItemProp = NULL; pItemProp = prj.GetItemProp( it->data() ); if( pItemProp ) { int nSize = GuildBank->m_dwItemMax; CItemElem* pItemElem; for( int i = 0 ; i < nSize; i++ ) { pItemElem = GuildBank->GetAtId( i ); if( pItemElem ) { ItemProp* pGetItemProp = prj.GetItemProp( pItemElem->m_dwItemId ); if( pGetItemProp && pGetItemProp->dwID == pItemProp->dwID ) { if( pItemElem->m_bItemResist || pItemElem->GetOption() || pItemElem->m_nResistAbilityOption ) { FILEOUT( "..\\RemoveItem.log", "GuildId = %d, ItemName : %s %d/%d/%d", nGuildId, it->data(), pItemElem->GetOption(), pItemElem->m_bItemResist, pItemElem->m_nResistAbilityOption ); } GuildBank->RemoveAtId( pItemElem->m_dwObjId ); if( prj.IsConvMode( REMOVE_ITEM_ALL_PAY ) ) { if( lstrcmp( it->data(), "천운의 스태프" ) == 0 ) (*nCountItem0)++; if( lstrcmp( it->data(), "파황의 스태프" ) == 0 ) (*nCountItem1)++; } // FILEOUT( "..\\RemoveItem.log", "GuildId = %s, ItemName : %s", nGuildId, it->data() ); bResult = TRUE; } } } } } return bResult; }
BOOL CDbManager::RemoveInventoryBankListPanya( char* pszSQL, CMover* pMover, CQuery* pQueryChar, CQuery* pQuerySave, int nCountItem0, int nCountItem1 ) { if( prj.IsConvMode( REMOVE_ITEM_ALL_PAY ) ) { DWORD dwAddGold = GetRemoveItemPanya( nCountItem0, nCountItem1 ); sprintf( pszSQL, "UPDATE CHARACTER_TBL" " SET m_dwGold = m_dwGold + %d" " where m_idPlayer = '%07d' and serverindex = '%02d'", dwAddGold, pMover->m_idPlayer, g_appInfo.dwSys ); FILEOUT( "..\\RemoveItem.log", "IdPlayer = %07d, Item0 = %d, Item1 = %d, AddGold = %d", pMover->m_idPlayer, nCountItem0, nCountItem1, dwAddGold ); if( FALSE == pQuerySave->Exec( pszSQL ) ) { SAFE_DELETE( pQueryChar ); SAFE_DELETE( pQuerySave ); AfxMessageBox( pszSQL, MB_OK ); return FALSE; } } return TRUE; }
BOOL CDbManager::RemoveGuildBankListPanya( char* pszSQL, int nGuildId, CQuery* pQueryChar, CQuery* pQuerySave, int nCountItem0, int nCountItem1 ) { if( prj.IsConvMode( REMOVE_ITEM_ALL_PAY ) ) { DWORD dwAddGold = GetRemoveItemPanya( nCountItem0, nCountItem1 ); sprintf( pszSQL, "UPDATE GUILD_TBL" " SET m_nGuildGold = m_nGuildGold + %d" " where m_idGuild = '%06d' and serverindex = '%02d'", dwAddGold, nGuildId, g_appInfo.dwSys ); FILEOUT( "..\\RemoveItem.log", "GuildId = %d, Item0 = %d, Item1 = %d, AddGold = %d", nGuildId, nCountItem0, nCountItem1, dwAddGold ); if( FALSE == pQuerySave->Exec( pszSQL ) ) { SAFE_DELETE( pQueryChar ); SAFE_DELETE( pQuerySave ); AfxMessageBox( pszSQL, MB_OK ); return FALSE; } } return TRUE; }
BOOL CDbManager::RemoveItemInvenBank( CMover* pMover, int* nCountItem0, int* nCountItem1 ) { BOOL bResult = FALSE; SET_STRING::iterator it; for( it = m_RemoveItem_List.begin() ; it != m_RemoveItem_List.end() ; ++it ) { // Inven ItemProp* pItemProp = NULL; pItemProp = prj.GetItemProp( it->data() ); if( pItemProp ) { int nSize = pMover->m_Inventory.m_dwItemMax; CItemElem* pItemElem; for( int i = 0 ; i < nSize; i++ ) { pItemElem = pMover->m_Inventory.GetAtId( i ); if( pItemElem ) { ItemProp* pGetItemProp = prj.GetItemProp( pItemElem->m_dwItemId ); if( pGetItemProp && pGetItemProp->dwID == pItemProp->dwID ) { if( pItemElem->m_bItemResist || pItemElem->GetOption() || pItemElem->m_nResistAbilityOption ) { FILEOUT( "..\\RemoveItem.log", "IdPlayer = %07d, ItemName : %s %d/%d/%d", pMover->m_idPlayer, it->data(), pItemElem->GetOption(), pItemElem->m_bItemResist, pItemElem->m_nResistAbilityOption ); } pMover->m_Inventory.RemoveAtId( pItemElem->m_dwObjId ); if( prj.IsConvMode( REMOVE_ITEM_ALL_PAY ) ) { if( lstrcmp( it->data(), "천운의 스태프" ) == 0 ) (*nCountItem0)++; if( lstrcmp( it->data(), "파황의 스태프" ) == 0 ) (*nCountItem1)++; } // FILEOUT( "..\\RemoveItem.log", "PlayerName = %s, ItemName : %s", pMover->m_szName, it->data() ); bResult = TRUE; } } } // Bank nSize = pMover->m_Bank[0].m_dwItemMax; for( i = 0 ; i < nSize; i++ ) { pItemElem = pMover->m_Bank[0].GetAtId( i ); if( pItemElem ) { ItemProp* pGetItemProp = prj.GetItemProp( pItemElem->m_dwItemId ); if( pGetItemProp && pGetItemProp->dwID == pItemProp->dwID ) { if( pItemElem->m_bItemResist || pItemElem->GetOption() || pItemElem->m_nResistAbilityOption ) { FILEOUT( "..\\RemoveItem.log", "IdPlayer = %07d, ItemName : %s %d/%d/%d", pMover->m_idPlayer, it->data(), pItemElem->GetOption(), pItemElem->m_bItemResist, pItemElem->m_nResistAbilityOption ); } pMover->m_Bank[0].RemoveAtId( pItemElem->m_dwObjId ); if( prj.IsConvMode( REMOVE_ITEM_ALL_PAY ) ) { if( lstrcmp( it->data(), "천운의 스태프" ) == 0 ) (*nCountItem0)++; if( lstrcmp( it->data(), "파황의 스태프" ) == 0 ) (*nCountItem1)++; } // FILEOUT( "..\\RemoveItem.log", "PlayerName = %s, ItemName : %s", pMover->m_szName, it->data() ); bResult = TRUE; } } } } } return bResult; }