14.06.2010, 04:16
Title says everything.
I tried everything I could imagine and haven't sucess.
Thanks in advance.
I tried everything I could imagine and haven't sucess.
Thanks in advance.
public GetClosestPlayer(p1) { new x, Float:dis, Float:dis2, player; player = -1; dis = 99999.99; for (x=0;x<MAX_PLAYERS;x++) if(IsPlayerConnected(x)) if(x != p1) { dis2 = GetDistanceBetweenPlayers(x,p1); if(dis2 < dis && dis2 != -1.00) { dis = dis2; player = x; } } return player; } public Float:GetDistanceBetweenPlayers(p1, p2) { new Float:x1, Float:y1, Float:z1, Float:x2, Float:y2, Float:z2; if(!IsPlayerConnected(p1) || !IsPlayerConnected(p2)) return -1.00; 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)); }
for(new v = 0; v < MAX_VEHICLES; v++)
{
#define INVALID_ID (0xFFFF) // Windows calculator lol // 65535
if(v != INVALID_ID)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(!IsPlayerInVehicle(i, v))
{
PutPlayerInVehicle(playerid, v, 0);
}
}
}
}
stock Float:GetDistanceBetwinPoint(p1, Float:x2, Float:y2, Float:z2)
{
new Float:XX, Float:YY, Float:ZZ;
GetPlayerPos(p1, XX, YY, ZZ);
return floatsqroot(floatpower(floatabs(floatsub(x2,XX)),2)+floatpower(floatabs(floatsub(y2,YY)),2)+floatpower(floatabs(floatsub(z2,ZZ)),2));
}
stock GetClosestVehicle(playerid)
{
new car, Float:ang;
car = -1;
ang = 9999.9999;
for(new i = 0; i < MAX_PLAYERS; i++)
for(new v = 0; v < MAX_VEHICLES; v++)
{
if(!IsPlayerInVehicle(i, v))
{
new Float:X, Float:Y, Float:Z;
GetVehiclePos(v, X, Y, Z);
if(ang > GetDistanceBetwinPoint(playerid, X, Y, Z))
{
ang = GetDistanceBetwinPoint(playerid, X, Y, Z);
car = v;
}
}
}
return car;
}