EXTENDED CURRENCY!

10/02/2016 16:32 jericho2nd#1
WNDMANAGER.CPP

under:
Code:
void CWndMgr::PutItemGold( CMover* pMover, CItemElem* pItemElem, CEditString* pEdit, int flag )

else if(lpCharacter->m_nVenderType == 1)
					nCost = pItemElem->GetChipCost();
add:
Code:
#ifdef __EXTENDED_CURRENCY
				else if(lpCharacter->m_nVenderType == 2)
					nCost = pItemElem->GetChipFarmCost();
				
				else if(lpCharacter->m_nVenderType == 3)
					nCost = pItemElem->GetChipLgCost();
				
				else if(lpCharacter->m_nVenderType == 4)
					nCost = pItemElem->GetChipDonateCost();
#endif // __EXTENDED_CURRENCY
under:
Code:
#if __VER >= 11 // __CSC_VER11_3
			if(lpCharacter && lpCharacter->m_nVenderType == 1)
			{
				CString temp;
				temp.Format(" %s", prj.GetText(TID_GAME_REDCHIP));
				strTemp += temp;
			}
add:
Code:
#ifdef __EXTENDED_CURRENCY
			if(lpCharacter && lpCharacter->m_nVenderType == 2)
			{
				CString temp;
				temp.Format(" %s", prj.GetText( TID_GAME_PERIN ));
				strTemp += temp;
			}
			if(lpCharacter && lpCharacter->m_nVenderType == 3)
			{
				CString temp;
				temp.Format(" %s", prj.GetText( TID_GAME_BLUE ));
				strTemp += temp;
			}
			if(lpCharacter && lpCharacter->m_nVenderType == 4)
			{
				CString temp;
				temp.Format(" %s", prj.GetText( TID_GAME_BLACK ));
				strTemp += temp;
			}
#endif // __EXTENDED_CURRENCY
WNDITEMCTRL.CPP

under:
Code:
void CWndItemCtrl::RanderIcon( C2DRender* p2DRender, CItemElem* pItemElem, int x, int y, int nParent, int nalpha ) 

#if __VER >= 11 // __CSC_VER11_3
		if( nParent == APP_SHOP_ )
		{
			CWndShop* pWndBase = (CWndShop*)g_WndMng.GetWndBase( APP_SHOP_ );
			LPCHARACTER lpCharacter = pWndBase->m_pMover->GetCharacter();
			if(lpCharacter && lpCharacter->m_nVenderType == 1)
			{
				if( bRander == 0 && g_pPlayer->m_Inventory.GetAtItemNum( II_CHP_RED ) < (int)pItemElem->GetChipCost() )
					bRander = 1;
			}
add:
Code:
#ifdef __EXTENDED_CURRENCY
			else if(lpCharacter && lpCharacter->m_nVenderType == 2)
			{
				if( bRander == 0 && g_pPlayer->m_Inventory.GetAtItemNum( II_SYS_SYS_SCR_PERIN ) < (int)pItemElem->GetChipFarmCost() )
					bRander = 1;
			}
			else if(lpCharacter && lpCharacter->m_nVenderType == 3)
			{
				if( bRander == 0 && g_pPlayer->m_Inventory.GetAtItemNum( II_CHP_BLUE ) < (int)pItemElem->GetChipLgCost() )
					bRander = 1;
			}
			else if(lpCharacter && lpCharacter->m_nVenderType == 4)
			{
				if( bRander == 0 && g_pPlayer->m_Inventory.GetAtItemNum( II_CHP_BLACK ) < (int)pItemElem->GetChipDonateCost() )
					bRander = 1;
			}

#endif // __EXTENDED_CURRENCY
WNDFIELD.CPP

under:
Code:
BOOL CWndInventory::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )

