[Ayuda] Autos
#1

Hola a tod@s, espero no molestar, bueno, mi duda es, porque esto:

pawn Код:
stock LeerVehiculos()
{
    new inf[256];
       
    new File:autos = fopen("fautos.ini", io_read);
    fread(autos, inf);
    if(autos)
    {
        new var[128];
        format(var, 128, "%d, %f, %f, %f, %f, %d, %d, %d",
        CocheCreadoInfo[cModelo],
        CocheCreadoInfo[cX],
        CocheCreadoInfo[cY],
        CocheCreadoInfo[cZ],
        CocheCreadoInfo[cA],
        CocheCreadoInfo[cColor],
        CocheCreadoInfo[cColor2],
        CocheCreadoInfo[cFaccion]);
        CreateVehicle(CocheCreadoInfo[cModelo], CocheCreadoInfo[cX], CocheCreadoInfo[cY], CocheCreadoInfo[cZ], CocheCreadoInfo[cA], CocheCreadoInfo[cColor], CocheCreadoInfo[cColor2],(30*60));
        printf("Coche: %s | Spawneado", var);
    }
    fclose(autos);
    return 1;
}
No lee los vehiculos que se guardan con:

pawn Код:
stock GuardarAuto(zmodelo, Float:zX, Float:zY, Float:zZ, Float: zA, zcolor1, zcolor2, zfaccion)
{
    new inf[256];
   
    CocheCreadoInfo[cModelo] = zmodelo;
    CocheCreadoInfo[cX] = zX;
    CocheCreadoInfo[cY] = zY;
    CocheCreadoInfo[cZ] = zZ;
    CocheCreadoInfo[cA] = zA;
    CocheCreadoInfo[cColor] = zcolor1;
    CocheCreadoInfo[cColor2] = zcolor2;
    CocheCreadoInfo[cFaccion] = zfaccion;
   
    new File:autos = fopen("fautos.ini", io_append);
    format(inf, sizeof(inf), "%d, %f, %f, %f, %f, %d, %d, %d\r\n",CocheCreadoInfo[cModelo], CocheCreadoInfo[cX], CocheCreadoInfo[cY], CocheCreadoInfo[cZ], CocheCreadoInfo[cA], CocheCreadoInfo[cColor], CocheCreadoInfo[cColor2], CocheCreadoInfo[cFaccion]);
    fwrite(autos, inf);
    fclose(autos);
    return 1;
}
(Se guardan bien, comprobado, pero no cargan) Con el comando:

pawn Код:
if(strcmp(cmd, "/guardarveh", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            if(Informacion[playerid][Admin] == 5)
            {
                new coche, col, col2, Float:zX, Float:zY, Float:zZ, Float: zA, tmp[256], faccion;
                tmp = strtok(cmdtext, idx);
                faccion = strval(tmp);
                if(!strlen(tmp)) return SendClientMessage(playerid, GRIS, "Debes usar /guardarveh <id de faccion>.");
                if(strval(tmp) < 0 || strval(tmp) > 6) return SendClientMessage(playerid, GRIS, "La facciуn debe ser mбs de 0 y menos de 6!");
                coche = GetPlayerVehicleID(playerid);
                GetVehiclePos(coche, zX, zY, zZ);
                GetVehicleZAngle(coche, zA);
                col = GetVehicleColor1(coche);
                col2 = GetVehicleColor2(coche);
                GuardarAuto(coche, zX, zY, zZ, zA, col, col2, faccion);
                SendClientMessage(playerid, AMARILLO, "ЎPosiciуn guardada!");
            }
            else
            {
                SendClientMessage(playerid, ROJO, "Lo sentimos, Necesitas nivel 5(cinco) de administrador.");
            }
        }
        return 1;
    }

Porfavor, me podrian ayudar? Dx
Un saludo!
Reply
#2

pawn Код:
stock LeerAutos()
{
    if(!fexist("fautos.ini"))return 0;
    new inf[64], File:autos = fopen("fautos.ini", io_read);
    while(fread(autos, inf)){
        sscanf(inf, "dffffddd",
            CocheCreadoInfo[cModelo],
            CocheCreadoInfo[cX],
            CocheCreadoInfo[cY],
            CocheCreadoInfo[cZ],
            CocheCreadoInfo[cA],
            CocheCreadoInfo[cColor1],
            CocheCreadoInfo[cColor2],
            CocheCreadoInfo[cFaccion]);
        printf("Coche: %d, %f, %f, %f, %f, %d, %d, %d | Spaweneado",
            CocheCreadoInfo[cModelo],
            CocheCreadoInfo[cX],
            CocheCreadoInfo[cY],
            CocheCreadoInfo[cZ],
            CocheCreadoInfo[cA],
            CocheCreadoInfo[cColor1],
            CocheCreadoInfo[cColor2],
            CocheCreadoInfo[cFaccion]);
    }
    return fclose(autos);
}

