d(x1, y1, z1, x2, y2, z2) = √ ( (x2-x1)² + (y2-y1)² + (z2-z1)² )
En code Pawn, optimisé, ca donne:
Float:distance(Float:x1, Float:y1, Float:z1, Float:x2, Float:y2, Float:z2)
{
return floatsqroot((x2-=x1)*x2 + (y2-=y1)*y2 + (z2-=z1)*z2);
}
Après pour utiliser entre un joueur et un objet, tu fais:
new Float:x1, Float:y1, Float:z1, Float:x2, Float:y2, Float:z2;
GetPlayerPos(playerid, x1, y1, z1);
GetObjectPos(objectid, x2, y2, z2);
if (distance(x1, y1, z1, x2, y2, z2) < 50.0) //si le joueur est à moins de 50 mètres de l'objet
{
//faire quelquechose
}
N'utilise pas PlayerToPoint, c'est une fonction qui est très lente.