#if __VER >= 11 // __CSC_VER11_3
				CWndShop* pwndShop = (CWndShop*)g_WndMng.GetWndBase(APP_SHOP_);
				if(pwndShop)
				{
					LPCHARACTER lpCharacter = pwndShop->m_pMover->GetCharacter();
					if(lpCharacter->m_nVenderType == 1)
					{
						if(g_pPlayer->m_Inventory.GetAtItemNum( II_CHP_RED ) - (int)((CItemElem*)lpShortcut->m_dwData)->GetChipCost() >= 0) //±¸¸ÅÇÏ·Á´Â ǰ¸ñÀÇ Ä¨°³¼ö ÀÌ»óÀ» °¡Áö°í ÀÖ´ÂÁö È®ÀÎ.
						{
							SAFE_DELETE( m_pWndConfirmBuy );
							m_pWndConfirmBuy = new CWndConfirmBuy;
							m_pWndConfirmBuy->m_pItemElem = (CItemElem*)lpShortcut->m_dwData;
							m_pWndConfirmBuy->m_nBuyType = 1;
							m_pWndConfirmBuy->Initialize( this, APP_CONFIRM_BUY_ );
							bForbid = FALSE;
						}
						else
							g_WndMng.OpenMessageBox( _T( prj.GetText(TID_GAME_CANNT_BY_REDCHIP) ) );
					}
add:
Code:
#ifdef __EXTENDED_CURRENCY
					else if(lpCharacter->m_nVenderType == 2)
					{
						if(g_pPlayer->m_Inventory.GetAtItemNum( II_SYS_SYS_SCR_PERIN ) - (int)((CItemElem*)lpShortcut->m_dwData)->GetChipFarmCost() >= 0) //±¸¸ÅÇÏ·Á´Â ǰ¸ñÀÇ Ä¨°³¼ö ÀÌ»óÀ» °¡Áö°í ÀÖ´ÂÁö È®ÀÎ.
						{
							SAFE_DELETE( m_pWndConfirmBuy );
							m_pWndConfirmBuy = new CWndConfirmBuy;
							m_pWndConfirmBuy->m_pItemElem = (CItemElem*)lpShortcut->m_dwData;
							m_pWndConfirmBuy->m_nBuyType = 2;
							m_pWndConfirmBuy->Initialize( this, APP_CONFIRM_BUY_ );
							bForbid = FALSE;
						}
						else
							g_WndMng.OpenMessageBox( _T( prj.GetText(TID_GAME_CANNT_BY_PERIN) ) );
					}
					else if(lpCharacter->m_nVenderType == 3)
					{
						if(g_pPlayer->m_Inventory.GetAtItemNum( II_CHP_BLUE ) - (int)((CItemElem*)lpShortcut->m_dwData)->GetChipLgCost() >= 0) //±¸¸ÅÇÏ·Á´Â ǰ¸ñÀÇ Ä¨°³¼ö ÀÌ»óÀ» °¡Áö°í ÀÖ´ÂÁö È®ÀÎ.
						{
							SAFE_DELETE( m_pWndConfirmBuy );
							m_pWndConfirmBuy = new CWndConfirmBuy;
							m_pWndConfirmBuy->m_pItemElem = (CItemElem*)lpShortcut->m_dwData;
							m_pWndConfirmBuy->m_nBuyType = 3;
							m_pWndConfirmBuy->Initialize( this, APP_CONFIRM_BUY_ );
							bForbid = FALSE;
						}
						else
							g_WndMng.OpenMessageBox( _T( prj.GetText(TID_GAME_CANNT_BY_BLUE) ) );
					}
					else if(lpCharacter->m_nVenderType == 4)
					{
						if(g_pPlayer->m_Inventory.GetAtItemNum( II_CHP_BLACK ) - (int)((CItemElem*)lpShortcut->m_dwData)->GetChipDonateCost() >= 0) //±¸¸ÅÇÏ·Á´Â ǰ¸ñÀÇ Ä¨°³¼ö ÀÌ»óÀ» °¡Áö°í ÀÖ´ÂÁö È®ÀÎ.
						{
							SAFE_DELETE( m_pWndConfirmBuy );
							m_pWndConfirmBuy = new CWndConfirmBuy;
							m_pWndConfirmBuy->m_pItemElem = (CItemElem*)lpShortcut->m_dwData;
							m_pWndConfirmBuy->m_nBuyType = 4;
							m_pWndConfirmBuy->Initialize( this, APP_CONFIRM_BUY_ );
							bForbid = FALSE;
						}
						else
							g_WndMng.OpenMessageBox( _T( prj.GetText(TID_GAME_CANNT_BY_BLACK) ) );
					}
#endif // __EXTENDED_CURRENCY
WNDSHOP.CPP

under:
Code:
void CWndConfirmBuy::OnChangeBuyCount( DWORD dwBuy )

	else if(m_nBuyType == 1)
		dwCost = m_pItemElem->GetChipCost();
add:
Code:
#ifdef __EXTENDED_CURRENCY
	else if(m_nBuyType == 2)
		dwCost = m_pItemElem->GetChipFarmCost();
	else if(m_nBuyType == 3)
		dwCost = m_pItemElem->GetChipLgCost();
	else if(m_nBuyType == 4)
		dwCost = m_pItemElem->GetChipDonateCost();
#endif // __EXTENDED_CURRENCY
under:
Code:
BOOL CWndConfirmBuy::Initialize( CWndBase* pWndParent, DWORD dwWndId ) 

	else if(m_nBuyType == 1)
		dwCost = m_pItemElem->GetChipCost();
add:
Code:
#ifdef __EXTENDED_CURRENCY
	else if(m_nBuyType == 2)
		dwCost = m_pItemElem->GetChipFarmCost();
	else if(m_nBuyType == 3)
		dwCost = m_pItemElem->GetChipLgCost();
	else if(m_nBuyType == 4)
		dwCost = m_pItemElem->GetChipDonateCost();
#endif // __EXTENDED_CURRENCY
under:
Code:
void CWndConfirmBuy::OnOK()

#if __VER >= 11 // __CSC_VER11_3
	//¾Æ·¡ ¸Þ¼¼Áö ó¸® ÇÒ °Í
	DWORD dwCost;
	int nBuy;
add:
Code:
#ifdef __EXTENDED_CURRENCY	
	if(m_nBuyType == 4)
	{
		dwCost = m_pItemElem->GetChipDonateCost();
		if( m_pItemElem->m_nItemNum < 1 || dwCost == 0 )
		{
			g_WndMng.OpenMessageBox( _T( prj.GetText(TID_DIAG_0006) ) );	// ´Ù¸¥ »ç¿ëÀÚ¿¡°Ô ÆÈ·È½À´Ï´Ù.
			return;
		}

		nBuy = atoi( m_pEdit->GetString() );
		if( (int)( (nBuy * dwCost) ) > g_pPlayer->m_Inventory.GetAtItemNum( II_CHP_BLACK ) )
		{
			g_WndMng.OpenMessageBox( _T( prj.GetText(TID_GAME_CANNT_BY_BLACK ) ) );	// ĨÀÌ ºÎÁ·ÇÕ´Ï´Ù.	
			return;
		}
	}

	else if(m_nBuyType == 3)
	{
		dwCost = m_pItemElem->GetChipLgCost();
		if( m_pItemElem->m_nItemNum < 1 || dwCost == 0 )
		{
			g_WndMng.OpenMessageBox( _T( prj.GetText(TID_DIAG_0006) ) );	// ´Ù¸¥ »ç¿ëÀÚ¿¡°Ô ÆÈ·È½À´Ï´Ù.
			return;
		}

		nBuy = atoi( m_pEdit->GetString() );
		if( (int)( (nBuy * dwCost) ) > g_pPlayer->m_Inventory.GetAtItemNum( II_CHP_BLUE ) )
		{
			g_WndMng.OpenMessageBox( _T( prj.GetText(TID_GAME_CANNT_BY_BLUE) ) );	// ĨÀÌ ºÎÁ·ÇÕ´Ï´Ù.	
			return;
		}
	}

	else if(m_nBuyType == 2)
	{
		dwCost = m_pItemElem->GetChipFarmCost();
		if( m_pItemElem->m_nItemNum < 1 || dwCost == 0 )
		{
			g_WndMng.OpenMessageBox( _T( prj.GetText(TID_DIAG_0006) ) );	// ´Ù¸¥ »ç¿ëÀÚ¿¡°Ô ÆÈ·È½À´Ï´Ù.
			return;
		}

		nBuy = atoi( m_pEdit->GetString() );
		if( (int)( (nBuy * dwCost) ) > g_pPlayer->m_Inventory.GetAtItemNum( II_SYS_SYS_SCR_PERIN ) )
		{
			g_WndMng.OpenMessageBox( _T( prj.GetText(TID_GAME_CANNT_BY_PERIN) ) );	// ĨÀÌ ºÎÁ·ÇÕ´Ï´Ù.	
			return;
		}
	}
#endif // __EXTENDED_CURRENCY
above this:
Code:
CWndItemCtrlVendor::CWndItemCtrlVendor()
then find: under this
#if __VER >= 11 // __CSC_VER11_3
	if(m_nBuyType == 0)
		g_DPlay.SendBuyItem( cTab, (BYTE)( m_pItemElem->m_dwObjId ), nBuy, m_dwItemId );
	else if(m_nBuyType == 1)
		g_DPlay.SendBuyChipItem( cTab, (BYTE)( m_pItemElem->m_dwObjId ), nBuy, m_dwItemId );
add:
Code:
#ifdef __EXTENDED_CURRENCY
else if(m_nBuyType == 2)
		g_DPlay.SendBuyChipItem( cTab, (BYTE)( m_pItemElem->m_dwObjId ), nBuy, m_dwItemId );
else if(m_nBuyType == 3)
		g_DPlay.SendBuyChipItem( cTab, (BYTE)( m_pItemElem->m_dwObjId ), nBuy, m_dwItemId );
else if(m_nBuyType == 4)
		g_DPlay.SendBuyChipItem( cTab, (BYTE)( m_pItemElem->m_dwObjId ), nBuy, m_dwItemId );
#endif // __EXTENDED_CURRENCY
Project.cpp

under:
Code:
CProject::~CProject()

#if __VER >= 11 // __CSC_VER11_3
		for( j = 0; j < MAX_VENDOR_INVENTORY_TAB; j++ )
		{
			for( i = 0; i < lpCharacter->m_venderItemAry2[ j ].GetSize(); i++)
				safe_delete( (LPVENDOR_ITEM)lpCharacter->m_venderItemAry2[ j ].GetAt(i) );
		}
add:
Code:
#ifdef __EXTENDED_CURRENCY		
		for( j = 0; j < MAX_VENDOR_INVENTORY_TAB; j++ )
		{
			for( i = 0; i < lpCharacter->m_venderItemAry4[ j ].GetSize(); i++)
				safe_delete( (LPVENDOR_ITEM)lpCharacter->m_venderItemAry4[ j ].GetAt(i) );
		}
		for( j = 0; j < MAX_VENDOR_INVENTORY_TAB; j++ )
		{
			for( i = 0; i < lpCharacter->m_venderItemAry5[ j ].GetSize(); i++)
				safe_delete( (LPVENDOR_ITEM)lpCharacter->m_venderItemAry5[ j ].GetAt(i) );
		}
		for( j = 0; j < MAX_VENDOR_INVENTORY_TAB; j++ )
		{
			for( i = 0; i < lpCharacter->m_venderItemAry6[ j ].GetSize(); i++)
				safe_delete( (LPVENDOR_ITEM)lpCharacter->m_venderItemAry6[ j ].GetAt(i) );
		}
#endif // __EXTENDED_CURRENCY
under:
Code:
#if __VER >= 11 // __CSC_VER11_3
			else if( script.Token == "AddVenderItem2" || script.Token == "AddVendorItem2")
			{
				script.GetToken(); // (
				int nSlot = script.GetNumber(); script.GetToken(); // 
				DWORD dwId = script.GetNumber(); script.GetToken(); //

				LPVENDOR_ITEM pVendorItem = new VENDOR_ITEM;
				pVendorItem->m_dwItemId = dwId;
				lpCharacter->m_venderItemAry2[ nSlot ].Add( pVendorItem );
			}
add:
Code:
#ifdef __EXTENDED_CURRENCY			
			else if( script.Token == "AddVenderItem4" || script.Token == "AddVenderItem4")
			{
				script.GetToken(); // (
				int nSlot = script.GetNumber(); script.GetToken(); // 
				DWORD dwId = script.GetNumber(); script.GetToken(); //

				LPVENDOR_ITEM pVendorItem = new VENDOR_ITEM;
				pVendorItem->m_dwItemId = dwId;
				lpCharacter->m_venderItemAry4[ nSlot ].Add( pVendorItem );
			}
			else if( script.Token == "AddVenderItem5" || script.Token == "AddVenderItem5")
			{
				script.GetToken(); // (
				int nSlot = script.GetNumber(); script.GetToken(); // 
				DWORD dwId = script.GetNumber(); script.GetToken(); //

				LPVENDOR_ITEM pVendorItem = new VENDOR_ITEM;
				pVendorItem->m_dwItemId = dwId;
				lpCharacter->m_venderItemAry5[ nSlot ].Add( pVendorItem );
			} 
			else if( script.Token == "AddVenderItem6" || script.Token == "AddVenderItem6")
			{
				script.GetToken(); // (
				int nSlot = script.GetNumber(); script.GetToken(); // 
				DWORD dwId = script.GetNumber(); script.GetToken(); //

				LPVENDOR_ITEM pVendorItem = new VENDOR_ITEM;
				pVendorItem->m_dwItemId = dwId;
				lpCharacter->m_venderItemAry6[ nSlot ].Add( pVendorItem );
			}
#endif // __EXTENDED_CURRENCY
project.h

under:
Code:
#if __VER >= 11 // __CSC_VER11_3
	int				m_nVenderType;
	CPtrArray		m_venderItemAry2[ 4 ];
add:
Code:
#ifdef __EXTENDED_CURRENCY
	CPtrArray		m_venderItemAry4[ 4 ];
	CPtrArray		m_venderItemAry5[ 4 ];
	CPtrArray		m_venderItemAry6[ 4 ];
#endif // __EXTENDED_CURRENCY
mover.cpp

under:
Code:
void CMover::ProcessRegenItem()

#if __VER >= 11 // __CSC_VER11_3
				if(pCharacter->m_nVenderType == 1) // ĨÀ¸·Î °Å·¡ÇÏ´Â venderÀÏ °æ¿ì
				{
					if(pCharacter->m_venderItemAry2[i].GetSize())
					{
						fShop	= TRUE;
						m_ShopInventory[i]->Clear();		// m_packÀ» ´Ù ¾ø¾Ø´Ù.
						for( int j = 0; j < pCharacter->m_venderItemAry2[i].GetSize(); j++ )
						{
							pVendor	= (LPVENDOR_ITEM)pCharacter->m_venderItemAry2[i].GetAt(j);
							CItemElem itemElem;
							itemElem.m_dwItemId	= pVendor->m_dwItemId;
							itemElem.m_nItemNum	= (short)( prj.GetItemProp( pVendor->m_dwItemId )->dwPackMax );
							itemElem.m_nHitPoint = prj.GetItemProp( pVendor->m_dwItemId )->dwEndurance;
							if( (int)itemElem.GetChipCost() < 1 )
								Error( "chip cost < 1 : npc = %s, item = %d", pCharacter->m_szKey, pVendor->m_dwItemId );
							else
								m_ShopInventory[i]->Add( &itemElem );
						}
					}
				}
add:
Code:
#ifdef __EXTENDED_CURRENCY				
				else if(pCharacter->m_nVenderType == 2 )
				{
					if(pCharacter->m_venderItemAry4[i].GetSize())
					{
						fShop	= TRUE;
						m_ShopInventory[i]->Clear();		// m_packÀ» ´Ù ¾ø¾Ø´Ù.
						for( int j = 0; j < pCharacter->m_venderItemAry4[i].GetSize(); j++ )
						{
							pVendor	= (LPVENDOR_ITEM)pCharacter->m_venderItemAry4[i].GetAt(j);
							CItemElem itemElem;
							itemElem.m_dwItemId	= pVendor->m_dwItemId;
							itemElem.m_nItemNum	= (short)( prj.GetItemProp( pVendor->m_dwItemId )->dwPackMax );
							itemElem.m_nHitPoint = prj.GetItemProp( pVendor->m_dwItemId )->dwEndurance;
							if( (int)itemElem.GetChipFarmCost() < 1 )
								Error( "Farm Chip cost < 1 : npc = %s, item = %d", pCharacter->m_szKey, pVendor->m_dwItemId );
							else
								m_ShopInventory[i]->Add( &itemElem );
						}
					}
				}
				else if(pCharacter->m_nVenderType == 3 )
				{
                  if(pCharacter->m_venderItemAry5[i].GetSize())
					{
						fShop	= TRUE;
						m_ShopInventory[i]->Clear();		// m_packÀ» ´Ù ¾ø¾Ø´Ù.
						for( int j = 0; j < pCharacter->m_venderItemAry5[i].GetSize(); j++ )
						{
							pVendor	= (LPVENDOR_ITEM)pCharacter->m_venderItemAry5[i].GetAt(j);
							CItemElem itemElem;
							itemElem.m_dwItemId	= pVendor->m_dwItemId;
							itemElem.m_nItemNum	= (short)( prj.GetItemProp( pVendor->m_dwItemId )->dwPackMax );
							itemElem.m_nHitPoint = prj.GetItemProp( pVendor->m_dwItemId )->dwEndurance;
							if( (int)itemElem.GetChipLgCost() < 1 )
								Error( "LG Chip cost < 1 : npc = %s, item = %d", pCharacter->m_szKey, pVendor->m_dwItemId );
							else
								m_ShopInventory[i]->Add( &itemElem );
						}
					}
				}
				else if(pCharacter->m_nVenderType == 4 )
				{
                  if(pCharacter->m_venderItemAry6[i].GetSize())
					{
						fShop	= TRUE;
						m_ShopInventory[i]->Clear();		// m_packÀ» ´Ù ¾ø¾Ø´Ù.
						for( int j = 0; j < pCharacter->m_venderItemAry6[i].GetSize(); j++ )
						{
							pVendor	= (LPVENDOR_ITEM)pCharacter->m_venderItemAry6[i].GetAt(j);
							CItemElem itemElem;
							itemElem.m_dwItemId	= pVendor->m_dwItemId;
							itemElem.m_nItemNum	= (short)( prj.GetItemProp( pVendor->m_dwItemId )->dwPackMax );
							itemElem.m_nHitPoint = prj.GetItemProp( pVendor->m_dwItemId )->dwEndurance;
							if( (int)itemElem.GetChipDonateCost() < 1 )
								Error( "Donate Chip cost < 1 : npc = %s, item = %d", pCharacter->m_szKey, pVendor->m_dwItemId );
							else
								m_ShopInventory[i]->Add( &itemElem );
						}
					}
				}
#endif // __EXTENDED_CURRENCY
under:
Code:
BOOL CMover::IsVendorNPC()

#if __VER >= 11 // __CSC_VER11_3
	if(pCharacter->m_nVenderType == 1)
	for( int i = 0; i < MAX_VENDOR_INVENTORY_TAB; i++ )
	{
		if( pCharacter->m_venderItemAry2[i].GetSize() )
			return TRUE;
	}
add:
Code:
#ifdef __EXTENDED_CURRENCY // IKnow zu viele for schleifen hdf XD	
	if(pCharacter->m_nVenderType == 2) // Farm Chips
	for( int i = 0; i < MAX_VENDOR_INVENTORY_TAB; i++ )
	{
		if( pCharacter->m_venderItemAry4[i].GetSize() )
			return TRUE;
	}
	if(pCharacter->m_nVenderType == 3) // Lg Chips
    for( int i = 0; i < MAX_VENDOR_INVENTORY_TAB; i++ )
	{
		if( pCharacter->m_venderItemAry5[i].GetSize() )
			return TRUE;
	}
	if(pCharacter->m_nVenderType == 4) // Donate Chips
	for( int i = 0; i < MAX_VENDOR_INVENTORY_TAB; i++ )
	{
		if( pCharacter->m_venderItemAry6[i].GetSize() )
			return TRUE;
	}
#endif // __EXTENDED_CURRENCY
under:
Code:
BOOL CMover::SetDataMTE( const char* alphaTex, const char* eff2ndTex )

	pData->_pTex[ 0 ] = TexturePool::Get()->GetTexture( DIR_SFXTEX, std::string(szAlphaTexture) );
	pData->_pTex[ 1 ] = TexturePool::Get()->GetTexture( DIR_SFXTEX, std::string(eff2ndTex) );

	if( NULL == pData->_pTex[ 0 ] || NULL == pData->_pTex[ 1 ] )
	{
		Error( "Failed loading MTE texture %s or %s", szAlphaTexture, eff2ndTex );
		return FALSE;
	}
	
	//ok... now you can use this data
	return TRUE;
}

