• 04 Juin 2026, 15:45:15


Auteur Sujet: Problème /fermermaison ..  (Lu 2129 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Jack-166

  • *
  • Nouveau
  • Messages: 13
    • Voir le profil
Problème /fermermaison ..
« le: 25 Avril 2012, 18:17:36 »
Bonsoir,

J'ai un petit problème avec mon /fermermaison :

if(strcmp(cmd, "/fermermaison", true) == 0)
{
   for(new i = 0; i < sizeof(HouseInfo); i++)
{
   if (PlayerToPoint(1, playerid,HouseInfo[i][hEnterX],HouseInfo[i][hEnterY],HouseInfo[i][hEnterZ]))
{
   if(PlayerInfo[playerid][pHouse1] == i || PlayerInfo[playerid][pHouse2] == i)
    {
       if(HouseInfo[i][hLocked] == 0)
       {
           SendClientMessage(playerid, COLOR_CORAL, "Vous avez fermé la porte de votre maison");
        HouseInfo[i][hLocked] = 1;
        format(string, sizeof(string), "%s sort la clé de sa maison et ferme la porte!", GetPlayerNameEx(playerid));
ProxDetector(20.0, playerid, string,COULEUR_VIOLET,COULEUR_VIOLET,COULEUR_VIOLET,COULEUR_VIOLET,COULEUR_VIOLET);
        return 1;
}
else
{
   SendClientMessage(playerid, COULEUR_ERREUR, "Vous avez ouvert la porte de votre maison");
   HouseInfo[i][hLocked] = 0;
        format(string, sizeof(string), "%s sort la clé de sa maison et ouvre la porte!", GetPlayerNameEx(playerid));
ProxDetector(20.0, playerid, string,COULEUR_VIOLET,COULEUR_VIOLET,COULEUR_VIOLET,COULEUR_VIOLET,COULEUR_VIOLET);
   return 1;
}
}
else
{
   SendClientMessage(playerid, COULEUR_ERREUR, "Ce n'est pas votre maison");
return 1;
}
}
else
{
SendClientMessage(playerid, COULEUR_ERREUR, "Vous n'êtes pas devant la porte de votre maison !");
return 1;
}
}
}

Quand je fais /fermermaison devant la porte de ma maison, il me renvoit l'erreur : "Vous n'êtes pas devant la porte de votre maison !"..

J'ai examiné le code, mais je ne vois pas d'erreur..

EDIT : PS : Sur ma deuxième maison, je peux la /fermermaison.

Cordialement,
« Modifié: 25 Avril 2012, 18:30:57 par Jack-166 »

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Problème /fermermaison ..
« Réponse #1 le: 25 Avril 2012, 21:20:04 »
Moi je vois peut être une erreur, pourrais-tu nous montrer la fonction PlayerToPoint ?

Hors ligne Jack-166

  • *
  • Nouveau
  • Messages: 13
    • Voir le profil
Re : Problème /fermermaison ..
« Réponse #2 le: 25 Avril 2012, 21:32:28 »
public PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
{
    if(IsPlayerConnected(playerid))
{
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
tempposx = (oldposx -x);
tempposy = (oldposy -y);
tempposz = (oldposz -z);
if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
{
return 1;
}
}
return 0;
}

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Problème /fermermaison ..
« Réponse #3 le: 25 Avril 2012, 21:54:34 »
D'accord, donc pour cette partie, c'est logiquement bon (je n'ai pas vérifié la fonction en elle même, seulement ses paramètres.

Penchons-nous maintenant sur ton code, essaye d'afficher ta position courante et en même temps, la position de ta maison et nous donner ce que cela donne: Code - Pastebin.com.

Petite remarque, pourquoi faire une boucle alors que tous les chemins de ton code quitte la fonction actuel (
return) ?

En passant, les code de plus de 20 lignes ne doivent pas être poster directement sur le forum, c'est dans les règles.

Hors ligne Jack-166

  • *
  • Nouveau
  • Messages: 13
    • Voir le profil
Re : Problème /fermermaison ..
« Réponse #4 le: 25 Avril 2012, 22:51:44 »
Merci de ta réponse,

Malheureusement, ça ne marche pas :/

Cordialement,

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Problème /fermermaison ..
« Réponse #5 le: 25 Avril 2012, 23:04:43 »
Si tu ne me donne pas ce que je te demande, je peux rien faire de plus.
Je te donne le code qui met dans la console les données, et tu ne me les donnes pas ...

Avant de résoudre un problème, on l'analyse.

Hors ligne Jack-166

  • *
  • Nouveau
  • Messages: 13
    • Voir le profil
Re : Problème /fermermaison ..
« Réponse #6 le: 25 Avril 2012, 23:13:17 »
Milles excuses !

Je n'avais pas bien lu ta première réponse, c'est entièrement ma faute.

Donc, le débug, ça donne :

[23:11:42] X 675.315673 -1997.751220
[23:11:42] Y -1430.296752 77.064651
[23:11:42] Z 14.851562 27.847721

Et les positions d'où j'ai taper ma commande :

675.3157       -1430.2968         14.8516
Cordialement,


Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Problème /fermermaison ..
« Réponse #7 le: 25 Avril 2012, 23:23:05 »
Donc, la maison qui est actuellement testé n'est pas la bonne.
La remarque précédente est donc à prendre en compte, en l'occurrence, que pour faire une boucle correct, il ne faut pas que tous les chemins fassent sortir de la fonction d'où elle se trouve.

En clair, qu'une seule maison est testé, aucune des autres.