PHP Code:
AttachParticle(ent, String:particleType[],controlpoint)
{
//This is used to attach a particle that has two control points
//such as the medic gun beam. One originates from the medic
//and the other to its healer
//This particle is attached to the source player
//This will be visible
new particle = CreateEntityByName("info_particle_system");
//This particle is attached to the destination player
//This will not be visibile, we only need it so the source particle
//is attached in the apropriate place
new particle2 = CreateEntityByName("info_particle_system");
if (IsValidEdict(particle))
{
//Name the originating source, usually the player
new String:tName[128];
Format(tName, sizeof(tName), "target%i", ent);
DispatchKeyValue(ent, "targetname", tName);
//Name the destination, usually another player
new String:cpName[128];
Format(cpName, sizeof(cpName), "target%i", controlpoint);
DispatchKeyValue(controlpoint, "targetname", cpName);
//Name the particle (this particle is attached to the source player)
new String:particleName[128];
Format(particleName, sizeof(particleName), "tf2particle%i", particle);
DispatchKeyValue(particle, "targetname", particleName);
//Tell it what effect name it is then spawn it so we can use it
DispatchKeyValue(particle, "effect_name", particleType);
DispatchSpawn(particle);
//--------------------------------------
new String:cp2Name[128];
//Give the destination particle a unique anme
Format(cp2Name, sizeof(cp2Name), "tf2particle%i", particle2);
DispatchKeyValue(particle2, "targetname", cp2Name);
//Attach the destination particle to the destined player
DispatchKeyValue(particle2, "parentname", cpName);
SetVariantString(cpName);
AcceptEntityInput(particle2, "SetParent");
//Attach the destination particle to the "flag" (stomach area)
SetVariantString("flag");
AcceptEntityInput(particle2, "SetParentAttachment");
//-----------------------------------------------
//Here's where we "join" the two particles
//Parent the source particle to the source player
DispatchKeyValue(particle, "parentname", tName);
SetVariantString(tName);
AcceptEntityInput(particle, "SetParent");
//Join the source particle to the destination particle
DispatchKeyValue(particle, "cpoint1", cp2Name);
//Attach the source particle to the "flag" (stomach area)
SetVariantString("flag");
AcceptEntityInput(particle, "SetParentAttachment");
//The particle is finally ready
ActivateEntity(particle);
AcceptEntityInput(particle, "start");
//PrintToChatAll("Particle 1: %i Particle 2: %i",particle,particle2);
}
}
This is a snippet from some code I have although I haven't used it in a good while so I really don't know how well it works now.
When it was working I would do something like
Code:
AttachParticle(Client1, "medicgun_beam_blue" ,Client2)
and that would attach the heal beam from Client 1 to Client 2.
Edit: Damn, I knew this seemed like Déjà vu
https://forums.alliedmods.net/showpo...89&postcount=7
__________________