예제 #1
0
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;
}
예제 #2
0
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 );
	////////////////////////////////////////////////////////////////////////////////////////////
}
예제 #3
0
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;
}
예제 #4
0
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;
}
예제 #5
0
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;
}
예제 #6
0
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;
}
예제 #7
0
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;
}