GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: LePtitClown le 10 Juin 2012, 18:07:59

Titre: Problème de véhicules
Posté par: LePtitClown le 10 Juin 2012, 18:07:59


Slt

J'utilise un système d'achat et de vente de véhicule mais depuis quelque temps, on vient de me faire remarquer un énorme bug. En effet, n'importe quelle personne peut taper /buycar pour devenir propriétaire de la voiture.
Voici où doit se trouver le pb dans le code

Citer
dcmd_buycar(playerid,cmdtext[])
{
   #pragma unused cmdtext
   if(!IsPlayerInAnyVehicle(playerid))
   {
       ERRORMSG("Vous devez être dans votre vehicule");
       return 1;
   }
   if(PI[playerid][Login] == 0)
   {
       ERRORMSG("Vous devez être enregistré pour acheter un vehicule");
       return 1;
   }
   else
   {
      new str[16];
      new Voit;
      Voit=GetPlayerVehicleID(playerid);
      val1 = dini_Get(str, "Nom proprio");
      format(str, sizeof(str), "%d.ini", Voit);
      
      
      if(strcmp(val1,"Libre",false) == 0)
      {
          val2 = dini_Get(str,"prix");
         PI[playerid][Argent]=GetPlayerCash(playerid);
         if(PI[playerid][Argent]>=strval(val2))
         {
            PI[playerid][car] = dini_Int(CompteJoueur(playerid),"car");
            if(PI[playerid][car] == -1)
            {
                    dini_Set(str,"Nom proprio",nom(playerid));
                    dini_IntSet(CompteJoueur(playerid),"car",Voit);
                    GivePlayerCash(playerid,-strval(val2));
                    format(string1,256,"Vous venez d'acheter ce vehicule pour %d$",strval(val2));
                    OKMSG(string1);
                    SetVehicleToRespawn(Voit);
            }
            else
            {
               ERRORMSG("Vous êtes déjà pocesseur d'un vehicule");
            }
         }
         else
         {
            ERRORMSG("Vous n'avez pas l'argent necessaire pour acheter ce vehicule");
             return 1;
         }
      }
      else
      {
         ERRORMSG("Ce vehicule n'est pas à vendre");
          return 1;
      }
    }
   return 1;
}

J'espère que vous aurez une réponse à mon pb...

A+ ;)
Titre: Re : Problème de véhicules
Posté par: cristab le 10 Juin 2012, 21:42:19
le mieux serais de mettre un printf a la variable val1
Titre: Re : Problème de véhicules
Posté par: LePtitClown le 11 Juin 2012, 12:26:43
En effet, il y a un soucis à ce niveau

val1 = dini_Get(str, "Nom proprio");
format(str, sizeof(str), "%d.ini", Voit);


if(strcmp(val1,"Libre",false) == 0)
{
   printf("Le vrai nom de val1 est %d ou %d.",val1,val1);

Phrase renvoyée
Citer
Le vrai nom de val1 est 0 ou 0.


à l'intérieur des comptes voitures, j'ai pourtant:
Citer
Nom proprio=Libre

Des idées ? ;D
Titre: Re : Problème de véhicules
Posté par: spiirou le 11 Juin 2012, 13:08:04
Citer
new str[16];
      new Voit;
      Voit=GetPlayerVehicleID(playerid);
      format(str, sizeof(str), "%d.ini", Voit);
      val1 = dini_Get(str, "Nom proprio");
      format(str, sizeof(str), "%d.ini", Voit);

Peut être bien comme cela non ? En indiquant un nom de fichier avant de fouiller dedans ?  :P
Titre: Re : Problème de véhicules
Posté par: LePtitClown le 11 Juin 2012, 17:07:42
 :lmfao ça marche, décidément, tu as réponse à tout aujourd'hui
Titre: Re : Problème de véhicules
Posté par: spiirou le 11 Juin 2012, 18:57:17
Visiblement oui  :lmfao