[Ayuda] Virtualworld e Interior para vehiculos
#1

Hola, como puedo hacer que guarde y cargue el virtualworld y el interior para los vehнculos. Es que lo necesito para un garaje o me causa bugs.
їComo hago para que guarde lo mencionado arriba?
Hasta ahora todo lo de autos lo tengo asн:
Код:
enum cInfo
{
	cModel,
	Float:cLocationx,
	Float:cLocationy,
	Float:cLocationz,
	Float:cAngle,
	cColorOne,
	cColorTwo,
	cOwner[MAX_PLAYER_NAME],
	cName[MAX_PLAYER_NAME],
	cValue,
	cOwned,
	cLock,
	cBattery,
	cSpoiler, 	// Aleron
	cHood,      // Capу
	cRoof,      // Techo
	cSideskirt, // Faldones
	cNitro,     // N20
	cLamps,     // Luces Delanteras
	cExhaust,   // Tubo Escape
	cWheel,     // Llantas
	cHydraulics,    // Hidrбulica
	cPaintjob,    // Stereo
	cFrontBumper,    // Par. Delantero
	cRearBumper,    // Par. Trasero
	cVents,     // Respiraderos
	cEmbargo,
	cMulta,
	cPlate[16],
	cGas,
	cAlarm,
	cVehTime,
	cGPS
};
Код:
public LoadCar()
{
	new arrCoords[34][64], strFromFile2[256];
	new File: file = fopen("cars.cfg", io_read);
	if (file)
	{
	    printf("-========= Coches en venta =======-");
		new idx = VV;
		while (idx < sizeof(CarInfo))
		{
			fread(file, strFromFile2);
			split(strFromFile2, arrCoords, ',');
			CarInfo[idx][cModel] 		= strval(arrCoords[0]);
			CarInfo[idx][cLocationx] 	= floatstr(arrCoords[1]);
			CarInfo[idx][cLocationy] 	= floatstr(arrCoords[2]);
			CarInfo[idx][cLocationz] 	= floatstr(arrCoords[3]);
			CarInfo[idx][cAngle] 		= floatstr(arrCoords[4]);
			CarInfo[idx][cColorOne] 	= strval(arrCoords[5]);
			CarInfo[idx][cColorTwo] 	= strval(arrCoords[6]);
			strmid(CarInfo[idx][cOwner], arrCoords[7], 0, strlen(arrCoords[7]), 255);
			strmid(CarInfo[idx][cName], arrCoords[8], 0, strlen(arrCoords[8]), 255);
			CarInfo[idx][cValue] 		= strval(arrCoords[9]);
			CarInfo[idx][cOwned] 		= strval(arrCoords[10]);
			CarInfo[idx][cLock] 		= strval(arrCoords[11]);
			CarInfo[idx][cBattery] 		= strval(arrCoords[12]);
			CarInfo[idx][cSpoiler] 		= strval(arrCoords[13]);
			CarInfo[idx][cHood] 		= strval(arrCoords[14]);
			CarInfo[idx][cRoof] 		= strval(arrCoords[15]);
			CarInfo[idx][cSideskirt] 	= strval(arrCoords[16]);
			CarInfo[idx][cNitro] 		= strval(arrCoords[17]);
			CarInfo[idx][cLamps] 		= strval(arrCoords[18]);
			CarInfo[idx][cExhaust] 		= strval(arrCoords[19]);
			CarInfo[idx][cWheel] 		= strval(arrCoords[20]);
			CarInfo[idx][cHydraulics] 	= strval(arrCoords[21]);
			CarInfo[idx][cPaintjob] 	= strval(arrCoords[22]);
			CarInfo[idx][cFrontBumper] 	= strval(arrCoords[23]);
			CarInfo[idx][cRearBumper] 	= strval(arrCoords[24]);
			CarInfo[idx][cVents] 		= strval(arrCoords[25]);
			CarInfo[idx][cEmbargo] 		= strval(arrCoords[26]);
			CarInfo[idx][cMulta] 		= strval(arrCoords[27]);
			strmid(CarInfo[idx][cPlate], arrCoords[28], 0, strlen(arrCoords[28]), 255);
			CarInfo[idx][cGas] 			= strval(arrCoords[29]);
			CarInfo[idx][cAlarm] 		= strval(arrCoords[30]);
			CarInfo[idx][cVehTime]      = strval(arrCoords[31]);
			CarInfo[idx][cGPS]          = strval(arrCoords[32]);
			printf("(%d) %s",idx,CarInfo[idx][cName]);
			idx++;
		}
	}
	return 1;
}
Код:
function UpdateCars()
{
    new idx, File: file2, coordsstring[256];
	idx = VV;
 	while (idx < sizeof(CarInfo))
  	{
		format(coordsstring, sizeof(coordsstring), "%d,%f,%f,%f,%f,%d,%d,%s,%s,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%s,%d,%d,%d,%d\n",
		CarInfo[idx][cModel],
		CarInfo[idx][cLocationx],
		CarInfo[idx][cLocationy],
		CarInfo[idx][cLocationz],
		CarInfo[idx][cAngle],
		CarInfo[idx][cColorOne],
		CarInfo[idx][cColorTwo],
		CarInfo[idx][cOwner],
		CarInfo[idx][cName],
		CarInfo[idx][cValue],
		CarInfo[idx][cOwned],
		CarInfo[idx][cLock],
		CarInfo[idx][cBattery],
		CarInfo[idx][cSpoiler],
		CarInfo[idx][cHood],
		CarInfo[idx][cRoof],
		CarInfo[idx][cSideskirt],
		CarInfo[idx][cNitro],
		CarInfo[idx][cLamps],
		CarInfo[idx][cExhaust],
		CarInfo[idx][cWheel],
		CarInfo[idx][cHydraulics],
		CarInfo[idx][cPaintjob],
		CarInfo[idx][cFrontBumper],
		CarInfo[idx][cRearBumper],
		CarInfo[idx][cVents],
		CarInfo[idx][cEmbargo],
		CarInfo[idx][cMulta],
		CarInfo[idx][cPlate],
		CarInfo[idx][cGas],
		CarInfo[idx][cAlarm],
		CarInfo[idx][cVehTime],
		CarInfo[idx][cGPS]);
		
		if(idx == VV)	file2 = fopen("cars.cfg", io_write);
		else			file2 = fopen("cars.cfg", io_append);
		
		fwrite(file2, coordsstring);
		idx++;
		fclose(file2);
	}
}
Reply
#2

