SA-MP Forums Archive
Funciуn y callback para cargar 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: Funciуn y callback para cargar autos. (/showthread.php?tid=383003)



Funciуn y callback para cargar autos. - jwalker - 06.10.2012

Hola, he estado haciendo un sistema de autos. El problema es que yo no sй como guardarlos, intentй haciendo un public pero no me sirviу bien, acб estб el enum:

pawn Код:
Model, //El modelo del auto, o sea id de wiki samp.
    Estado, //Si tiene dueсo o no.
   
    Float:PosX, //Posiciуn en X.
    Float:PosY, //Posiciуn en Y.
    Float:PosZ, //Posiciуn en Z.
    Float:Angulo, //Su angulo.
   
    ColorUno, //Color uno.
    ColorDos, //Color dos.
   
    Propietario[256], //Nombre del propietario, si tiene.
    Placa[256], //Descripciуn del auto.
   
    Precio, //Precio del auto.
    TipoAlarma,
    Lock, // Si esta abierto o cerrado.
   
    aEstado,
    EstadoGomas,
    EstadoPuertas,
    EstadoGasolina .
Y asн se guarda:

pawn Код:
stock aUpdate(vehicleid)
{
    format(Archivo, sizeof(Archivo), "autos/%d.ini", vehicleid);
   
    if(!fexist(Archivo))
    {
        dini_Create(Archivo);
    }

    dini_IntSet(Archivo, "Model", CarInfo1[vehicleid][Model]);
    dini_IntSet(Archivo, "Estado", CarInfo1[vehicleid][Estado]); // O sea en venta.

    dini_FloatSet(Archivo, "PosX", CarInfo1[vehicleid][PosX]);
    dini_FloatSet(Archivo, "PosY", CarInfo1[vehicleid][PosY]);
    dini_FloatSet(Archivo, "PosZ", CarInfo1[vehicleid][PosZ]);
    dini_FloatSet(Archivo, "Angulo", CarInfo1[vehicleid][Angulo]);

    dini_IntSet(Archivo, "ColorUno", CarInfo1[vehicleid][ColorUno]);
    dini_IntSet(Archivo, "ColorDos", CarInfo1[vehicleid][ColorDos]);

    dini_Set(Archivo, "Propietario", CarInfo1[vehicleid][Propietario]);
    dini_Set(Archivo, "Placa",CarInfo1[vehicleid][Placa]); // La placa que tendrб por default.

    dini_IntSet(Archivo, "Precio",CarInfo1[vehicleid][Precio]);
    dini_IntSet(Archivo, "TipoAlarma", CarInfo1[vehicleid][TipoAlarma]);
    dini_IntSet(Archivo, "Lock", CarInfo1[vehicleid][Lock]);

    dini_IntSet(Archivo, "EstadoPuertas",CarInfo1[vehicleid][EstadoPuertas]);
    dini_IntSet(Archivo, "EstadoGomas",CarInfo1[vehicleid][EstadoGomas]);
    dini_IntSet(Archivo, "aEstado",CarInfo1[vehicleid][aEstado]);
   
   
    return 1;
}
їcуmo los cargo?


Respuesta: Funciуn y callback para cargar autos. - OTACON - 06.10.2012

haz otro stock y coloca las funciones del anterior stock con dini_Int y utiliza el stock donde kieras ke se cargue.


Respuesta: Funciуn y callback para cargar autos. - jwalker - 06.10.2012

Osea le saco el set?


Respuesta: Funciуn y callback para cargar autos. - OTACON - 06.10.2012

Quote:
Originally Posted by jwalker
Посмотреть сообщение
Osea le saco el set?
asi:

pawn Код:
stock Cargar(vehicleid)
{
    format(Archivo, sizeof(Archivo), "autos/%d.ini", vehicleid);
    if(fexist(Archivo))
    {
        SetVehiclePos(vehicleid, dini_Int(Archivo, "PosX"), dini_Int(Archivo, "PosY"), dini_Int(Archivo, "PosZ"));
        SetVehicleZAngle(vehicleid, dini_Int(Archivo, "Angulo"));
        ChangeVehicleColor(vehicleid, dini_Int(Archivo, "ColorUno"), dini_Int(Archivo, "ColorDos"));
        SetVehicleNumberPlate(vehicleid, dini_Int(Archivo, "Placa"));
        //ETC..
        //ETC..
        //ETC..
    }
    return 1;
}
pawn Код:
stock dini_Int(filename[],key[])



Respuesta: Funciуn y callback para cargar autos. - jwalker - 06.10.2012

Para que sirve
pawn Код:
stock dini_Int(filename[],key[])
?

Y otra cosa, hay algъnas funciones por ejemplo la del dueсo, como las expreso?


Respuesta: Funciуn y callback para cargar autos. - OTACON - 06.10.2012

es una funcion del include DINI

Funciones
dini_Create(filename[]); Crea un archivo con el nombre especificado.
dini_Exists(filename[]); Se usa en if's. Detecta si el archivo ya existe
dini_Remove(filename[]); Elimina el archivo especificado.
dini_Int(filename[], key[]); Obtiene el valor de "key"
dini_IntSet(filename[], key[], value); Cambia el valor de "key".


Uso de Dini

y lo otro, segun tu sistema de vehiculo, pero supongo ke con un format o strcmp.


Re: Funciуn y callback para cargar autos. - digman - 06.10.2012

Te serviria buscar algunos GMґS q utilizaron DINI para aprender bien su uso asi ise yo .


Respuesta: Funciуn y callback para cargar autos. - jwalker - 06.10.2012

Bien, gracias. Ya solucionй eso, ahora tengo un problema con autos. Agregй esto:

pawn Код:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
    new newcar;
    if(newcar >= 1 && newcar <= 17)
      {
         if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1){
         {
             SendClientMessage(playerid, 0x7EBEFFFF,"No perteneces al Cuerpo Policial [Cуdigo 1].");}
         }
      }
}
Pero cualquiera puede subirse a las patrullas, aun no siendo SAPD.


Respuesta: Funciуn y callback para cargar autos. - OTACON - 06.10.2012

pawn Код:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
    new newcar;
    if(newcar >= 1 && newcar <= 17)
      {
         if(PlayerInfo[playerid][pMember] != 1 || PlayerInfo[playerid][pLeader] != 1){
         {
             SendClientMessage(playerid, 0x7EBEFFFF,"perteneces al Cuerpo Policial [Cуdigo 1].");}
         }
         ekse
         {
             SendClientMessage(playerid, 0x7EBEFFFF,"No perteneces al Cuerpo Policial [Cуdigo 1].");}
         }
      }
}