[Function]setWeaponHoming

What if you wanna make beams trackable in not-ECX? so here you are :confused:

[php]
stock setWeaponHoming( Weapon, Velocity, Float: DetectableRange )
{
new Target, Float: Range[33];
for( new i = 1; i <= 32; i++ )// Save the range between the client and the beam if the client is in the detectable range
{
if( is_user_connected( i ) )
{
if( is_user_alive( i ) && i != pev( Weapon, pev_owner ) )
{
if( entity_range( Weapon, i ) <= DetectableRange )
{
Range[i] = entity_range( Weapon, i );
Target = i;
}
}
}
}

for( new n = 1; n <= 32; n++ )// Get the index of the client who is nearest the beam
{
	if( Range[n] < Range[Target] && Range[n] != 0.0 )
	{
		Target = n;
	}
}

new CORE[3];
CORE[0] = Weapon;
CORE[1] = Target;
CORE[2] = Velocity;
set_task( 0.1, "WeaponTrackThink", Weapon, CORE, 3, "b" )// Refresh the vector of the beam to the client every 0.1s

}

public WeaponTrackThink( CORE )
{
new Weapon = CORE[0];
new Target = CORE[1];
new Velocity = CORE[2];

if( Target != 0 && is_user_alive( Target ) )
{
	/* Get the origins of the beam and the target */
	new Float: vec[3], Float: WeaponOrg[3], Float: TargetOrg[3];
	pev( Weapon, pev_origin, WeaponOrg );
	pev( Target, pev_origin, TargetOrg );

	/* Compute velocity by origins */
	vec[0] = TargetOrg[0] - WeaponOrg[0];
	vec[1] = TargetOrg[1] - WeaponOrg[1];
	vec[2] = TargetOrg[2] - WeaponOrg[2];
	xs_vec_normalize( vec, vec );

	/* Update the angles of the entity */
	new Float: ang[3];
	vector_to_angle( vec, ang );
	set_pev( Weapon, pev_angles, ang );

	/* Give velocity to the beam */
	xs_vec_mul_scalar(vec, float( Velocity ), vec);
	set_pev( Weapon, pev_velocity, vec );
}

}
[/php]