vehicle aus file laden

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • ich hab versucht einen script zu schreiben ,der die cars aus einer .ini läd.
    Damit man sie auch ingame bearbeiten und löschen kann.
    Doch ich bin kläglich versagt da file's für mich noch neuland sind...


    Was hab ich falsch gemacht?
    #include <a_samp>
    #include <dini>
    //#include <dudb>
    #define MAX_CAR 5000 // Maximale auto Anzahl
    new cache_car;
    enum car
    {
    id,
    Float:x,
    Float:y,
    Float:z,
    Float:r,
    farbe1,
    farbe2
    }


    new CarDaten[MAX_CAR][car];
    forward SaveCache();
    forward initSlot();




    public OnFilterScriptInit()
    {
    new line[255],File:carx = fopen("car.ini",io_read),
    car_index;
    if(carx)
    {
    while(fread(carx,line))
    {
    if(line[strlen(line)-2] == '\r')line[strlen(line)-2] = '\0';
    if(line[strlen(line)-1] == '\n')line[strlen(line)-1] = '\0';
    CarDaten[cache_car][id] = floatstr(strtok(line,car_index,','));
    CarDaten[cache_car][x] = floatstr(strtok(line,car_index,','));
    CarDaten[cache_car][y] = floatstr(strtok(line,car_index,','));
    CarDaten[cache_car][z] = floatstr(strtok(line,car_index,','));
    CarDaten[cache_car][r] = floatstr(strtok(line,car_index,','));
    CarDaten[cache_car][farbe1] = floatstr(strtok(line,car_index,','));
    CarDaten[cache_car][farbe2] = floatstr(strtok(line,car_index,','));
    AddStaticVehicle(id,x,y,z,r,farbe1,farbe2);
    car_index = 0;
    cache_car++;


    }
    fclose(carx);
    }
    return 1;
    }



    public OnPlayerCommandText(playerid, cmdtext[])
    {
    new idx,cmd[128];
    cmd = strtok(cmdtext,idx);
    if(!strcmp(cmd,"/savecar",true))
    {
    new slotid = initSlot();
    new Float:Px,Float:Py,Float:Pz,Float:Pr;
    GetPlayerPos(playerid,Px,Py,Pz);
    new carid;
    carid = GetPlayerVehicleID(playerid);
    GetVehicleZAngle(carid,Pr);


    new fullid = (slotid==-1) ? (cache_car) : (slotid);
    CarDaten[fullid][id] = carid;
    CarDaten[fullid][x] = x;
    CarDaten[fullid][y] = y;
    CarDaten[fullid][z] = z;
    CarDaten[fullid][r] = r;
    CarDaten[fullid][farbe1] = farbe1;
    CarDaten[fullid][farbe2] = farbe2;
    if(slotid==-1)cache_car++;
    SaveCache();
    return 1;
    }
    if(!strcmp(cmd,"/delcar",true))
    {
    return 1;
    }


    return 0;
    }
    public SaveCache()
    {
    new fm[255],File:carx = fopen("car.ini",io_write);
    for(new i = 0;i<cache_car;i++)
    {
    format(fm,sizeof fm,"%s,%s,%s,%s,%s,%s,%s\r\n",
    CarDaten[i][id],
    CarDaten[i][x],
    CarDaten[i][y],
    CarDaten[i][z],
    CarDaten[i][r],
    CarDaten[i][farbe1],
    CarDaten[i][farbe2]);
    fwrite(carx,fm);
    }
    fclose(carx);
    return 1;
    }
    public OnFilterScriptExit()
    {
    SaveCache();
    return 1;
    }
    public initSlot()
    {
    new foundx = -1;
    for(new i = 0;i<cache_car;i++)
    {
    if(CarDaten[i][id] == '\0'){foundx = i;break;}
    }
    return foundx;
    }



    könnt ihr mir helfen ?