#endif //__BS_EFFECT_LUA
add:
Code:
#ifdef __EXTENDED_CURRENCY
int CMover::GetChipFarmNum()
{
	int nCount	= 0;
	for( int i = 0; i < m_Inventory.GetMax(); i++ )
	{
		CItemElem* pItem	= static_cast<CItemElem*>( GetItemId( i ) );
		if( pItem && ::IsUsableItem( pItem ) )
		{
			if( pItem->GetProp()->dwID == II_SYS_SYS_SCR_PERIN )
				nCount	+= pItem->m_nItemNum;
		}
	}
	return nCount;
}

int CMover::GetChipLgNum()
{
	int nCount	= 0;
	for( int i = 0; i < m_Inventory.GetMax(); i++ )
	{
		CItemElem* pItem	= static_cast<CItemElem*>( GetItemId( i ) );
		if( pItem && ::IsUsableItem( pItem ) )
		{
			if( pItem->GetProp()->dwID == II_CHP_BLUE )
				nCount	+= pItem->m_nItemNum;
		}
	}
	return nCount;
}

int CMover::GetChipDonateNum()
{
	int nCount	= 0;
	for( int i = 0; i < m_Inventory.GetMax(); i++ )
	{
		CItemElem* pItem	= static_cast<CItemElem*>( GetItemId( i ) );
		if( pItem && ::IsUsableItem( pItem ) )
		{
			if( pItem->GetProp()->dwID == II_CHP_BLACK )
				nCount	+= pItem->m_nItemNum;
		}
	}
	return nCount;
}
#endif // __EXTENDED_CURRENCY
mover.h

