21.07.2012, 20:07
pawn Код:
stock GetClosestPlayer(playerid, Float:limit)
{
new Float:x1, Float:y1, Float:z1, Float:x2, Float:y2, Float:z2;
GetPlayerPos(playerid, x1, y1, z1);
new Float:Range = 999.9;
new id = -1;
foreach(Player,i)
{
if(playerid != i)
{
GetPlayerPos(i, x2, y2, z2);
new Float:Dist = GetDistanceBetweenPoints(x1, y1, z1, x2, y2, z2);
if(floatcmp(Range, Dist) == 1 && floatcmp(limit, Range) == 1)
{
Range = Dist;
id = i;
}
}
}
return id;
}
stock Float:GetDistanceBetweenPoints(Float:rx1, Float:ry1, Float:rz1, Float:rx2, Float:ry2, Float:rz2)
{
return floatadd(floatadd(floatsqroot(floatpower(floatsub(rx1,rx2),2)),floatsqroot(floatpower(floatsub(ry1,ry2),2))),floatsqroot(floatpower(floatsub(rz1,rz2),2)));
}
pawn Код:
function with tag result used before definition, forcing reparse