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;
}