• 10 Juillet 2025, 08:32:24


Auteur Sujet: Beug du IsPlayerInRangeOfPoint  (Lu 1609 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne vardanega

  • *
  • Tueur en série
  • http://vvardanega.wordpress.com (mon blogue)
  • Messages: 155
    • Voir le profil
Beug du IsPlayerInRangeOfPoint
« le: 11 Novembre 2010, 14:43:03 »
Bonjour, j'ai créer un petit système d’intérieur pour mon GM mais j'ai un soucie.

Quand j'utiliser une commande qui doit testé si le joueur et dans un intérieur spécifique le code ne fonctionne pas, pourtant je suis a même pas 2 mètre du point exacte donc le code devrait logiquement fonctionné mais il me renvoie mon else.

J'ai même essayé de mettre 150 metre mais rien n'y fait.

Voici le code:

<?php

enum sHInfo
{
Float:SHEntrancex,
Float:SHEntrancey,
Float:SHEntrancez,
Float:SHExitx,
Float:SHExity,
Float:SHExitz,
SHInt,
SHVW,
SHInfo[64],
SHType[MAX_TYPES]
};
new 
ShopInfo[14][sHInfo];

//En tete de mon code

for(new 0sizeof(ShopInfo); l++)
{
        if(
IsPlayerInRangeOfPoint(playerid150ShopInfo[l][SHExitx], ShopInfo[l][SHExity], ShopInfo[l][SHExitz]))
{

?>




Merci pour votre aide,

Vincent.
« Modifié: 11 Novembre 2010, 15:05:13 par vardanega »

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Beug du IsPlayerInRangeOfPoint
« Réponse #1 le: 11 Novembre 2010, 17:37:49 »
Salut,

à première vue le problème vient du bout de code que tu ne nous montre pas.
Tu devrais avoir une boucle de ce genre:

new found = false;
new string[128];
new interior = GetPlayerInterior(playerid);
for(new l = 0; l < sizeof(ShopInfo); l++)
{
        if(IsPlayerInRangeOfPoint(playerid, 150, ShopInfo[l][SHExitx], ShopInfo[l][SHExity], ShopInfo[l][SHExitz]) && ShopInfo[l][SHInt] == interior)
{
found = true;
printf("Le joueur %d est dans l'intérieur %d (%d, %f, %f, %f)", playerid, l, ShopInfo[l][SHInt], ShopInfo[l][SHExitx], ShopInfo[l][SHExity], ShopInfo[l][SHExitz]);
format(string, sizeof(string), "Tu es dans l'intérieur %d (%d, %f, %f, %f).", l, ShopInfo[l][SHInt], ShopInfo[l][SHExitx], ShopInfo[l][SHExity], ShopInfo[l][SHExitz]);
SendClientMessage(playerid, 0x00FF00FF, string);
}
}
if(found == false)
{
SendClientMessage(playerid, 0xFF0000FF, "Tu n'es dans aucun intérieur de la liste!");
}

reste à voir comment tu as codé la suite.

++Sim++





Hors ligne vardanega

  • *
  • Tueur en série
  • http://vvardanega.wordpress.com (mon blogue)
  • Messages: 155
    • Voir le profil
Re : Beug du IsPlayerInRangeOfPoint
« Réponse #2 le: 11 Novembre 2010, 18:41:22 »
Voici la commande qui ne fonctionne pas malgré le bon fonctionnement apparent du code !

<?php
if(strcmp(cmd"/chercher"true) == 0)
{
    if(GetPlayerTeam(playerid) != TEAM_ZOMBIE)
    {
        for(new 0sizeof(ShopInfo); l++)
{
if(PlayerToPoint(150playeridShopInfo[l][SHExitx], ShopInfo[l][SHExity], ShopInfo[l][SHExitz]))
{
    if(ShopInfo[i][SHType] == 2)
    {
if(varnourri[playerid] == 0)
{
    ChercheNourriture(playerid);
SetTimer("tpsarme1",3000000);
}
else
{
SendClientMessage(playerid,0xE2BB1DFF,"Vous devez attendre 5 minutes entre chaque recherche.");
return 1;
}
}
else
{
SendClientMessage(playeridCOLOR_RED"Vous n'ete pas dans un 24/7 !");
return 1;
}
}
else
{
SendClientMessage(playeridCOLOR_RED"Vous n'ete pas au bon endroit !");
return 1;
}
if(IsPlayerInRangeOfPoint(playerid150.0ShopInfo[l][SHExitx], ShopInfo[l][SHExity], ShopInfo[l][SHExitz]))
{
    if(ShopInfo[l][SHType] == && GetPlayerInterior(playerid) == ShopInfo[l][SHInt])
    {
    if(vararme[playerid] == 0)
{
ChercheArme(playerid);
SetTimer("tpsarme1",3000000);
return 1;
}
else if(vararme[playerid] == 1)
{
SendClientMessage(playerid,0xE2BB1DFF,"Vous devez attendre 5 minutes pour refaire la commande.");
return 1;
}
}
else
{
SendClientMessage(playeridCOLOR_RED"Vous n'ete pas dans un ammunation !");
return 1;
}
}
else
{
SendClientMessage(playeridCOLOR_RED"Vous n'ete pas au bon endroit !");
return 1;
}
}
}
else
{
SendClientMessage(playeridCOLOR_RED"Les zombies ne peuvent pas chercher !");
}
return 1;
}
?>



Merci,

Vincent.

Hors ligne chneubeul

  • *
  • Gangster
  • GTA Online Addict :)
  • Messages: 1132
    • Voir le profil
Re : Beug du IsPlayerInRangeOfPoint
« Réponse #3 le: 11 Novembre 2010, 20:21:39 »
Lu'

Regarde :

if(ShopInfo[SHType] == 2)

normalement pawno devais te mettre une erreur, et donc tu n'a pas pu tester :)

Hors ligne vardanega

  • *
  • Tueur en série
  • http://vvardanega.wordpress.com (mon blogue)
  • Messages: 155
    • Voir le profil
Re : Beug du IsPlayerInRangeOfPoint
« Réponse #4 le: 11 Novembre 2010, 20:43:03 »
Alors la je me sens vraiment tres bête   :-\  Une telle erreur aurait du etre vue !

En tout cas merci !

Hors ligne scott1

  • *
  • Gangster
  • Messages: 1440
    • Voir le profil
Re : Beug du IsPlayerInRangeOfPoint
« Réponse #5 le: 11 Novembre 2010, 20:43:41 »
alors

soit tu supprime ceci

 else
{
SendClientMessage(playerid, COLOR_RED, "Vous n'ete pas au bon endroit !");
return 1;
}



car il fait si tu es pres du x y e du ShopInfo 0 alors ç va, si non, il te dit Vous n'ete pas au bon endroit !

et le return 1; met fin a la boucle


soit tu fait

new id=-1;

for(new l = 0; l < sizeof(ShopInfo); l++)
{
if(PlayerToPoint(150, playerid, ShopInfo[l][SHExitx], ShopInfo[l][SHExity], ShopInfo[l][SHExitz]))
{
                                      id=i;
                               }
                         }


if(i==-1)
{
SendClientMessage(playerid, COLOR_RED, "Vous n'ete pas au bon endroit !");
return 1;
}
else
{
...
}
Refait un Game mode a partir d'une page blanche



Mes partages:

Systeme de Radio avec Frequence Création

Ajouter des véhicule dans le LARP - Godfather Tuto

Anti Cheat "JunkBuster" traduit en FR Traduction

LARP Traduit FR, V0.3 Traduction

Hors ligne chneubeul

  • *
  • Gangster
  • GTA Online Addict :)
  • Messages: 1132
    • Voir le profil
Re : Beug du IsPlayerInRangeOfPoint
« Réponse #6 le: 11 Novembre 2010, 21:01:23 »
Scott, le script là comme il est, est très bien :)

