2.
Code:
#include < xs >
GetSpeedVector( Float:vecStartOrigin[ 3 ], Float:vecEndOrigin[ 3 ], Float:flSpeed = 0.0, Float:flTime = 0.0, Float:vecOutput[ 3 ] )
{
if( flSpeed <= 0.0
&& flTime <= 0.0 )
{
return 0;
}
xs_vec_sub( vecEndOrigin, vecStartOrigin, vecOutput );
if( flTime > 0.0 )
{
flSpeed = xs_vec_len( vecOutput ) / flTime;
}
xs_vec_normalize( vecOutput, vecOutput );
xs_vec_mul_scalar( vecOutput, flSpeed, vecOutput );
return 1;
}
Usage:
Code:
new Float:vecStart[ 3 ]; // start origin
new Float:vecStop[ 3 ]; // stop origin
new Float:vecVelocity[ 3 ]; // output speed vector
// for time-based speed (time is in seconds)
GetSpeedVector( vecStart, vecStop, _, 5.0, vecVelocity );
// for preset speed (speed is in units per second)
GetSpeedVector( vecStart, vecStop, 100.0, _, vecVelocity );
__________________