SA-MP Forums Archive
[Ayuda] Con sistema de autos - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: [Ayuda] Con sistema de autos (/showthread.php?tid=521679)



[Ayuda] Con sistema de autos - lComandante - 24.06.2014

Estamos creando un sistema de autos, se guardan en archivos independientes, la informaciуn de cada auto se guarda en un archivo .ini, el nombre del archivo .ini es la ID del coche dentro del servidor (ejemplo: 4.ini), me gustarнa saber como hacer cargar ese auto cada vez que reinicie el servidor, ya que si lo reinicio obviamente se borrarб, y necesitarй volverlo a crear con los mismos datos que estйn en el archivo y no se hacerlo. Agradezco la ayuda.


Respuesta: [Ayuda] Con sistema de autos - Macklemore - 24.06.2014

Prueba con esto si te sirve:

Код:
stock CargarAutos(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;

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

            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);

            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);

                                                  // respawn en 30 minutos
            AddStaticVehicleEx(vehicletype,SpawnX,SpawnY,SpawnZ+1,SpawnRot,Color1,Color2,(30*60));
            vehicles_loaded++;
    }
    fclose(file_ptr);
    printf("Cargado %d vehнculos de: %s",vehicles_loaded,filename);
    return vehicles_loaded;
}
OnGamemodeInit:

Код:
public OnGameModeInit()
{
    CargarAutos("archivo.ini"); //poner nombre aquн
    return 1;
}



Respuesta: [Ayuda] Con sistema de autos - Juance - 24.06.2014

Perdуn que me meta pero tengo el mismo problema.

Macklemore, yo necesito cargar los coches, que tambiйn se guardan en archivos independientes. (4.ini,27.ini). Estos cargarlos desde la carpeta Coches. El script serнa Coches/%d.ini , pero ahн veo que en OnGameModeInit estбs cargando solo un archivo. їCуmo serнa para que cargue todos los archivos creados?


Re: [Ayuda] Con sistema de autos - lComandante - 24.06.2014

Exacto, son varios archivos los que estarбn en Vehiculos/%d.ini, como los cargo todos y no solo uno?


Respuesta: [Ayuda] Con sistema de autos - Zume - 24.06.2014

mira lo que harб esto:

pawn Код:
for(new i = 0; i < MAX_PLAYERS; i++)
    {
        printf("%d", i);
    }
esto mostrarб 500 nъmeros, asн lo haces, cambias MAX_PLAYERS por la cantidad mбxima de autos que han sido creados, creas una condiciуn que vele por si el archivo existe usando un format y de argumento "i", y listo


Respuesta: [Ayuda] Con sistema de autos - Juance - 24.06.2014

Me pondrнas un ejemplo? La verdad que desde ayer a la tarde estoy estancado con esto y me tiene mareado


Respuesta: [Ayuda] Con sistema de autos - Zume - 24.06.2014

Quote:
Originally Posted by Juance
Посмотреть сообщение
Me pondrнas un ejemplo? La verdad que desde ayer a la tarde estoy estancado con esto y me tiene mareado
pawn Код:
new file[27];
    for(new idx = 1; idx < sizeof(Vehiculo) ; idx++)
    {
        format(file, sizeof(file),"Autos/%d.ini", idx);
        if(dini_Exists(file))
        {
            strmid(Vehiculo[idx][vDueno], dini_Get(file,"Propietario"), 0, strlen(dini_Get(file,"Propietario")), 255);
            Vehiculo[idx][vIDc] = dini_Int(file,"vID");
            Vehiculo[idx][vModelo] = dini_Int(file,"Modelo");
            Vehiculo[idx][Precio] = dini_Int(file,"Precio");

            Vehiculo[idx][Comprado] = dini_Int(file,"Comprado");
            //Vehiculo[idx][EstadoMotorV] = dini_Int(file,"EstadoMotor");
            Vehiculo[idx][vSeguro] = dini_Int(file,"CocheCerrado");

            Vehiculo[idx][PosX] = dini_Float(file,"Pos_x");
            Vehiculo[idx][PosY] = dini_Float(file,"Pos_y");
            Vehiculo[idx][PosZ] = dini_Float(file,"Pos_z");
            Vehiculo[idx][Rot] = dini_Float(file,"Rot");
            Vehiculo[idx][vVidaCoche] = dini_Float(file,"Carroceria");
            Vehiculo[idx][vGasolina] = dini_Float(file,"Gasolina");
            Vehiculo[idx][vColorUno] = dini_Int(file,"ColorUno");
            Vehiculo[idx][vColorDos] = dini_Int(file,"ColorDos");
            printf("[VEHICULOS]: Vehiculo %d cargado.", idx);
        }
    }
    return 1;
}



Respuesta: [Ayuda] Con sistema de autos - Juance - 24.06.2014

Bien. Me dice: Vehiculo 27 cargado. Es el ъnico vehнculo que tengo en Scriptfiles/Autos. Ahora que supuestamente cargaron los datos del .ini , si yo quiero que el vehнculo se cree con esos datos al iniciar el servidor їcуmo harнa? probй "CreateVehicle" pero de alguna manera no me funcionу.


Respuesta: [Ayuda] Con sistema de autos - Zume - 24.06.2014

AddPlayerVehicle o CreateVehicle con los datos que vas cargando usando "i" de vehicleid


Respuesta: [Ayuda] Con sistema de autos - Juance - 24.06.2014

No comprendo. He hecho esto, pero no me creу el coche:

pawn Код:
new file[27];
for(new idx = 1; idx < sizeof(Vehiculo) ; idx++)
{
    format(file, sizeof(file),"Coches/%d.ini", idx);
    if(dini_Exists(file))
    {
        CreateVehicle(Vehiculo[idx][vModelo],Vehiculo[idx][Pos_X],Vehiculo[idx][Pos_Y],Vehiculo[idx][Pos_Z],Vehiculo[idx][Rot],Vehiculo[idx][vColorUno],Vehiculo[idx][vColorDos],-1);
        printf("Vehiculo %d creado correctamente",idx);
    }
}