SA-MP Forums Archive
[Ayuda] 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] Autos (/showthread.php?tid=269469)



[Ayuda] Autos - Pepot - 16.07.2011

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!


Respuesta: [Ayuda] Autos - TheChaoz - 16.07.2011

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


Respuesta: [Ayuda] Autos - Pepot - 16.07.2011

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 ?


Respuesta: [Ayuda] Autos - TheChaoz - 16.07.2011

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??


Respuesta: [Ayuda] Autos - Pepot - 16.07.2011

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


Respuesta: [Ayuda] Autos - TheChaoz - 16.07.2011

donde lo estas poniendo?


Respuesta: [Ayuda] Autos - Pepot - 16.07.2011

En el stock LeerAutos y LeerAutos(); en ongamemodeinit


Re: Respuesta: [Ayuda] Autos - arturo clark - 16.07.2011

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


Respuesta: Re: Respuesta: [Ayuda] Autos - TheChaoz - 16.07.2011

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.


Respuesta: Re: Respuesta: [Ayuda] Autos - Pepot - 16.07.2011

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