After looking over it, some suggestions:
PHP Code:
public PlaySound(client, const String:s_Sound[32])
Theres no reason for this to be public
You might want to add a trigger delay/timer to your OnClientRunCmd because if everyone pressed USE at once and kept it pressed im fairly certain the server would feel a spike
PHP Code:
decl i_UserID, i_Victim, i_Attacker;
decl is not needed or useful for single Cell (=int) types
PHP Code:
if (GetConVarInt(c_SoundsOn)) {PlaySound(i_Victim, SOUND_LITTLEREWARD);}
if (GetConVarInt(c_SoundsOn)) {PlaySound(i_Attacker, SOUND_BIGREWARD);}
Why not just use one if
Consider using CheatClientCommand and the likes of "give pipe_bomb" instead, to fix equip issues
PHP Code:
ClientCommand(i_Attacker,g_Vocalize[i]);
I dont think Clientcommand vocalizing works. Does it?
PHP Code:
for (new client = 1; client < MaxClients; client++) {
// Client in game, team survivor, is alive, with no grenade
if (IsClientInGame(client) && GetClientTeam(client) == 2 && GetClientHealth(client) > 0 && GetPlayerWeaponSlot(client, 2) == -1) {
decl Float:f_TargetPos[3]; // = grenade (auto grab)
decl Float:f_ClientPos[3]; // = bot
decl Float:f_PlayerPos[3]; // = human player
decl String:s_EdictClassName[32];
decl String:s_Temp[32];
Put the local variables infront of the loop