Code:
stock DispatchParticleEffect(p_ParticleType, const Float:p_Origin[3], const Float:p_Angle[3], const p_Clients[], p_ClientCount, p_Parent = INVALID_ENT_REFERENCE, Float:p_Delay = 0.0)
{
TE_Start("EffectDispatch");
TE_WriteNum("m_nHitBox", p_ParticleType);
TE_WriteFloat("m_vOrigin.x", p_Origin[0]);
TE_WriteFloat("m_vOrigin.y", p_Origin[1]);
TE_WriteFloat("m_vOrigin.z", p_Origin[2]);
TE_WriteFloat("m_vStart.x", p_Origin[0]);
TE_WriteFloat("m_vStart.y", p_Origin[1]);
TE_WriteFloat("m_vStart.z", p_Origin[2]);
TE_WriteVector("m_vAngles", p_Angle);
if(p_Parent == INVALID_ENT_REFERENCE)
TE_WriteNum("entindex", 0);
else
TE_WriteNum("entindex", p_Parent);
TE_Send(p_Clients, p_ClientCount, p_Delay);
}
stock DispatchParticleEffectToAll(p_ParticleType, const Float:p_Origin[3], const Float:p_Angle[3], p_Parent = INVALID_ENT_REFERENCE, Float:p_Delay = 0.0)
{
TE_Start("EffectDispatch");
TE_WriteNum("m_nHitBox", p_ParticleType);
TE_WriteFloat("m_vOrigin.x", p_Origin[0]);
TE_WriteFloat("m_vOrigin.y", p_Origin[1]);
TE_WriteFloat("m_vOrigin.z", p_Origin[2]);
TE_WriteFloat("m_vStart.x", p_Origin[0]);
TE_WriteFloat("m_vStart.y", p_Origin[1]);
TE_WriteFloat("m_vStart.z", p_Origin[2]);
TE_WriteVector("m_vAngles", p_Angle);
if(p_Parent == INVALID_ENT_REFERENCE)
TE_WriteNum("entindex", 0);
else
TE_WriteNum("entindex", p_Parent);
TE_SendToAll(p_Delay);
}
Notes: You must use PrecacheGeneric() on the PCF file, even if it is stock. Once you precache, you may use g_StringTable = FindStringTable("ParticleEffectNames") and FindStringIndex(g_StringTable, "your_effect_here");
Do your precaching inside OnMapStart().
Have fun.
__________________