Code:
#include <sdktools>
#define ZPS_TEAM_NONE 0 // player running on map but haven't choose team
#define ZPS_TEAM_SPECTATOR 1 // observer
#define ZPS_TEAM_HUMAN 2 // human
#define ZPS_TEAM_ZOMBIE 3 // zombie
char items[][] = {
//"item_ammo_barricade",
//"item_ammo_barricade_clip",
//"item_ammo_barricadepile",
//"item_ammo_flare",
"item_ammo_pistol",
"item_ammo_pistol_clip",
"item_ammo_revolver",
"item_ammo_revolver_clip",
"item_ammo_rifle",
"item_ammo_rifle_clip",
"item_ammo_shotgun",
"item_ammo_shotgun_clip",
"item_armor",
//"item_deliver",
"item_healthkit",
"item_pills"
}
public void OnPluginStart()
{
HookEvent("player_feed", player_feed)
}
public void player_feed(Event event, const char[] name, bool dontBroadcast)
{
if(!event.GetBool("death") || !event.GetBool("headshot"))
return;
int client = GetClientOfUserId(event.GetInt("userid"));
if(GetClientTeam(client) == ZPS_TEAM_ZOMBIE) // && ZPS_IsCarrier(client))
{
char weapon[50];
event.GetString("weapon", weapon, sizeof(weapon));
if(StrContains(weapon, "sledgehammer", false) == -1)
return;
float pos[3];
GetClientEyePosition(client, pos);
DataPack pack = new DataPack();
pack.WriteFloatArray(pos, sizeof(pos));
RequestFrame(delay, pack);
}
}
public void delay(DataPack data)
{
data.Reset();
float pos[3];
data.ReadFloatArray(pos, sizeof(pos));
delete data;
int item = CreateEntityByName(items[GetRandomInt(0, sizeof(items)-1)]);
if(item != -1)
{
TeleportEntity(item, pos, NULL_VECTOR, NULL_VECTOR);
DispatchSpawn(item);
}
}
stock bool ZPS_IsCarrier(int client)
{
if(HasEntProp(client, Prop_Send, "m_bIsCarrier") &&
GetEntProp(client, Prop_Send, "m_bIsCarrier"))
{
return true;
}
return false;
}
__________________