Try something like this:
Code:
#include < amxmodx >
#include < xs >
#include < engine >
public client_PreThink( iPlayer )
{
if( is_user_alive( iPlayer ) )
{
static iPlayers[ 32 ], iNum;
get_players( iPlayers, iNum, "ae", ( get_user_team( iPlayer ) == 1 ) ? "TERRORIST" : "CT" );
new Float:vecPlayerOrigin[ 3 ];
entity_get_vector( iPlayer, EV_VEC_origin, vecPlayerOrigin );
new Float:vecTeammateOrigin[ 3 ];
static const MINIMUM_DISTANCE = 100.0;
new Float:flDistance;
for( new i, iTeammate; i < iNum; i++ )
{
iTeammate = iPlayers[ i ];
entity_get_vector( iTeammate, EV_VEC_origin, vecTeammateOrigin );
if( ( flDistance = get_distance_f( vecPlayerOrigin, vecTeammateOrigin ) ) < MINIMUM_DISTANCE )
{
xs_vec_sub( vecTeammateOrigin, vecPlayerOrigin, vecTeammateOrigin );
xs_vec_normalize( vecTeammateOrigin, vecTeammateOrigin );
xs_vec_mul_scalar( vecTeammateOrigin, ( MINIMUM_DISTANCE - flDistance ) * 5.0, vecTeammateOrigin );
entity_set_vector( iTeammate, EV_VEC_velocity, vecTeammateOrigin );
}
}
}
}
__________________