under:
Code:
#ifdef __CHIP_PLAYERSHOP
	int						GetChipNum();
add:
Code:
#ifdef __EXTENDED_CURRENCY
	int						GetChipFarmNum();
	int						GetChipLgNum();
	int						GetChipDonateNum();
#endif // __EXTENDED_CURRENCY
DPSrvr.cpp

under:
Code:
void CDPSrvr::OnBuyChipItem( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )

find this:
if( lpChar && lpChar->m_nVenderType != 1 )	// 2 - Ĩ »óÀÎ
replace by:
Code:
#ifdef __EXTENDED_CURRENCY		
		if( lpChar && lpChar->m_nVenderType != 1 && lpChar->m_nVenderType != 2 && lpChar->m_nVenderType != 3 && lpChar->m_nVenderType != 4)	// 1 - Ĩ »óÀÎ
			return;
#else
		if( lpChar && lpChar->m_nVenderType != 1 )	// 2 - Ĩ »óÀÎ
			return;
#endif //__EXTENDED_CURRENCY
find this:
Code:
		if( lpChar && lpChar->m_nVenderType == 1 && pUser->m_Inventory.GetAtItemNum( II_CHP_RED ) < (int)( pItemElem->GetChipCost() * nNum ) )
		{
			pUser->AddDefinedText( TID_GAME_LACKCHIP );
			return;
		}
