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. május 26. - 18:31:40

Cím: Jármû adatok mentése
Írta: tudvari - 2012. május 26. - 18:31:40
Sziasztok,amikor kiszállok a jármûbõl,akkor kiírja azt, hogy \"sdsss\" de nem menti el az adatait.Pedig az ID változó az 2(Kiírja amikor bele ülök),és van is olyan fájl hogy 2.ini.
 

if(oldstate == PLAYER_STATE_DRIVER)
    {
         new file[256];
new vehid = GetPlayerVehicleID(playerid);
    new Float:x,Float:y,Float:z,Float:forgatas;
     GetVehiclePos(vehid,x,y,z);
      GetVehicleZAngle(vehid,forgatas);
      new fajlneve;
      fajlneve = JarmuInfo[vehid][iD];
    format(file,sizeof(file),\"/Adatbazis/Jarmuvek/%d.ini\", fajlneve);
dini_FloatSet(file,\"X\", x);
dini_FloatSet(file,\"Y\", y);
dini_FloatSet(file,\"Z\", z);
dini_FloatSet(file,\"Forgatás\", forgatas);
dini_IntSet(file,\"Eladva\", JarmuInfo[fajlneve][Eladva]);
        TextDrawHideForPlayer(playerid, M_Box[playerid]);
TextDrawHideForPlayer(playerid, M_Seb[playerid]);
TextDrawHideForPlayer(playerid, M_All[playerid]);
TextDrawHideForPlayer(playerid, M_Uzemanyag[playerid]);
SendClientMessage(playerid, NARANCS, \"sdsss\");
    }
Cím: Jármû adatok mentése
Írta: Zsolesszka - 2012. május 26. - 22:34:41
Próbáld így, hátha:
format(file,sizeof(file),\"Adatbazis/Jarmuvek/%d.ini\", fajlneve);
Cím: Jármû adatok mentése
Írta: tudvari - 2012. május 26. - 22:38:00
Ez nem lehet a baj forrása,mert mindenhol így használom és ott jó. :S
Cím: Jármû adatok mentése
Írta: Zsolesszka - 2012. május 26. - 22:42:21
Akkor írd utána ezt a sort, és teszteld le újra.
 
if(!fexist(file)) print(\"a fájl megnyitása sikertelen\");
Cím: Jármû adatok mentése
Írta: tudvari - 2012. május 26. - 22:58:57
Igazad volt,nem tudja megnyitni a fájlt.
 
format(file,sizeof(file),\"Adatbazis/Jarmuvek/%d.ini\", fajlneve);

 
Így sem jó
Cím: Jármû adatok mentése
Írta: Zsolesszka - 2012. május 27. - 07:19:10
Akkor hozd létre dinivel a fájlt.
 
if(!dini_Create(file)) print(\"A fájl, már létezik.\");

 
Ha nem tudja létrehozni akkor az elérési út nem jó. Pontosabban nincs \"Adatbazis\" mappa, vagy \"Adatbazis\" mappában egy \"Jarmuvek\" mappa.
Vagy lehetséges hogy mappanévnek ékezetekkel ellátott nevet adtál meg \"Jármûvek\".
Cím: Jármû adatok mentése
Írta: tudvari - 2012. május 27. - 08:26:28
Most úgy mûködik a szerveremen,hogy minden kocsinak van egy ID változója,és a nem V-s kocsiknak 0,míg a V-s kocsiknak van saját \"rendszámuk\"(1,2,3,4 stb)
És ha kiszállsz egy kocsiból,akkor formázza az ID változó értékével egyenlõ fájlt.Szóval ha V-s kocsi,akkor elmenti a dolgokat,ha meg nem akkor nem csinál semmit,mert nincs ilyen fájl.
Kiszálltam a saját V-s kocsimból,és csak annyit írt ki,hogy a fájl már létezik.Akkor miért nem tudja menteni az adatokat?
Cím: Jármû adatok mentése
Írta: Zsolesszka - 2012. május 27. - 12:04:24
Egyébként egyszerû a hibának az oka, ha kiszállsz a jármûbõl akkor már nem jármûben tartózkodsz, akkor hiába kéred le
 
new vehid = GetPlayerVehicleID(playerid);

 
és az összes többi jármû adatot, pozíció, elfordulási szög, stb., ha már nincs a játékos a jármûben.
Cím: Jármû adatok mentése
Írta: tudvari - 2012. május 27. - 12:53:20
Rendben,köszi +1 :D
Most hozzá írtam az automatikus mentéshez még egy részt,de nem menti el.5 másodpercenként lementi a játékos adatait,ami megy is,csak a kocsiét nem menti le.
 

if(IsPlayerInAnyVehicle(playerid))
      {
          if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
          {
              new vehfile[256];
      new vehid = GetPlayerVehicleID(playerid);
          new Float:vehx,Float:vehy,Float:vehz,Float:forgatas;
           GetVehiclePos(vehid,vehx,vehy,vehz);
            GetVehicleZAngle(vehid,forgatas);
            new fajlneve;
            fajlneve = JarmuInfo[vehid][iD];
          format(vehfile,sizeof(vehfile),\"/Adatbazis/Jarmuvek/%d.ini\", fajlneve);
      dini_FloatSet(file,\"X\", vehx);
      dini_FloatSet(file,\"Y\", vehy);
      dini_FloatSet(file,\"Z\", vehz);
      dini_FloatSet(file,\"Forgatás\", forgatas);
      dini_IntSet(file,\"Eladva\", JarmuInfo[fajlneve][Eladva]);
          }
      }

 
1 pill,találtam benne egy hibát :D
Mûködik,ezer köszönet.Minden hsz-edért adok egy +1-et :D