Sistema de vehнculos
#1

Buenas, he puesto un sistema de vehнculos en mi GM hecho desde cero, copiбndolo del de "The Godfather", he copiado algunas cosas para ver si servнa, no da ningъn error, pero los vehнculos no aparecen.

Al principio del server:
Код:
forward CargarCoches();

enum InfoCoche
{
	Modelo,
	Float:Posicionx,
	Float:Posiciony,
	Float:Posicionz,
	ColorUno
};
new Coche[2][InfoCoche];
En OnGameModeInit:
Код:
for(new h = 0; h < sizeof(Coche); h++)
	{
			CreateVehicle(Coche[h][Modelo],Coche[h][Posicionx],Coche[h][Posiciony],Coche[h][Posicionz],180,Coche[h][ColorUno],16,0);
	}
La callback de CargarCoches:
Код:
public CargarCoches()
{
	new arrCoords[5][64];
	new strFromFile2[256];
	new File: file = fopen("Coches/cars.cfg", io_read);
	if (file)
	{
		new idx;
		while (idx < sizeof(Negocio))
		{
			fread(file, strFromFile2);
			split(strFromFile2, arrCoords, ',');
			Coche[idx][Modelo] = strval(arrCoords[0]);
			Coche[idx][Posicionx] = floatstr(arrCoords[1]);
			Coche[idx][Posiciony] = floatstr(arrCoords[2]);
			Coche[idx][Posicionz] = floatstr(arrCoords[3]);
			Coche[idx][ColorUno] = strval(arrCoords[4]);
			
			idx++;
		}
		fclose(file);
	}
	return 1;
}
En la parte para se guarden los coches es esta, dentro de la callback "GuardarCosas", tambiйn se guardan ahн las casas y los negocios, no dan problemas:
Код:
idx = 0;
    while (idx < sizeof(Coche))
    {
        new coordsstring[256];
        format(coordsstring, sizeof(coordsstring), "%d,%f,%f,%f,%d\n",
        Coche[idx][Modelo],
        Coche[idx][Posicionx],
        Coche[idx][Posiciony],
        Coche[idx][Posicionz],
		Coche[idx][ColorUno]);

        if(idx == 0)
        {
            file2 = fopen("Coches/cars.cfg", io_write);
        }
        else
        {
            file2 = fopen("Coches/cars.cfg", io_append);
        }
        fwrite(file2, coordsstring);
        idx++;
        fclose(file2);
    }


Gracias de antemano.
Reply
#2

En OnGameModeInit:

pawn Код:
CargarCoches();
Reply
#3

Gracias, acabo de hacer eso, pero ahora hay un problema, ahora ningъn vehнculo aparece en el server cuando lo inicio, ni siquiera los del GameMode.

їQuй puede ser?
Reply
#4

pawn Код:
#define MAX_COCHES (100)
new cochesitos[MAX_COCHES];
pawn Код:
// leer el archivo
new File:archivo = fopen("coches/cars.cfg", io_read), datos[200], autos;
if(archivo){
    while(fread(archivo, datos)){
        _StripNewLine(datos);
        new Float:coord[4], model;
        if(!sscanf(datos, "p<,>dffff", model, coord[0],coord[1],coord[2], coord[4])){
            cochesitos[autos] = AddStaticVehicleEx(model, coord[0],coord[1],coord[2], coord[4], -1, -1, 99999);
        }
        autos++;
    }
    fclose(archivo);
}
pawn Код:
// guardar en archivo
new File:archivo = fopen("coches/cars.cfg", io_write), datos[200];
if(archivo){
    for(new vehicleid=0; vehicleid<MAX_VEHICLES; vehicleid++)   {
        if(IsValidVehicle(vehicleid)){
            for(new autos=0; autos<sizeof(cochesitos); autos++){
                if(vehicleid == cochesitos[autos]){
                    new Float:coord[4], model;
                    model = GetVehicleModel(cochesitos[autos]);
                    GetVehiclePos(cochesitos[autos], coord[0],coord[1],coord[2]);
                    GetVehicleZAngle(cochesitos[autos], coord[4]);
                    format(datos,sizeof(datos),"%d,%f,%f,%f,%f\r\n", model,coord[0],coord[1],coord[2], coord[4]);
                    fwrite(archivo, datos);
                    DestroyVehicle(cochesitos[autos]);
                }
            }
        }
    }
    fclose(archivo);
}
pawn Код:
stock _StripNewLine(string[]) {//dini
    new len = strlen(string);
    if (string[0]==0) return ;
    if ((string[len - 1] == '\n') || (string[len - 1] == '\r')) {
        string[len - 1] = 0;
        if (string[0]==0) return ;
        if ((string[len - 2] == '\n') || (string[len - 2] == '\r')) string[len - 2] = 0;
    }
}
https://sampwiki.blast.hk/wiki/File_Functions
Reply
#5

Gracias, pero no entiendo nada de esos cуdigos, їse tendrнa que cambiar todo no? :/
Reply
#6

todo, que?.. -.-
Reply
#7

Quote:
Originally Posted by ib95
Посмотреть сообщение
Gracias, acabo de hacer eso, pero ahora hay un problema, ahora ningъn vehнculo aparece en el server cuando lo inicio, ni siquiera los del GameMode.

їQuй puede ser?
Entonces hay un problema con la funciуn guardado o cargado de coches
Reply
#8

Quote:
Originally Posted by jwalker
Посмотреть сообщение
Entonces hay un problema con la funciуn guardado o cargado de coches
He posteado ambas funciones, al principio la de cargado y luego la de guardado, їcuбl serб?
Reply
#9

Hay una parte en la funciуn donde cargas los vehнculos, que posiblemente sea la que causa eso:

pawn Код:
new idx;
        while (idx < sizeof(Negocio)) // Esta parte
        {
їSeguro que es sizeof(Negocio) y no sizeof(Coche)?
Reply
#10

Quote:
Originally Posted by LuiisRubio
Посмотреть сообщение
Hay una parte en la funciуn donde cargas los vehнculos, que posiblemente sea la que causa eso:

pawn Код:
new idx;
        while (idx < sizeof(Negocio)) // Esta parte
        {
їSeguro que es sizeof(Negocio) y no sizeof(Coche)?
Tremendo fallo mнo, disculpa las molestias, gracias a todos por tomarse tiempo en ayudarme.
Te aсado reputaciуn, un saludo.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)