replace by:
Code:
#ifdef __EXTENDED_CURRENCY	
		if( lpChar && ( lpChar->m_nVenderType == 1 && pUser->m_Inventory.GetAtItemNum( II_CHP_RED ) < (int)( pItemElem->GetChipCost() * nNum ) ) )
		{
			pUser->AddDefinedText( TID_GAME_LACKCHIP );
			return;
		}
		if( lpChar->m_nVenderType == 2 && pUser->m_Inventory.GetAtItemNum( II_SYS_SYS_SCR_PERIN ) < (int)( pItemElem->GetChipFarmCost() * nNum ) )
		{
			pUser->AddDefinedText( TID_GAME_LACKCHIP );
			return;
		}
		if( lpChar->m_nVenderType == 3 && pUser->m_Inventory.GetAtItemNum( II_CHP_BLUE ) < (int)( pItemElem->GetChipLgCost() * nNum ) )
		{
			pUser->AddDefinedText( TID_GAME_LACKCHIP );
			return;
		}
		if( lpChar->m_nVenderType == 4 && pUser->m_Inventory.GetAtItemNum( II_CHP_BLACK ) < (int)( pItemElem->GetChipDonateCost() * nNum ) )
		{
			pUser->AddDefinedText( TID_GAME_LACKCHIP );
			return;
		}
#else	// __EXTENDED_CURRENCY
		if( lpChar && lpChar->m_nVenderType == 1 && pUser->m_Inventory.GetAtItemNum( II_CHP_RED ) < (int)( pItemElem->GetChipCost() * nNum ) )
		{
			pUser->AddDefinedText( TID_GAME_LACKCHIP );
			return;
		}