C'est si le script étais comme ça :

if(PlayerToPoint(150, playerid, ShopInfo[l][SHExitx], ShopInfo[l][SHExity], ShopInfo[l][SHExitz]))
{
        SendClientMessage(playerid, COLOR_RED, "Vous n'ete pas au bon endroit !");
return 1;
}

Que tu aurais eu raison... :)

Dans le cas présent, le script il va vérifier, si la position est bonne. Si c'est le cas il continue, sinon il passe au else ^^

Edit : remplace PlayerToPoint par IsPlayerInrangeOfPoint et n'oublie pas de changer l'ordre des paramètres :)

Hors ligne scott1

  • *
  • Gangster
  • Messages: 1440
    • Voir le profil
Re : Re : Beug du IsPlayerInRangeOfPoint
« Réponse #7 le: 12 Novembre 2010, 01:23:32 »
Scott, le script là comme il est, est très bien :)

C'est si le script étais comme ça :

if(PlayerToPoint(150, playerid, ShopInfo[l][SHExitx], ShopInfo[l][SHExity], ShopInfo[l][SHExitz]))
{
        SendClientMessage(playerid, COLOR_RED, "Vous n'ete pas au bon endroit !");
return 1;
}

Que tu aurais eu raison... :)

Dans le cas présent, le script il va vérifier, si la position est bonne. Si c'est le cas il continue, sinon il passe au else ^^

