[AYUDA] Poner un lнmite de compra.
#1

Hola, necesito ayuda estoy creando un sistema de vehнculos, a cada uno le tengo un archivo .INI y tambiйn
les tengo un define de VEHНCULOS_MБXIMOS, mi duda es como puedo obtener en el GM cuantos archivos
.INI estбn creados en la carpeta de Vehнculos/%d.ini, lo que quiero es poner un if de esos archivos, para
quй cuando llegue al nъmero que tengo en VEHНCULOS_MБXIMOS no puedan comprar mбs vehнculos.
Reply
#2

Crea una variable y cada vez que se crea/carga un archivo, aumenta el valor de la variable por uno y viceversa.
Reply
#3

Hice algo similar antes: https://sampforum.blast.hk/showthread.php?tid=559947 pero con MySQL esto lo resolverнas fбcilmente. Aъn asн no es necesario revisar la carpeta, con un bucle que revise todos los autos existentes basta pues si no estбn cargados serб porque no exista
Reply
#4

Ya tenia pensado en esa opciуn de crear la variable y el +1, pero querнa saber si habrнa alguna funciуn quй
detecte todos los archivos .INI en una carpeta.

Tengo un problema tambiйn, se me estб creando 2 archivos INI (Nunca se crean mбs de 2), como si fueran dos carros creados pero con todas sus variables en 0, que puede ser, el guardado pues los tengo con un stock con un timer de cada 3 minutos para que se guarde, alguno le a pasado eso?
Reply
#5

Si vas a querer hacer varias cosas que depende de un sistema de guardado, entonces cambia a SQL (MySQL/SQLite). Se te dificultara mas con archivos y no quedara para nada optimizado.

Y sobre tu problema, publica codigo y te ayudamos.
Reply
#6

Si quieres comprobar todos los archivos que hay en dicha carpeta puede dar algo de lag.

pawn Код:
public ConteoCoches()
{
    new Total = 0;
    for(new bLoop = 1; bLoop < sizeof(MAX_VEHICLES); bLoop++)
    {
        new gFile[35];
        format(gFile, 50, "Vehiculos/%d.ini" ,bLoop);
        if(fexist(gFile))
        {
            Total ++;
        }
    }
    format(ystring,sizeof(ystring),"Total de vehнculos creados %d",Total);
    SendClientMessage(playerid, -1, ystring);
    return 1;
}
Supongo que algo asн es lo que quieres.
Reply
#7

Fбcil. Dado que no vas a cambiar de sistema, tampoco tienes necesidad, deberнas hacer lo siguiente:
  1. Definir una constante simbуlica.
    PHP код:
    #define MAX_COCHES_COMPRADOS 999 
  2. Contar la cantidad de archivos que se encuentra en la carpeta.
    PHP код:
    stock contarCoches()
    {
        
    // Variables
        
    new i// Iterador.
        
    new conteo// Cuenta la cantidad de vehiculos.
        
    new nombre_archivo[17]; // Vector con nombre del archivo.
        // Algoritmo
        
    for(0MAX_COCHES_COMPRADOSi++)
        {
            
    format(nombre_archivosizeof(nombre_archivo), "Vehiculos/%d.ini"i);
            if(
    fexist(nombre_archivo))
                
    conteo++;
        }
        return 
    conteo;

  3. Realizar una comparaciуn al comprar un vehнculo.
Saludos
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)