Error exchange advanced

04/10/2020 07:19 Techside#1
hi, now i am copy __EXCHANGE_ADV from Virtuos source to my source and have this error:
anyone me? =)
PHP Code:
f:\nova pasta\source\_common\pocket.h(10): noteconsulte a declaração de 'CItemContainer<CItemElem>'
f:\nova pasta\source\_common\exchangeadv.cpp(192): error C2039'GetItemCount'não é um membro de 'CItemContainer<CItemElem>' 
Code from this archives and respective line:
ExchangeAdv.cpp

Error in line: if( pUser->m_Inventory.GetItemCount( pExchangeItem->m_dwItemNeed ) < pExchangeItem->m_nPrice )

Pocket.h
Error in line: class CPocket : public CItemContainer<CItemElem>

Thanks all =)
*Using vs17.
04/10/2020 07:55 Tweeney#2
Ok, let's see. let's go to your error

Code:
note: consulte a declaração de 'CItemContainer<CItemElem>'
Hmm. I think it is on Item.h now lets search

Code:
 template <class T> class CItemContainer
Then let's scroll down and find " GetItemCount "

Oh, I see it.

Code:
	DWORD	Find( DWORD dwItemId )
		{
			if( dwItemId == 0 )
				return NULL_ID;
			for( int i = 0; i < (int)( m_dwIndexNum ); i++ )
			{
				DWORD nId	= m_apIndex[i];
				if( nId < 0 || nId >= m_dwItemMax )
					continue;
				if( m_apItem[nId].m_dwItemId == dwItemId )
					return nId;
			}
			return NULL_ID;
		}	
	DWORD	GetItemCount( DWORD dwItemId )
		{
			if( dwItemId == 0 )
				return 0;
			int nCount	= 0;
			for( int i = 0; i < (int)( m_dwItemMax ); i++ )
			{
				CItemElem* pItemElem	= (CItemElem*)&m_apItem[i];
				if( pItemElem->m_dwItemId == dwItemId )
					nCount	+= pItemElem->m_nItemNum;
			}
			return( nCount );
		}
#endif	// __JEFF_VER_8
#endif	// __CLIENT
Now let's try this

Code:
	DWORD	Find( DWORD dwItemId )
		{
			if( dwItemId == 0 )
				return NULL_ID;
			for( int i = 0; i < (int)( m_dwIndexNum ); i++ )
			{
				DWORD nId	= m_apIndex[i];
				if( nId < 0 || nId >= m_dwItemMax )
					continue;
				if( m_apItem[nId].m_dwItemId == dwItemId )
					return nId;
			}
			return NULL_ID;
		}	
#endif	// __JEFF_VER_8
#endif	// __CLIENT
	DWORD	GetItemCount( DWORD dwItemId )
		{
			if( dwItemId == 0 )
				return 0;
			int nCount	= 0;
			for( int i = 0; i < (int)( m_dwItemMax ); i++ )
			{
				CItemElem* pItemElem	= (CItemElem*)&m_apItem[i];
				if( pItemElem->m_dwItemId == dwItemId )
					nCount	+= pItemElem->m_nItemNum;
			}
			return( nCount );
		}
Hope its help