Szerző Téma: Visszatérés az elõzõ funkcióra  (Megtekintve 726 alkalommal)

Nem elérhető tudvari

  • 1264
  • Fejlesztő
    • Profil megtekintése
Visszatérés az elõzõ funkcióra
« Dátum: 2012. február 22. - 17:56:15 »
0 Show voters
Sziasztok,
[pawn]                      if (penz >= 400)
                      {
                          JatekosInfo[playerid][OkosTelefon] = 1;
                          new telefonszam = (random(8999)+1000);
                          JatekosInfo[playerid][Telefon] = telefonszam;
                          GivePlayerMoney(playerid,-450);
                          new file[256];
                          format(file,sizeof(file),\"/Adatbazis/Karakterek/Telefonszamok/%s.ini\",telefonszam);
                          if(!fexist(file))
                          {
                              dini_Create(file);
                          }
                          if(fexist(file))
                          {
                              return 0;
                          }
                         
                         
                      }[/pawn]
van ez a kis kód részletem és azt szeretném,hogy ha a fájl létezik,akkor vissza térjen a random szám generálásához,és addig generálja  a számokat,amíg nem lesz olyan amilyen fájl nem létezik.
Nem tudom,hogy elég-e erre a return,vagy hogy jó fajtáját használtam-e,ezért kérném a segítségeteket.

Visszatérés az elõzõ funkcióra
« Válasz #1 Dátum: 2012. február 22. - 23:16:34 »
+1 Show voters
Nem teszteltem csak átírtam kicsit:
[pawn]   if(penz >= 400)
{
   JatekosInfo[playerid][OkosTelefon] = 1;
   new
      file[256],
      telefonszam;
   GivePlayerMoney(playerid, -450);
   do
   {
      telefonszam = random(8999) + 1000;
      format(file, sizeof(file), \"/Adatbazis/Karakterek/Telefonszamok/%d.ini\", telefonszam); // Javítás: %s lecserélve %d-re
   }
   while(fexist(file))
   JatekosInfo[playerid][Telefon] = telefonszam;
   dini_Create(file);
}[/pawn]
Majd leteszteled, ha gondolod.
« Utoljára szerkesztve: 2012. február 23. - 17:55:47 írta ɐʞzssǝlosz »

Nem elérhető tudvari

  • 1264
  • Fejlesztő
    • Profil megtekintése
Visszatérés az elõzõ funkcióra
« Válasz #2 Dátum: 2012. február 23. - 13:21:08 »
0 Show voters
ennek: [pawn]while(fexist(file))[/pawn]
nem ennek kéne lennie akkor: [pawn]while(!fexist(file))[/pawn]
Amíg nem generál olyan számot a random,amilyen nevû fájl nem létezik.
Bocsi,ha hülyeséget mondtam,de még nem találkoztam a while-al.
Update:
crashelt.
Ui.: bármilyen módszer jó lenne,ami gátolná azt,hogy ha valaki telefont vesz,akkor ne lehessen ugyan az,mint ami már van egy másik embernek.
« Utoljára szerkesztve: 2012. február 23. - 17:33:54 írta tudvari »

Visszatérés az elõzõ funkcióra
« Válasz #3 Dátum: 2012. február 23. - 17:41:44 »
+1 Show voters
Nem, nem úgy kell lennie, mivel akkor kell folytatnia a ciklust ha már létezik olyan fájl.
Kicsit késõbb létrehozom a szükséges dolgokat hogy tesztelni tudjam.
Edit:
Ahogy elkezdtem írni a teszt szkriptet észrevettem:
[pawn]format(file, sizeof(file), \"/Adatbazis/Karakterek/Telefonszamok/%s.ini\", telefonszam);[/pawn]
Írd át %s erre %d, és úgy próbáld ki.
[pawn]format(file, sizeof(file), \"/Adatbazis/Karakterek/Telefonszamok/%d.ini\", telefonszam);[/pawn]
Edit2:
Igen ez volt a gond, az elõbb említett hiba végett crashelt. Javítom a fenti példát.
« Utoljára szerkesztve: 2012. február 23. - 17:55:12 írta ɐʞzssǝlosz »

Nem elérhető tudvari

  • 1264
  • Fejlesztő
    • Profil megtekintése
Visszatérés az elõzõ funkcióra
« Válasz #4 Dátum: 2012. február 23. - 18:11:31 »
0 Show voters
Köszönöm szépen :D +1

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal