I am creating a CSGO plugin and attempting to turn grenades into a ball; have the ability to be caught and picked up on the ground by all players. I already have some of the projectile logic working but can't seem to allow players the ability to touch the ball at all. Can anyone point me in the right direction? So far I have the following:
PHP Code:
public void OnEntityCreated(int entity, const char[] classname)
{
if(StrContains(classname, "_projectile") != -1) SDKHook(entity, SDKHook_SpawnPost, Grenade_SpawnPost);
if(StrContains(classname, "_projectile") != -1) SDKHook(entity, SDKHook_StartTouch, Catch);
}
public void Grenade_SpawnPost(int entity)
{
int client = GetEntPropEnt(entity, Prop_Send, "m_hOwnerEntity");
if (client == -1)return; // if the client's index is -1, stop
int iReference = EntIndexToEntRef(entity);
CreateTimer(0.1, Timer_OnGrenadeCreated, iReference);
}
public Action Timer_OnGrenadeCreated(Handle timer, any ref)
{
int entity = EntRefToEntIndex(ref);
if(entity != INVALID_ENT_REFERENCE)
{
SetEntProp(entity, Prop_Data, "m_nNextThinkTick", -1); // block grenade explosion
}
}
public void Catch (int client, int entity)
{
if (!IsValidEntity(entity))
return;
PrintToChatAll("the football has hit something");
}
At current, when a player throws a grenade/ball off the wall the player cannot catch the grenade; the grenade goes through the player's body. Do I need to set an ent's property or is one of my functions interfering in some way?