You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
147 lines
2.9 KiB
147 lines
2.9 KiB
//========= Copyright Valve Corporation, All rights reserved. ============//
|
|
//
|
|
// Purpose:
|
|
//
|
|
//=============================================================================//
|
|
|
|
#include "cbase.h"
|
|
#include "cs_gamerules.h"
|
|
#include "cs_blackmarket.h"
|
|
#include "weapon_csbase.h"
|
|
#include "filesystem.h"
|
|
#include <KeyValues.h>
|
|
#include "cs_gamestats.h"
|
|
|
|
// memdbgon must be the last include file in a .cpp file!!!
|
|
#include "tier0/memdbgon.h"
|
|
|
|
extern int g_iRoundCount;
|
|
|
|
#ifndef CLIENT_DLL
|
|
inline void CBlackMarketElement::NetworkStateChanged()
|
|
{
|
|
}
|
|
|
|
|
|
inline void CBlackMarketElement::NetworkStateChanged( void *pVar )
|
|
{
|
|
}
|
|
|
|
blackmarket_items_t blackmarket_items[] =
|
|
{
|
|
{ "kevlar", KEVLAR_PRICE },
|
|
{ "assaultsuit", ASSAULTSUIT_PRICE },
|
|
{ "nightvision", NVG_PRICE },
|
|
};
|
|
|
|
|
|
CUtlVector<CBlackMarketElement> g_BlackMarket_WeaponsBought;
|
|
|
|
void TrackAutoBuyPurchases( const char *pWeaponName, CCSPlayer *pBuyer )
|
|
{
|
|
if ( pBuyer->IsInAutoBuy() == false )
|
|
return;
|
|
|
|
if ( pBuyer->IsInAutoBuy() == true )
|
|
{
|
|
if ( Q_stristr( pWeaponName, "m4a1" ) )
|
|
{
|
|
g_iAutoBuyM4A1Purchases++;
|
|
}
|
|
else if ( Q_stristr( pWeaponName, "ak47" ) )
|
|
{
|
|
g_iAutoBuyAK47Purchases++;
|
|
}
|
|
else if ( Q_stristr( pWeaponName, "famas" ) )
|
|
{
|
|
g_iAutoBuyFamasPurchases++;
|
|
}
|
|
else if ( Q_stristr( pWeaponName, "galil" ) )
|
|
{
|
|
g_iAutoBuyGalilPurchases++;
|
|
}
|
|
else if ( Q_stristr( pWeaponName, "assault" ) )
|
|
{
|
|
g_iAutoBuyVestHelmPurchases++;
|
|
}
|
|
else if ( Q_stristr( pWeaponName, "kevlar" ) )
|
|
{
|
|
g_iAutoBuyVestPurchases++;
|
|
}
|
|
}
|
|
}
|
|
|
|
void BlackMarketAddWeapon( const char *pWeaponName, CCSPlayer *pBuyer )
|
|
{
|
|
//Ignore bot purchases.
|
|
if ( pBuyer && pBuyer->IsBot() )
|
|
return;
|
|
|
|
CSWeaponID iWeaponID = AliasToWeaponID( pWeaponName );
|
|
|
|
TrackAutoBuyPurchases( pWeaponName, pBuyer );
|
|
|
|
if ( g_BlackMarket_WeaponsBought.Count() > 0 )
|
|
{
|
|
for ( int i = 0; i < g_BlackMarket_WeaponsBought.Count(); i++ )
|
|
{
|
|
if ( g_BlackMarket_WeaponsBought[i].m_iWeaponID == iWeaponID )
|
|
{
|
|
g_BlackMarket_WeaponsBought[i].m_iTimesBought++;
|
|
g_iWeaponPurchases[g_BlackMarket_WeaponsBought[i].m_iWeaponID]++;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
CBlackMarketElement newweapon;
|
|
|
|
newweapon.m_iWeaponID = iWeaponID;
|
|
newweapon.m_iTimesBought = 1;
|
|
newweapon.m_iPrice = 0;
|
|
g_iWeaponPurchases[newweapon.m_iWeaponID] = 1;
|
|
|
|
g_BlackMarket_WeaponsBought.AddToTail( newweapon );
|
|
}
|
|
|
|
int GetPistolCount( void )
|
|
{
|
|
int iNumPistol = 0;
|
|
|
|
for ( int j = 1; j < WEAPON_MAX; j++ )
|
|
{
|
|
CCSWeaponInfo *pWeaponInfo = GetWeaponInfo( (CSWeaponID)j );
|
|
|
|
if ( pWeaponInfo )
|
|
{
|
|
if ( pWeaponInfo->m_WeaponType == WEAPONTYPE_PISTOL )
|
|
{
|
|
iNumPistol++;
|
|
}
|
|
}
|
|
}
|
|
|
|
return iNumPistol;
|
|
}
|
|
|
|
int GetRifleCount( void )
|
|
{
|
|
int iNumRifle = 0;
|
|
|
|
for ( int j = 1; j < WEAPON_MAX; j++ )
|
|
{
|
|
CCSWeaponInfo *pWeaponInfo = GetWeaponInfo( (CSWeaponID)j );
|
|
|
|
if ( pWeaponInfo )
|
|
{
|
|
if ( pWeaponInfo->m_WeaponType != WEAPONTYPE_PISTOL )
|
|
{
|
|
iNumRifle++;
|
|
}
|
|
}
|
|
}
|
|
|
|
return iNumRifle + ARRAYSIZE( blackmarket_items );
|
|
}
|
|
|
|
#endif
|