stock GuardarAuto(zmodelo, Float:zX, Float:zY, Float:zZ, Float:zA, zcolor1, zcolor2, zfaccion)
{
    new inf[64], File:autos;
    #if defined USE_LIST
        if(!fexist("fautos.ini"))autos = fopen("fautos.ini", io_write);
        else autos = fopen("fautos.ini", io_append);
    #else
        autos = fopen("fautos.ini", io_write);
    #endif
    CocheCreadoInfo[cModelo] = zmodelo;
    CocheCreadoInfo[cX] = zX;
    CocheCreadoInfo[cY] = zY;
    CocheCreadoInfo[cZ] = zZ;
    CocheCreadoInfo[cA] = zA;
    CocheCreadoInfo[cColor1] = zcolor1;
    CocheCreadoInfo[cColor2] = zcolor2;
    CocheCreadoInfo[cFaccion] = zfaccion;
    format(inf, 64, "%d %f %f %f %f %d %d %d\r\n",
        CocheCreadoInfo[cModelo],
        CocheCreadoInfo[cX],
        CocheCreadoInfo[cY],
        CocheCreadoInfo[cZ],
        CocheCreadoInfo[cA],
        CocheCreadoInfo[cColor1],
        CocheCreadoInfo[cColor2],
        CocheCreadoInfo[cFaccion]);
    fwrite(autos, inf);
    return fclose(autos);
}
tene cuidado que guarda un auto 2 veces, para q eso no pase, defini USE_LIST, pero ojo, vas a tener que guardar auto x auto del archivo. no entendi muy bien xq la hiciste asi, solo la corregi un poquito para que funcione bien.

PD: necesitas el plugin sscanf
Reply
#3

Lo hice asн para guardar los autos de uno en uno con /guardarveh :3 x]
Lo probare y editare este msg (si respondes harй la respuesta xd)

Pero tambiйn quiero q al guardarlos, se carguen desde el archivo..

Cуmo que defina "USE_LIST" lo defino como que osea, #define USE_LIST ?
Reply
#4

si es asi:
si vas a usar un cmd para crear los autos, pone en algun lado de tu gm
pawn Код:
#define USE_LIST
si vas a cargarlos y guardarlos con el inicio/fin del fs, entonces no definias "USE_LIST"

PD: xq cuando guardas los autos en la funcion almacenas la info en otros arrays y despues la usas? xq no usarla directamente??
Reply
#5

porque no esq sea experto en esto xD
porcierto, no es para FS, es para el GM de rp de 0 que estoy montando con un amigo...

y lo del comando es /crearveh y va de 10% pero uso /guardarveh para guardarlo en el archivo, pero quiero que carguen, cуmo lo hago? he intentado poniendo:

pawn Код:
CreateVehicle(CocheCreadoInfo[cModelo],CocheCreadoInfo[cX],CocheCreadoInfo[cY],CocheCreadoInfo[cZ],CocheCreadoInfo[cA],CocheCreadoInfo[cColor],CocheCreadoInfo[cColor2], (30*60));
Y con AddStaticVehicleEx pero nada no sale xD pero si lo lee bien :l

Ezpero tъ respuesta :3
Reply
#6

donde lo estas poniendo?
Reply
#7

En el stock LeerAutos y LeerAutos(); en ongamemodeinit
Reply
#8

Quote:
Originally Posted by Pepot
Посмотреть сообщение
En el stock LeerAutos y LeerAutos(); en ongamemodeinit
Los stock no deben de ir dentro de un callback.
Reply
#9

cambia LeerAutos asi:
pawn Код:
stock LeerAutos()
{
    if(!fexist("fautos.ini"))return 0;
    new inf[64], File:autos = fopen("fautos.ini", io_read);
    while(fread(autos, inf)){
        sscanf(inf, "dffffddd",
            CocheCreadoInfo[cModelo],
            CocheCreadoInfo[cX],
            CocheCreadoInfo[cY],
            CocheCreadoInfo[cZ],
            CocheCreadoInfo[cA],
            CocheCreadoInfo[cColor1],
            CocheCreadoInfo[cColor2],
            CocheCreadoInfo[cFaccion]);
        AddStaticVehicle(
            CocheCreadoInfo[cModelo],
            CocheCreadoInfo[cX],
            CocheCreadoInfo[cY],
            CocheCreadoInfo[cZ],
            CocheCreadoInfo[cA],
            CocheCreadoInfo[cColor1],
            CocheCreadoInfo[cColor2]);
    }
    return fclose(autos);
}
Quote:
Originally Posted by arturo clark
Посмотреть сообщение
Los stock no deben de ir dentro de un callback.
creo q quiso decir que usa la funcion en ese callback, si la definiste dentro del callback, entonces no lo hagas.
Reply
#10

Quote:
Originally Posted by the_chaoz
Посмотреть сообщение
cambia LeerAutos asi:
pawn Код:
stock LeerAutos()
{
    if(!fexist("fautos.ini"))return 0;
    new inf[64], File:autos = fopen("fautos.ini", io_read);
    while(fread(autos, inf)){
        sscanf(inf, "dffffddd",
            CocheCreadoInfo[cModelo],
            CocheCreadoInfo[cX],
            CocheCreadoInfo[cY],
            CocheCreadoInfo[cZ],
            CocheCreadoInfo[cA],
            CocheCreadoInfo[cColor1],
            CocheCreadoInfo[cColor2],
            CocheCreadoInfo[cFaccion]);
        AddStaticVehicle(
            CocheCreadoInfo[cModelo],
            CocheCreadoInfo[cX],
            CocheCreadoInfo[cY],
            CocheCreadoInfo[cZ],
            CocheCreadoInfo[cA],
            CocheCreadoInfo[cColor1],
            CocheCreadoInfo[cColor2]);
    }
    return fclose(autos);
}


creo q quiso decir que usa la funcion en ese callback, si la definiste dentro del callback, entonces no lo hagas.
Hmm.. nada, se guarda el cуdigo.. (Prueba

pawn Код:
178, 1894.852294, 2277.534667, 10.332756, 254.529724, 0, 0, 6
Pero no spawnea (no se carga) :l
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)