Edit : remplace PlayerToPoint par IsPlayerInrangeOfPoint et n'oublie pas de changer l'ordre des paramètres :)


J'ai relut le code et je pense avoir raison.

Mais bon peut etre l'ais je mal lu...
Refait un Game mode a partir d'une page blanche



Mes partages:

Systeme de Radio avec Frequence Création

Ajouter des véhicule dans le LARP - Godfather Tuto

Anti Cheat "JunkBuster" traduit en FR Traduction

LARP Traduit FR, V0.3 Traduction

Hors ligne vardanega

  • *
  • Tueur en série
  • http://vvardanega.wordpress.com (mon blogue)
  • Messages: 155
    • Voir le profil
Re : Re : Beug du IsPlayerInRangeOfPoint
« Réponse #8 le: 12 Novembre 2010, 09:43:31 »
Scott, le script là comme il est, est très bien :)

C'est si le script étais comme ça :

if(PlayerToPoint(150, playerid, ShopInfo[l][SHExitx], ShopInfo[l][SHExity], ShopInfo[l][SHExitz]))
{
        SendClientMessage(playerid, COLOR_RED, "Vous n'ete pas au bon endroit !");
return 1;
}

Que tu aurais eu raison... :)

Dans le cas présent, le script il va vérifier, si la position est bonne. Si c'est le cas il continue, sinon il passe au else ^^

Edit : remplace PlayerToPoint par IsPlayerInrangeOfPoint et n'oublie pas de changer l'ordre des paramètres :)


Merci pour votre aide mais j'ai déja essayé de changer la fonction mais rien n'y fait ! je pense que je fait faire deux commandes séparé comme ca il n'y aura plus de problème.

Pensez vous que ca pourait venir du:   for(new l = 0; l < sizeof(ShopInfo); l++)  "l" qui n'est pas remis a zéro ?

Vincent.

Hors ligne Myk3L

  • *
  • Tueur en série
  • Messages: 197
    • Voir le profil
Re : Beug du IsPlayerInRangeOfPoint
« Réponse #9 le: 12 Novembre 2010, 21:34:08 »
Dans ta boucle for, tu créé une variable qui servira juste pour cette boucle. Cette dernière, tu l'a créé et initialisé à 0 puis tu l’incrémente tant qu'elle n'est pas égale à ShopInfo ;)

Hors ligne vardanega

  • *
  • Tueur en série
  • http://vvardanega.wordpress.com (mon blogue)
  • Messages: 155
    • Voir le profil
Re : Beug du IsPlayerInRangeOfPoint
« Réponse #10 le: 12 Novembre 2010, 21:56:25 »
Le problème persiste toujours je n'est trouvé aucune solution pour l'instant.

Vincent