[Duda] Cargar todos los archivos
#1

Hola amigos y amigas, me gustaria que me ayudarais a hacer que mi GM leyera todos los autos comprados de una carpeta en concreto(son archivos indipendientes, cada coche 1 archivo), tengo lo siguiente:

pawn Код:
forward CargarAutos();
public CargarAutos()
{
    for(new idx = 149; idx < 500; idx++)
    {
        new archivo[256];
        format(archivo, 256, "Coches/%d.ini", idx);
        AddStaticVehicleEx(CocheInfo[idx][ccModelo],CocheInfo[idx][ccX],CocheInfo[idx][ccY],CocheInfo[idx][ccZ]+2.5, 0, 0, 0,60000);
    }
    return 0;
}
Pero creo que es erroneo, porque no va xD.
Enfin, espero sus respuestas. Un saludo
Reply
#2

pawn Код:
stock LoadStaticVehiclesFromFile(const filename[])
{
    new File:file_ptr;
    new line[256];
    new var_from_line[64];
    new vehicletype;
    new Float:SpawnX;
    new Float:SpawnY;
    new Float:SpawnZ;
    new Float:SpawnRot;
    new Color1, Color2;
    new index;
        new vehicles_loaded;

    file_ptr = fopen(filename,filemode:io_read);
    if(!file_ptr) return 0;

    vehicles_loaded = 0;

    while(fread(file_ptr,line,256) > 0)
    {
        index = 0;

        // Read type
        index = token_by_delim(line,var_from_line,',',index);
        if(index == (-1)) continue;
        vehicletype = strval(var_from_line);
        if(vehicletype < 400 || vehicletype > 611) continue;

        // Read X, Y, Z, Rotation
        index = token_by_delim(line,var_from_line,',',index+1);
        if(index == (-1)) continue;
        SpawnX = floatstr(var_from_line);

        index = token_by_delim(line,var_from_line,',',index+1);
        if(index == (-1)) continue;
        SpawnY = floatstr(var_from_line);

        index = token_by_delim(line,var_from_line,',',index+1);
        if(index == (-1)) continue;
        SpawnZ = floatstr(var_from_line);

        index = token_by_delim(line,var_from_line,',',index+1);
        if(index == (-1)) continue;
        SpawnRot = floatstr(var_from_line);

        // Read Color1, Color2
        index = token_by_delim(line,var_from_line,',',index+1);
        if(index == (-1)) continue;
        Color1 = strval(var_from_line);

        index = token_by_delim(line,var_from_line,';',index+1);
        Color2 = strval(var_from_line);

        //printf("%d,%d,%f,%f,%f,%f,%d,%d",total_vehicles_from_files+vehicles_loaded+1,vehicletype,SpawnX,SpawnY,SpawnZ,SpawnRot,Color1,Color2);

        AddStaticVehicleEx(vehicletype,SpawnX,SpawnY,SpawnZ,SpawnRot,Color1,Color2,(30*60)); // respawn 30 minutes
       
        /*new numplate_test[32+1];
        format(numplate_test,32,"GRLC{44AA33}%d",vid);
        SetVehicleNumberPlate(vid, numplate_test);*/

       
        vehicles_loaded++;
    }

    fclose(file_ptr);
    printf("Loaded %d vehicles from: %s",vehicles_loaded,filename);
    return vehicles_loaded;
}
Este carga todos los que se encuentran en un archivo, modificala a tu gusto, te sera de gran ayuda
Reply
#3

Ya, pero lo que yo quiero es que cargue cada archivo (1 coche comprado = 1 archivo)

O tendrнa otra opciуn de ponerlos todos los comprados en una lнnea y cuando se venda borrar esta, їno?
Reply
#4

Utilizб el plugin y_files, YSI/y_files. Con la funciуn ffind podes manipular todos los archivos de una carpeta.
Reply
#5

Se sabe el nombre del archivo, por lo tanto no es necesario
Reply
#6

Hay que ver donde pones el CargarAutos();
Ponelo en OnGameModeInit.
Reply
#7

Si ahн lo puse y no iva xd
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)