rendered paste body
new pteam[MAX_PLAYERS];
new used[MAX_PLAYERS];
stock Float:GetDistanceBetweenPlayers(p1,p2)
{
new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
GetPlayerPos(p1,x1,y1,z1);
GetPlayerPos(p2,x2,y2,z2);
return floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
}
stock GetClosestPlayerEx(p1)
{
new x,Float:dis,Float:dis2,player,players,called,p[24],str[24];
player = -1;
dis = 99999.99;
for (x=0;x<MAX_PLAYERS;x++)
{
players++;
if (x != p1)
{
dis2 = GetDistanceBetweenPlayers(x,p1);
if (dis2 < dis && dis2 != -1.00 && pteam[x] == pteam[p1] && used[x] == 0)
{
dis = dis2;
player = x;
used[x] = 1;
called++;
GetPlayerName(x,p,24);
while(players>called) GetClosestPlayerEx(p1);
}
}
}
format(str,sizeof(str),"%s",p);
return player;
}