#endif // __EXTENDED_CURRENCY
under:
Code:
		if( lpChar && lpChar->m_nVenderType == 1 )
		{
			if( pUser->m_Inventory.IsFull( pItemElem, pItemElem->GetProp(), nNum ) )
			{
				int nChipNum = pItemElem->GetChipCost() * nNum;
				ItemProp* pChipItemProp = prj.GetItemProp( II_CHP_RED );

				if( nChipNum < (int)( pChipItemProp->dwPackMax ) )
				{
					CItemElem* pTempElem;
					int bEmpty = FALSE;

					for( int i = 0; i < pUser->m_Inventory.GetSize(); i++ )
					{
						pTempElem = pUser->m_Inventory.GetAtId( i );

						if( IsUsableItem(pTempElem) && pChipItemProp->dwID == pTempElem->m_dwItemId )
						{
							if( pTempElem->m_nItemNum <= nChipNum )
								bEmpty = TRUE;

							break;
						}
					}
			
					if( !bEmpty )
					{
						pUser->AddDefinedText( TID_GAME_LACKSPACE, "" );
						return;
					}
				}
			}
		
			DWORD dwChipCost = pItemElem->GetChipCost() * nNum;

			if( dwChipCost > 0x7fff )
			{
				for( ; dwChipCost > 0x7fff; )
				{
					pUser->RemoveItemA( II_CHP_RED, 0x7fff );
					dwChipCost -= 0x7fff;
				}
			}

			pUser->RemoveItemA( II_CHP_RED, (short)dwChipCost );

			CItemElem itemElem;
			itemElem	= *pItemElem;
			itemElem.m_nItemNum = nNum;
			itemElem.SetSerialNumber();

			if( pUser->CreateItem( &itemElem ) )
			{
				// ·Î±× ³²±è
				LogItemInfo aLogItem;
				aLogItem.Action = "B";
				aLogItem.SendName = pUser->GetName();
				CString strTemp;
				strTemp.Format( "%s_C", pVendor->GetName() );
				aLogItem.RecvName = (LPCTSTR)strTemp;
				aLogItem.WorldId = pUser->GetWorld()->GetID();
				aLogItem.Gold = pUser->GetItemNum( II_CHP_RED ) + itemElem.GetChipCost() * nNum;
				aLogItem.Gold2 = pUser->GetItemNum( II_CHP_RED );
				aLogItem.Gold_1 = (DWORD)( (-1) * (int)( (itemElem.GetChipCost() * nNum) ) );
				OnLogItem( aLogItem, &itemElem, nNum );
			}	
			else
			{
				LogItemInfo aLogItem;
				aLogItem.Action = "B";
				aLogItem.SendName = pUser->GetName();
				CString strTemp;
				strTemp.Format( "%s_CF", pVendor->GetName() );
				aLogItem.RecvName = (LPCTSTR)strTemp;
				aLogItem.WorldId = pUser->GetWorld()->GetID();
				aLogItem.Gold = pUser->GetItemNum( II_CHP_RED ) + itemElem.GetChipCost() * nNum;
				aLogItem.Gold2 = pUser->GetItemNum( II_CHP_RED );
				aLogItem.Gold_1 = (DWORD)( (-1) * (int)( (itemElem.GetChipCost() * nNum) ) );
				OnLogItem( aLogItem, &itemElem, nNum );
			}
		}
