CSGO Support & No refill cvar.

This commit is contained in:
2017-08-03 21:15:54 +02:00
parent 6478d995b9
commit 7d2a16e2f6
4 changed files with 76 additions and 14 deletions

View File

@ -40,6 +40,10 @@
#define WEAPONAMMO_HEGRENADE_LIMIT 1
#define WEAPONAMMO_FLASHBANG_LIMIT 2
#define WEAPONAMMO_SMOKEGRENADE_LIMIT 1
#define WEAPONAMMO_INCENDIARY_LIMIT 1
#define WEAPONAMMO_MOLOTOV_LIMIT 1
#define WEAPONAMMO_DECOY_LIMIT 1
#define WEAPONAMMO_TACTICAL_LIMIT 1
/**
* @endsection
*/
@ -64,10 +68,16 @@ new g_iToolsAmmo;
*/
enum WeaponAmmoGrenadeType
{
GrenadeType_Invalid = -1, /** Invalid grenade slot. */
GrenadeType_HEGrenade = 11, /** HEGrenade slot */
GrenadeType_Flashbang = 12, /** Flashbang slot. */
GrenadeType_Smokegrenade = 13, /** Smokegrenade slot. */
GrenadeType_Invalid = -1, /** Invalid grenade slot. */
GrenadeType_HEGrenade = 11, /** CSS - HEGrenade slot */
GrenadeType_Flashbang = 12, /** CSS - Flashbang slot. */
GrenadeType_Smokegrenade = 13, /** CSS - Smokegrenade slot. */
GrenadeType_HEGrenadeCSGO = 14, /** CSGO - HEGrenade slot. */
GrenadeType_FlashbangCSGO = 15, /** CSGO - Flashbang slot. */
GrenadeType_SmokegrenadeCSGO = 16, /** CSGO - Smokegrenade slot. */
GrenadeType_Incendiary = 17, /** CSGO - Incendiary and Molotov slot. */
GrenadeType_Decoy = 18, /** CSGO - Decoy slot. */
GrenadeType_Tactical = 22, /** CSGO - Tactical slot. */
}
/**
@ -190,15 +200,40 @@ stock WeaponAmmoGrenadeType:WeaponAmmoEntityToGrenadeType(const String:weaponent
{
if (StrEqual(weaponentity, "weapon_hegrenade"))
{
return GrenadeType_HEGrenade;
if (g_Game == Game_CSGO)
return GrenadeType_HEGrenadeCSGO;
else
return GrenadeType_HEGrenade;
}
else if (StrEqual(weaponentity, "weapon_flashbang"))
{
return GrenadeType_Flashbang;
if (g_Game == Game_CSGO)
return GrenadeType_FlashbangCSGO;
else
return GrenadeType_Flashbang;
}
else if (StrEqual(weaponentity, "weapon_smokegrenade"))
{
return GrenadeType_Smokegrenade;
if (g_Game == Game_CSGO)
return GrenadeType_SmokegrenadeCSGO;
else
return GrenadeType_Smokegrenade;
}
else if (StrEqual(weaponentity, "weapon_molotov"))
{
return GrenadeType_Incendiary;
}
else if (StrEqual(weaponentity, "weapon_incgrenade"))
{
return GrenadeType_Incendiary;
}
else if (StrEqual(weaponentity, "weapon_decoy"))
{
return GrenadeType_Decoy;
}
else if (StrEqual(weaponentity, "weapon_tagrenade"))
{
return GrenadeType_Tactical;
}
return GrenadeType_Invalid;
@ -214,7 +249,7 @@ stock WeaponAmmoGrenadeType:WeaponAmmoEntityToGrenadeType(const String:weaponent
{
switch(grenadetype)
{
case GrenadeType_HEGrenade:
case GrenadeType_HEGrenade, GrenadeType_HEGrenadeCSGO:
{
// Attempt to find a cvar provided by an outside plugin.
new Handle:gplimit = FindConVar(GRENADE_PACK_CVAR_LIMIT);
@ -222,14 +257,26 @@ stock WeaponAmmoGrenadeType:WeaponAmmoEntityToGrenadeType(const String:weaponent
// If Grenade Pack is loaded and the cvar was found, then get the value of the outside cvar, if not return CS:S default.
return (g_bGrenadePack && gplimit != INVALID_HANDLE) ? GetConVarInt(gplimit) : WEAPONAMMO_HEGRENADE_LIMIT;
}
case GrenadeType_Flashbang:
case GrenadeType_Flashbang, GrenadeType_FlashbangCSGO:
{
return WEAPONAMMO_FLASHBANG_LIMIT;
}
case GrenadeType_Smokegrenade:
case GrenadeType_Smokegrenade, GrenadeType_SmokegrenadeCSGO:
{
return WEAPONAMMO_SMOKEGRENADE_LIMIT;
}
case GrenadeType_Incendiary:
{
return WEAPONAMMO_INCENDIARY_LIMIT;
}
case GrenadeType_Decoy:
{
return WEAPONAMMO_DECOY_LIMIT;
}
case GrenadeType_Tactical:
{
return WEAPONAMMO_TACTICAL_LIMIT;
}
}
return -1;

View File

@ -1059,7 +1059,8 @@ stock bool:ZMarketEquip(client, const String:weapon[], bool:rebuy = false)
// If client isn't rebuying the weapon, then tell them the weapon has been purchased.
TranslationPrintToChat(client, "Weapons zmarket purchase", weapondisplay);
if (IsValidEntity(entity) && !WeaponsIsClientInBuyZone(client))
new bool:zmarketnorefill = GetConVarBool(g_hCvarsList[CVAR_WEAPONS_ZMARKET_NOREFILL]);
if (IsValidEntity(entity) && !WeaponsIsClientInBuyZone(client) && zmarketnorefill)
{
int newclip = 0;
if (oldclip != -1)