Senior Member
Join Date: Sep 2018
Location: Ukraine
|
01-13-2019
, 17:00
Re: [CSGO] How to prevent reloading if you have too much ammo
|
#6
|
So this seems like working, but now when I'm holding reload button, server freezes.
I will try now to block weapon_reload event.
here s the code
PHP Code:
#include <sourcemod> #include <sdkhooks> #include <sdktools>
#define WEAPONS_MAX 34
char WeaponList[WEAPONS_MAX][] = { // pistols "weapon_deagle", // 0 "weapon_elite", // 1 "weapon_fiveseven", // 2 "weapon_glock", // 3 "weapon_cz75a", // 4 "weapon_p250", // 5 "weapon_hkp2000", // 6 "weapon_revolver", // 7 "weapon_tec9", // 8 "weapon_usp_silencer", // 9 // shotguns "weapon_xm1014", // 10 "weapon_mag7", // 11 "weapon_nova", // 12 "weapon_sawedoff", // 13 // smg "weapon_mac10", // 14 "weapon_p90", // 15 "weapon_ump45", // 16 "weapon_mp7", // 17 "weapon_mp9", // 18 "weapon_bizon", // 19 // nice guns "weapon_ak47", // 20 "weapon_aug", // 21 "weapon_famas", // 22 "weapon_galilar", // 23 "weapon_m4a1", // 24 "weapon_m4a1_silencer", // 25 "weapon_sg556", // 26 // snipers "weapon_awp", // 27 "weapon_g3sg1", // 28 "weapon_scar20", // 29 "weapon_ssg08", // 30 // machineguns "weapon_m249", // 31 "weapon_negev", // 32 //added later :) "weapon_mp5sd" // 33 };
int WeaponMaxAmmo[WEAPONS_MAX] = { 7, //0"weapon_deagle", 30, //1"weapon_elite", 20, //2"weapon_fiveseven", 20, //3"weapon_glock", 12, //4"weapon_cz75a", 13, //5"weapon_p250", 13, //6"weapon_hkp2000", 8, //7"weapon_revolver", 18, //8"weapon_tec9", 12, //9"weapon_usp_silencer", 7, //10"weapon_xm1014", 5, //11"weapon_mag7", 8, //12"weapon_nova", 7, //"weapon_sawedoff",13 30, //"weapon_mac10", 14 50, //"weapon_p90", 15 25, //"weapon_ump45", 16 30, //"weapon_mp7", 17 30, //"weapon_mp9", 18 64, //"weapon_bizon", 19 30, //"weapon_ak47", 20 30, //"weapon_aug",21 25, //"weapon_famas",22 35, //"weapon_galilar",23 30, //"weapon_m4a1", 24 20, //"weapon_m4a1_silencer",25 30, //"weapon_sg556", 26 10, //"weapon_awp", 27 20, //"weapon_g3sg1", 28 20, //"weapon_scar20", 29 10, //"weapon_ssg08", 30 100, //"weapon_m249", 31 150, //"weapon_negev" 32 30 //"weapon_mp5sd" 33 };
char classname[32]; public Action OnPlayerRunCmd(int client, int& buttons, int& impulse, float vel[3], float angles[3], int& weapon, int& subtype, int& cmdnum, int& tickcount, int& seed, int mouse[2]) { if(buttons & IN_RELOAD) { int WeaponIndex = GetEntPropEnt(client, Prop_Data, "m_hActiveWeapon"); if(IsValidEdict(WeaponIndex)) { int CurrentAmmo = GetEntProp(WeaponIndex, Prop_Send, "m_iClip1"); if(CurrentAmmo > 0) { GetClientWeapon(client, classname, 32); if(!StrEqual(classname, "weapon_knife")) { int WeaponArrayIndex = -1; for(int i = 0; i < WEAPONS_MAX; i++) { if(StrEqual(classname, WeaponList[i])) { WeaponArrayIndex = i; break; } } if(WeaponArrayIndex != -1) { if(WeaponMaxAmmo[WeaponArrayIndex] < CurrentAmmo) { return Plugin_Handled; } } else { LogError("Unknown weapon - %s", classname); } } } } } return Plugin_Continue; }
Last edited by impossible_cc; 01-13-2019 at 17:10.
|
|