GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Street le 05 Mai 2010, 09:00:01
-
Bonjour a tous je voudrais savoir comment creé
Une Fonction comme if playertopoint
Car Aparement elle existe Plu
Merci beaucoup
-
Non, et elle n'a jamais existé en natif dans SAMP, elle a écrite en PAWN par je ne sais pas qui.
Mais maintenant il existe la fonction IsPlayerInRangeOfPoint (littéralement : Est ce que le joueur est dans la ligne de mire d'un point).
Voici le lien sous le Wiki SAMP : http://wiki.sa-mp.com/wiki/IsPlayerInRangeOfPoint (http://wiki.sa-mp.com/wiki/IsPlayerInRangeOfPoint)
IsPlayerInRangeOfPoint (playerid, Float:range, Float:x, Float:y, Float:z);
Cette fonction sert à savoir si le joueur playerid est dans une sphère de rayon range et de centre (x, y, z).
++
Syg
-
Bonjour a tous je voudrais savoir comment creé
Une Fonction comme if playertopoint
Car Aparement elle existe Plu
Merci beaucoup
La fonction PlayerToPoint n'est pas une fonction native à samp, elle à été crée par un membre de sa-mp.com.
Sinon pour t'expliqué elle utilise un systeme de Sphère ( ou boule si tu veut ) et regarde si le joueur est présent à l'intérieur, c'est une fonction assez simple, elle ressemble au théorème de pythagore, mais dans l'espace ^^
-
Merci Beaucoup, Mais Vous Avez Pas tro compris Lol Je voudrais savoir comment creé une fonction de se style :D
Merci beaucoup car efectivement IsPlayerInRangeOfPoint (playerid, Float:range, Float:x, Float:y, Float:z);
Je l'ai deja essayer et pour eviter de passer pas un timer qui reproduit en permanence laction Je veux creé ma fonction
-
Béh c'est Hyper simple
Je te l'ai codé avec des commentaires.
public IsNear(playerid,Float:range,Float:x,Float:y,Float:z)
{
if(!IsPlayerConnected(playerid)){return 0;} // s'il n'est pas connecte on retourne 0 qui veut dire " Faux "
new Float:px = 0,Float:py = 0,Float:pz = 0; // Ici on déclare les variables qui vont servirent a prendre la position du joueur
GetPlayerPos(playerid,x,y,z);
new Float:Distance = floatsqroot( floatpower((px - x),2) + floatpower((py - y),2) + floatpower((pz - z),2)); // Ici le calcule pour la distance
if(Distance <= range) // si le joueur est a moins ou a range metres de x,y,z alors on execute ce qu'il y a dans la boucle
{
return 1; // ici on retourne 1 qui veut dire "vrai" donc le joueur est bien ou on veut qu'il soit =)
}
return 0;
}
Ou comme ca
public IsNear(playerid,Float:range,Float:x,Float:y,Float:z)
{
if(!IsPlayerConnected(playerid)){return 0;}
new Float:px = 0,Float:py = 0,Float:pz = 0;
GetPlayerPos(playerid,x,y,z);
if(floatsqroot( floatpower((px - x),2) + floatpower((py - y),2) + floatpower((pz - z),2)) <= range)
{
return 1;
}
return 0;
}
-
Merci beaucoup apré je fait
if IsNear(playerid,Float:range,Float:x,Float:y,Float:z) ?
-
Oui mais elle y est déjà sur samp ^^
fait comme ca
if(IsPlayerInRangeOfPoint (playerid, Float:range, Float:x, Float:y, Float:z))
{
}
-
Oui mais sa aplique pas la fonction en permanence
Double post
Bon je vais y metre un timer ^^