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 |