GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: tudvari - 2012. február 22. - 17:56:15

Cím: Visszatérés az elõzõ funkcióra
Írta: tudvari - 2012. február 22. - 17:56:15
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.
Cím: Visszatérés az elõzõ funkcióra
Írta: Zsolesszka - 2012. február 22. - 23:16:34
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.
Cím: Visszatérés az elõzõ funkcióra
Írta: tudvari - 2012. február 23. - 13:21:08
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.
Cím: Visszatérés az elõzõ funkcióra
Írta: Zsolesszka - 2012. február 23. - 17:41:44
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.
Cím: Visszatérés az elõzõ funkcióra
Írta: tudvari - 2012. február 23. - 18:11:31
Köszönöm szépen :D +1