Aсade cVWorld y cInt en tu enum cInfo y utilizalos convenientemente en el resto de tus funciones.
Reply
#3

Quote:
Originally Posted by alexus
Посмотреть сообщение
Aсade cVWorld y cInt en tu enum cInfo y utilizalos convenientemente en el resto de tus funciones.
їLo guardo de esta manera?
CarInfo[idx][cVirWorld] = GetVehicleVirtualWorld(vehicleid);
CarInfo[idx][cVirWorld]);
Reply
#4

CarInfo[idx][cVirWorld] = GetVehicleVirtualWorld(idx);

En cuanto al interior le asignas el que tъ desees:

CarInfo[idx][cInt] = interior;

Al crear los coches debes usar LinkVehicleToInterior(vehicleid, interior);
Reply
#5

Quote:
Originally Posted by alexus
Посмотреть сообщение
CarInfo[idx][cVirWorld] = GetVehicleVirtualWorld(idx);

En cuanto al interior le asignas el que tъ desees:

CarInfo[idx][cInt] = interior;

Al crear los coches debes usar LinkVehicleToInterior(vehicleid, interior);
Pero como obtengo y/o pongo un vehiculo en un interior?
en un jugador seria SetPlayerInterior
їExiste SetVehicleInterior?
y
їGetVehicleInterior?
Reply
#6

їPodrнa usar este?
Код:
new vInterior[MAX_VEHICLES];
stock SetVehicleInterior(vehicleid,interiorid)
{
    LinkVehicleToInterior(vehicleid,interiorid);
    vInterior[vehicleid]=interiorid;
}
stock GetVehicleInterior(vehicleid)return vInterior[vehicleid]=interiorid;
Reply
#7

No es asi. No existe SetVehicleInterior ni GetVehicleInterior. Cuando desees situar un vehнculo en un interior debes hacerlo en el momento de crearlo de la siguiente manera:
Код:
new tuvehiculo1 = CreateVehicle(id,x,y,z,angle,respawntime); // pon tus valores...
LinkVehicleToInterior(tuvehiculo1,tuinterior1); // el interior donde deseas ponerlo
CarInfo[tuvehiculo1][cInt] = tuinterior1; // aqui guardas el interior en su variable
Bajo OnVehicleSpawn:

Код:
if (tuvehiculo1 == vehicleid) LinkVehicleToInterior(tuvehiculo1,tuinterior1);
Eso deberбs hacerlo con todos los vehнculos que quieras situar en un interior.
Reply
#8

Quote:
Originally Posted by alexus
Посмотреть сообщение
No es asi. Cuando desees situar un vehнculo en un interior debes hacerlo en el momento de crearlo de la siguiente manera:
Код:
tuvehiculo = CreateVehicle(id,x,y,z,angle,respawntime); // pon tus valores...
LinkVehicleToInterior(tuvehiculo,tuinterior); // el interior donde deseas ponerlo
CarInfo[tuvehiculo][cInt] = tuinterior;
Eso deberбs hacerlo con todos los vehнculos que quieras situar en un interior.
Pero no quiero crear vehнculos, los vehнculos ya estбn creados, lo que yo quiero es entrar o salir de un interior con un vehнculo, osea un garaje, al estacionar el vehнculo en el garaje se guardan los datos de interior y virtualworld, en el archivo cars.cfg.
El gm que tengo es en base a ciudad prohibida, pero los autos de ciudad prohibida no guardan los datos de interior y virtualworld, y yo lo que quiero es que si lo guarden.
Reply
#9

En ese caso:

Код:
CarInfo[idx][cVirWorld] = GetVehicleVirtualWorld(idx); // no cambia

Suponiendo que estas dentro del coche:

CarInfo[idx][cInt] = GetPlayerInterior(playerid) ;
Porque si te bajas del coche y sales fuera no hay manera de saber en quй interior lo dejaste
Reply
#10

Quote:
Originally Posted by alexus
Посмотреть сообщение
En ese caso:

Код:
CarInfo[idx][cVirWorld] = GetVehicleVirtualWorld(idx); // no cambia

Suponiendo que estas dentro del coche:

CarInfo[idx][cInt] = GetPlayerInterior(playerid) ;
Porque si te bajas del coche y sales fuera no hay manera de saber en quй interior lo dejaste
їQuedarнa asн?
Код:
function UpdateCars()
{
    new idx, File: file2, coordsstring[256];
	idx = VV;
	CarInfo[idx][cInt] = GetVehicleInterior(playerid);
	CarInfo[idx][cVirWorld] = GetVehicleVirtualWorld(idx);
 	while (idx < sizeof(CarInfo))
  	{
		format(coordsstring, sizeof(coordsstring), "%d,%f,%f,%f,%f,%d,%d,%s,%s,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%s,%d,%d,%d,%d,%d,%d\n",
		CarInfo[idx][cModel],
		CarInfo[idx][cLocationx],
		CarInfo[idx][cLocationy],
		CarInfo[idx][cLocationz],
		CarInfo[idx][cAngle],
		CarInfo[idx][cColorOne],
		CarInfo[idx][cColorTwo],
		CarInfo[idx][cOwner],
		CarInfo[idx][cName],
		CarInfo[idx][cValue],
		CarInfo[idx][cOwned],
		CarInfo[idx][cLock],
		CarInfo[idx][cBattery],
		CarInfo[idx][cSpoiler],
		CarInfo[idx][cHood],
		CarInfo[idx][cRoof],
		CarInfo[idx][cSideskirt],
		CarInfo[idx][cNitro],
		CarInfo[idx][cLamps],
		CarInfo[idx][cExhaust],
		CarInfo[idx][cWheel],
		CarInfo[idx][cHydraulics],
		CarInfo[idx][cPaintjob],
		CarInfo[idx][cFrontBumper],
		CarInfo[idx][cRearBumper],
		CarInfo[idx][cVents],
		CarInfo[idx][cEmbargo],
		CarInfo[idx][cMulta],
		CarInfo[idx][cPlate],
		CarInfo[idx][cGas],
		CarInfo[idx][cAlarm],
		CarInfo[idx][cVehTime],
		CarInfo[idx][cGPS],
		CarInfo[idx][cInt],
		CarInfo[idx][cVirWorld]);
		
		if(idx == VV)	file2 = fopen("cars.cfg", io_write);
		else			file2 = fopen("cars.cfg", io_append);
		
		fwrite(file2, coordsstring);
		idx++;
		fclose(file2);
	}
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)