add:
Code:
#ifdef __EXTENDED_CURRENCY
		if( lpChar && lpChar->m_nVenderType == 2 )
		{
			if( pUser->m_Inventory.IsFull( pItemElem, pItemElem->GetProp(), nNum ) )
			{
				int nChipNum = pItemElem->GetChipFarmCost() * nNum;
				ItemProp* pChipItemProp = prj.GetItemProp( II_SYS_SYS_SCR_PERIN );

				if( nChipNum < (int)( pChipItemProp->dwPackMax ) )
				{
					CItemElem* pTempElem;
					int bEmpty = FALSE;

					for( int i = 0; i < pUser->m_Inventory.GetSize(); i++ )
					{
						pTempElem = pUser->m_Inventory.GetAtId( i );

						if( IsUsableItem(pTempElem) && pChipItemProp->dwID == pTempElem->m_dwItemId )
						{
							if( pTempElem->m_nItemNum <= nChipNum )
								bEmpty = TRUE;	
							break;
						}
					}
			
					if( !bEmpty )
					{
						pUser->AddDefinedText( TID_GAME_LACKSPACE, "" );
						return;
					}
				}
			}
		
			DWORD dwChipCost = pItemElem->GetChipFarmCost() * nNum;

			if( dwChipCost > 0x7fff )
			{
				for( ; dwChipCost > 0x7fff; )
				{
					pUser->RemoveItemA( II_SYS_SYS_SCR_PERIN, 0x7fff );
					dwChipCost -= 0x7fff;
				}
			}

			pUser->RemoveItemA( II_SYS_SYS_SCR_PERIN, (short)dwChipCost );

			CItemElem itemElem;
			itemElem	= *pItemElem;
			itemElem.m_nItemNum = nNum;
			itemElem.SetSerialNumber();

			if( pUser->CreateItem( &itemElem ) )
			{
				// ·Î±× ³²±è
				LogItemInfo aLogItem;
				aLogItem.Action = "B";
				aLogItem.SendName = pUser->GetName();
				CString strTemp;
				strTemp.Format( "%s_C", pVendor->GetName() );
				aLogItem.RecvName = (LPCTSTR)strTemp;
				aLogItem.WorldId = pUser->GetWorld()->GetID();
				aLogItem.Gold = pUser->GetItemNum( II_SYS_SYS_SCR_PERIN ) + itemElem.GetChipFarmCost() * nNum;
				aLogItem.Gold2 = pUser->GetItemNum( II_SYS_SYS_SCR_PERIN );
				aLogItem.Gold_1 = (DWORD)( (-1) * (int)( (itemElem.GetChipFarmCost() * nNum) ) );
				OnLogItem( aLogItem, &itemElem, nNum );
			}	
			else
			{
				LogItemInfo aLogItem;
				aLogItem.Action = "B";
				aLogItem.SendName = pUser->GetName();
				CString strTemp;
				strTemp.Format( "%s_CF", pVendor->GetName() );
				aLogItem.RecvName = (LPCTSTR)strTemp;
				aLogItem.WorldId = pUser->GetWorld()->GetID();
				aLogItem.Gold = pUser->GetItemNum( II_SYS_SYS_SCR_PERIN ) + itemElem.GetChipFarmCost() * nNum;
				aLogItem.Gold2 = pUser->GetItemNum( II_SYS_SYS_SCR_PERIN );
				aLogItem.Gold_1 = (DWORD)( (-1) * (int)( (itemElem.GetChipFarmCost() * nNum) ) );
				OnLogItem( aLogItem, &itemElem, nNum );
			}
		}
		
		if( lpChar && lpChar->m_nVenderType == 3 )
		{
			if( pUser->m_Inventory.IsFull( pItemElem, pItemElem->GetProp(), nNum ) )
			{
				int nChipNum = pItemElem->GetChipLgCost() * nNum;
				ItemProp* pChipItemProp = prj.GetItemProp( II_CHP_BLUE );

				if( nChipNum < (int)( pChipItemProp->dwPackMax ) )
				{
					CItemElem* pTempElem;
					int bEmpty = FALSE;

					for( int i = 0; i < pUser->m_Inventory.GetSize(); i++ )
					{
						pTempElem = pUser->m_Inventory.GetAtId( i );

						if( IsUsableItem(pTempElem) && pChipItemProp->dwID == pTempElem->m_dwItemId )
						{
							if( pTempElem->m_nItemNum <= nChipNum )
								bEmpty = TRUE;	
							break;
						}
					}
			
					if( !bEmpty )
					{
						pUser->AddDefinedText( TID_GAME_LACKSPACE, "" );
						return;
					}
				}
			}
		
			DWORD dwChipCost = pItemElem->GetChipLgCost() * nNum;

			if( dwChipCost > 0x7fff )
			{
				for( ; dwChipCost > 0x7fff; )
				{
					pUser->RemoveItemA( II_CHP_BLUE, 0x7fff );
					dwChipCost -= 0x7fff;
				}
			}

			pUser->RemoveItemA( II_CHP_BLUE, (short)dwChipCost );

			CItemElem itemElem;
			itemElem	= *pItemElem;
			itemElem.m_nItemNum = nNum;
			itemElem.SetSerialNumber();

			if( pUser->CreateItem( &itemElem ) )
			{
				// ·Î±× ³²±è
				LogItemInfo aLogItem;
				aLogItem.Action = "B";
				aLogItem.SendName = pUser->GetName();
				CString strTemp;
				strTemp.Format( "%s_C", pVendor->GetName() );
				aLogItem.RecvName = (LPCTSTR)strTemp;
				aLogItem.WorldId = pUser->GetWorld()->GetID();
				aLogItem.Gold = pUser->GetItemNum( II_CHP_BLUE ) + itemElem.GetChipLgCost() * nNum;
				aLogItem.Gold2 = pUser->GetItemNum( II_CHP_BLUE );
				aLogItem.Gold_1 = (DWORD)( (-1) * (int)( (itemElem.GetChipLgCost() * nNum) ) );
				OnLogItem( aLogItem, &itemElem, nNum );
			}	
			else
			{
				LogItemInfo aLogItem;
				aLogItem.Action = "B";
				aLogItem.SendName = pUser->GetName();
				CString strTemp;
				strTemp.Format( "%s_CF", pVendor->GetName() );
				aLogItem.RecvName = (LPCTSTR)strTemp;
				aLogItem.WorldId = pUser->GetWorld()->GetID();
				aLogItem.Gold = pUser->GetItemNum( II_CHP_BLUE ) + itemElem.GetChipLgCost() * nNum;
				aLogItem.Gold2 = pUser->GetItemNum( II_CHP_BLUE );
				aLogItem.Gold_1 = (DWORD)( (-1) * (int)( (itemElem.GetChipLgCost() * nNum) ) );
				OnLogItem( aLogItem, &itemElem, nNum );
			}
		}
		
		if( lpChar && lpChar->m_nVenderType == 4 )
		{
			if( pUser->m_Inventory.IsFull( pItemElem, pItemElem->GetProp(), nNum ) )
			{
				int nChipNum = pItemElem->GetChipDonateCost() * nNum;
				ItemProp* pChipItemProp = prj.GetItemProp( II_CHP_BLACK );

				if( nChipNum < (int)( pChipItemProp->dwPackMax ) )
				{
					CItemElem* pTempElem;
					int bEmpty = FALSE;

					for( int i = 0; i < pUser->m_Inventory.GetSize(); i++ )
					{
						pTempElem = pUser->m_Inventory.GetAtId( i );

						if( IsUsableItem(pTempElem) && pChipItemProp->dwID == pTempElem->m_dwItemId )
						{
							if( pTempElem->m_nItemNum <= nChipNum )
								bEmpty = TRUE;	
							break;
						}
					}
			
					if( !bEmpty )
					{
						pUser->AddDefinedText( TID_GAME_LACKSPACE, "" );
						return;
					}
				}
			}
		
			DWORD dwChipCost = pItemElem->GetChipDonateCost() * nNum;

			if( dwChipCost > 0x7fff )
			{
				for( ; dwChipCost > 0x7fff; )
				{
					pUser->RemoveItemA( II_CHP_BLACK, 0x7fff );
					dwChipCost -= 0x7fff;
				}
			}

			pUser->RemoveItemA( II_CHP_BLACK, (short)dwChipCost );

			CItemElem itemElem;
			itemElem	= *pItemElem;
			itemElem.m_nItemNum = nNum;
			itemElem.SetSerialNumber();

			if( pUser->CreateItem( &itemElem ) )
			{
				// ·Î±× ³²±è
				LogItemInfo aLogItem;
				aLogItem.Action = "B";
				aLogItem.SendName = pUser->GetName();
				CString strTemp;
				strTemp.Format( "%s_C", pVendor->GetName() );
				aLogItem.RecvName = (LPCTSTR)strTemp;
				aLogItem.WorldId = pUser->GetWorld()->GetID();
				aLogItem.Gold = pUser->GetItemNum( II_CHP_BLACK ) + itemElem.GetChipDonateCost() * nNum;
				aLogItem.Gold2 = pUser->GetItemNum( II_CHP_BLACK );
				aLogItem.Gold_1 = (DWORD)( (-1) * (int)( (itemElem.GetChipDonateCost() * nNum) ) );
				OnLogItem( aLogItem, &itemElem, nNum );
			}	
			else
			{
				LogItemInfo aLogItem;
				aLogItem.Action = "B";
				aLogItem.SendName = pUser->GetName();
				CString strTemp;
				strTemp.Format( "%s_CF", pVendor->GetName() );
				aLogItem.RecvName = (LPCTSTR)strTemp;
				aLogItem.WorldId = pUser->GetWorld()->GetID();
				aLogItem.Gold = pUser->GetItemNum( II_CHP_BLACK ) + itemElem.GetChipDonateCost() * nNum;
				aLogItem.Gold2 = pUser->GetItemNum( II_CHP_BLACK );
				aLogItem.Gold_1 = (DWORD)( (-1) * (int)( (itemElem.GetChipDonateCost() * nNum) ) );
				OnLogItem( aLogItem, &itemElem, nNum );
			}
		}
