Thank you. It works.
I used it to give player random grenade, but I need to check if he already owns it.
PHP Code:
#include <sourcemod>
#include <sdktools>
char g_GrenadeWeaponNames[][] =
{
"weapon_flashbang",
"weapon_smokegrenade",
"weapon_hegrenade",
"weapon_decoy",
"weapon_incgrenade"
};
int g_GrenadeOffset[sizeof(g_GrenadeWeaponNames)];
public void OnMapStart()
{
if (!g_GrenadeOffset[0])
{
for (int i = 0; i < sizeof(g_GrenadeWeaponNames); i++)
{
int entindex = CreateEntityByName(g_GrenadeWeaponNames[i]);
DispatchSpawn(entindex);
g_GrenadeOffset[i] = GetEntProp(entindex, Prop_Send, "m_iPrimaryAmmoType");
AcceptEntityInput(entindex, "Kill");
}
}
}
void GiveRandomGrenade(int client)
{
int counter = 0;
for(int i = 0; i < 5; i++)
{
if(!HasPlayerGrenade(client, g_GrenadeOffset[i]))
{
counter++;
}
}
if(counter > 0)
{
char[][] tempArray = new char[counter][32];
int newcounter = 0;
for(int i = 0; i < 5 && newcounter < counter; i++)
{
if(!HasPlayerGrenade(client, g_GrenadeOffset[i]))
{
Format(tempArray[newcounter], 32, "%s", g_GrenadeWeaponNames[i]);
newcounter++;
}
}
//for(int i = 0; i < counter; i++)
//{
// PrintToChat(client, "%s\n", tempArray[i]);
//}
GivePlayerItem(client, tempArray[GetRandomInt(0, counter - 1)]);
}
}
bool HasPlayerGrenade(int client, int offset)
{
return GetEntProp(client, Prop_Send, "m_iAmmo", _, offset)>0;
}