GetDistanceToPlayer függvény is hiányzik.
Nekem ez foreach-al nemment jól, nemtom mér. ( FS-be )
Én így oldanám meg:
forward ClosestPlayer(p1);
public ClosestPlayer(p1)
{
new
Float:dis = 99999.99,
Float:dis2,
Float:MyPos[6],
playerid = INVALID_PLAYER_ID;
foreach(Player, x)
{
GetPlayerPos(playerid, MyPos[0], MyPos[1], MyPos[2]);
GetPlayerPos(x, MyPos[3], MyPos[4], MyPos[5]);
dis2 = GetDistance(MyPos[0], MyPos[1], MyPos[2], MyPos[3], MyPos[4], MyPos[5]);
if (dis2 < dis && dis2 != -1.00)
{
dis = dis2;
playerid = x;
}
}
return playerid;
}
GetDistance kell hozzá.
#define GetDistance(%1,%2,%3,%4,%5,%6) floatadd(floatadd(floatsqroot(floatpower(floatsub(%1, %4), 2)), floatsqroot(floatpower(floatsub(%2, %5), 2))), floatsqroot(floatpower(floatsub(%3, %6), 2)))
[/code