#endif // __EXTENDED_CURRENCY
	}
#ifdef __SYSSECURITY
}
catch(...)
{
	Error("Error on Line %d in %s",__LINE__,__FILE__);
}
#endif
}
#endif // __GUILDCOMBATCHIP
Define to Versioncommon.h [Neuz, Worldserver].
Code:
#define __EXTENDED_CURRENCY
[Only registered and activated users can see links. Click Here To Register...]

Credits: GOW SOURCE :)
10/02/2016 16:44 Drabur#2
PHP Code:
#ifdef __EXTENDED_CURRENCY
DWORD CItemBase::GetChipFarmCost()
{
    
ItemProp *pProp GetProp();
    if( 
pProp == NULL )        
        return -
1;
    if( 
pProp->dwReferValue1 == 0xFFFFFFFF )    
        return -
1;

    return 
pProp->dwReferValue1;
}

DWORD CItemBase::GetChipLgCost()
{
    
ItemProp *pProp GetProp();
    if( 
pProp == NULL )        
        return -
1;
    if( 
pProp->dwReferValue1 == 0xFFFFFFFF )    
        return -
1;

    return 
pProp->dwReferValue1;
}

DWORD CItemBase::GetChipDonateCost()
{
    
ItemProp *pProp GetProp();
    if( 
pProp == NULL )        
        return -
1;
    if( 
pProp->dwReferValue1 == 0xFFFFFFFF )    
        return -
1;

    return 
pProp->dwReferValue1;
}
#endif    // __EXTENDED_CURRENCY 
for real?
10/02/2016 16:52 jericho2nd#3
Quote:
Originally Posted by Drabur View Post
PHP Code:
#ifdef __EXTENDED_CURRENCY
DWORD CItemBase::GetChipFarmCost()
{
    
ItemProp *pProp GetProp();
    if( 
pProp == NULL )        
        return -
1;
    if( 
pProp->dwReferValue1 == 0xFFFFFFFF )    
        return -
1;

    return 
pProp->dwReferValue1;
}

DWORD CItemBase::GetChipLgCost()
{
    
ItemProp *pProp GetProp();
    if( 
pProp == NULL )        
        return -
1;
    if( 
pProp->dwReferValue1 == 0xFFFFFFFF )    
        return -
1;

    return 
pProp->dwReferValue1;
}

DWORD CItemBase::GetChipDonateCost()
{
    
ItemProp *pProp GetProp();
    if( 
pProp == NULL )        
        return -
1;
    if( 
pProp->dwReferValue1 == 0xFFFFFFFF )    
        return -
1;

    return 
pProp->dwReferValue1;
}
#endif    // __EXTENDED_CURRENCY 
for real?
oh sorry:D :D :D. this is for private shop :D
10/02/2016 16:54 Drabur#4
its just stupid 3 times the same code? just a other name for this function
code like gpotato
10/02/2016 18:02 Pradaa#5
too lazy to read all that , can you explain what it is ?
10/02/2016 18:15 Virage'#6
[Only registered and activated users can see links. Click Here To Register...]
@[Only registered and activated users can see links. Click Here To Register...]
:facepalm:
10/02/2016 18:20 Pradaa#7
Quote:
Originally Posted by Virage' View Post
[Only registered and activated users can see links. Click Here To Register...]
@[Only registered and activated users can see links. Click Here To Register...]
:facepalm:
I didn't asked for a title -_-
10/02/2016 19:07 Mike Oxmaul#8
Quote:
Originally Posted by Pradaa View Post
I didn't asked for a title -_-
title says what it is.. what is wrong with you?
10/03/2016 02:05 Pradaa#9
Quote:
Originally Posted by Jupsi332 View Post
title says what it is.. what is wrong with you?
i'm just asking for explanation or even screens

cause i don't understand that title lmao

cause i don't understand that title :mad:
10/03/2016 08:43 justcallmeidol09#10
its for private shop like you vend item for Red Chip etc..
10/03/2016 10:57 Rhyder`#11
what about this? o.O
[Only registered and activated users can see links. Click Here To Register...]
10/03/2016 14:13 Virage'#12
Quote:
Originally Posted by Pradaa View Post
i'm just asking for explanation or even screens

cause i don't understand that title lmao

cause i don't understand that title :mad:
Ich kann echt nicht glauben was man an "Extended Currency" nicht verstehen kann?!

Neue Chip Währungen z.B. statt nur Red Chips gibt es jetzt Blue Chips oder whatever..

Wenn du den Titel so offensichtlich wie er dort steht schon nicht verstehst dann kann man ja wohl immer noch Google Translate oder irgendeine andere Übersetzungmaschine benutzen.

Krasser Typ
10/03/2016 15:38 Ecrypter#13
Extended currency is for a npc shop.
10/03/2016 15:51 kevinkraus#14
@[Only registered and activated users can see links. Click Here To Register...] ist genau so in der GoW Source drin.
@[Only registered and activated users can see links. Click Here To Register...] i dont know if its useful because its already released.

Mit freundlichen Grüßen,
- Kevin
10/17/2017 18:18 RhisisChaos#15
where is the item.h and item.cpp?