IDs de vehiculos dinбmicos? -
Su37Erich - 01.10.2014
Hola,
Hoy me puse a analizar un fallo en mi sistema de casas, el cual afectaba a los autos. Cuando usaba el comando /traerauto y seleccionaba un coche me traнa otro auto que no era el mнo o no me traнa nada, bien entonces decidн revisar todo el cуdigo, no encontrй error de nada, hice pruebas de escritorio y todo deberнa funcionar correctamente...
Hasta que me encontrй con el posible error, y este es que los IDs de autos cambian dinбmicamente, bueno tal vez.
1. Supongamos que yo al entrar al servidor se crea mi auto que comprй, entonces a una variable 'X' le pongo el ID de este auto que se creo para despuйs saber que ese auto es mнo conforme a su ID de auto.
El ID es 1200
2. 5 minutos despuйs en el servidor hay un usuario2 que explota su auto (ID 1998 ) y lo pierde (el sistema lo borra con DestroyVehicle(vehicleid); )
3. 1 minuto despuйs el Administrador del servidor usa /respawnveh, que respawnea todos los autos
4. Mi auto segъn los IDs de autos del SA-MP se le asigna ahora el ID 1998 que fue el del auto que explotу del usuario2 o tal vez el id 1199 o sea uno menos.
5. 5 segundos despuйs quiero usar mi auto, uso el comando /traerauto y selecciono mi auto. La variable que almacenaba el ID de mi auto tiene el valor 1200, asн que me va a traer el ID de auto 1200 mas no el 1998 o 1199 que se cambiу que es mi auto, entonces si no existe no me trae nada y ahн el problema.
їEsto que digo en verdad es cierto?
Si es cierto, por favor alguien me pueda ayudar, ya que en OnVehicleSpawn no tiene los parбmetros newid, oldid
Respuesta: IDs de vehiculos dinбmicos? -
Goncho28 - 02.10.2014
Seteale una id propia al auto
Respuesta: IDs de vehiculos dinбmicos? -
OTACON - 02.10.2014
crear la variable del vehнculo con MAX_VEHICLES(vehicleid) .
Respuesta: IDs de vehiculos dinбmicos? -
ranslsad - 02.10.2014
Claro, la solucion es que al crear el vehiculo crees una variable que guarde el ID del vehiculo del juego y otra el ID del vehiculo que usas.
Por ej el vehiculo que tienes guardado tiene ID 7, pero al cargarlo se carga el numer 32 en el juego, pues tu coche ID7 en el juego es ID 32.
Salu2
Ranslsad
Re: IDs de vehiculos dinбmicos? -
Su37Erich - 02.10.2014
Gracias por responder
Mmmm, їpero como hago referencia en el juego a eso?, їcomo se que al re-spawnearlo serб el ID 32?
Como se esto:
Quote:
pero al cargarlo se carga el numer 32
|
A la hora de respawnearlo їcomo se que mi ID de auto antiguo se cambiу al ID 32?
Respuesta: IDs de vehiculos dinбmicos? -
[J]ulian - 03.10.2014
їPara quй destruirlo? Cambiale el interior a uno que no uses y listo. Luego lo devuelves a 0 cuando lo quieras "crear" de nuevo.
Respuesta: Re: IDs de vehiculos dinбmicos? -
ranslsad - 03.10.2014
Quote:
Originally Posted by Su37Erich
Gracias por responder
Mmmm, їpero como hago referencia en el juego a eso?, їcomo se que al re-spawnearlo serб el ID 32?
Como se esto:
A la hora de respawnearlo їcomo se que mi ID de auto antiguo se cambiу al ID 32?
|
Que yo entienda bien, lo que quieres que identificar un coche en el juego para saber quien es el dueсo al usarlo?.
Salu2
Ranslsad
Respuesta: IDs de vehiculos dinбmicos? -
lucio2405 - 04.10.2014
ese problema es rompe cabeza pero yo lo solucione mira este es la solucion por ejemplo en la parte de crear el coche osea cunado lo comprar debes poner esto mas o menos guiate no pongas igual
Код:
#define MAX_VEHGM 50 //esto es una definicion de los vehiculos del gm osea si tu gm tiene x vehiculos pertenecientes a facciones y jobs pon ese numero aqui
#define MAX_VEHICLESVT 200// y este es el numero de vehiculos que estan en stock osea para comprar aqui pones el numero que quieras me imagino que tu gm ya tiene este define solo guiate es el numero de creaciones dinamicas puede estar definido como MAX_DVEHICLES me imagino
//esto va en el dialogo o menu de creacion de tus coches
new freeid;//no se como estara en tu gm pero esto identifica una id libre para crear un coche
for(new i=MAX_VEHGM+1; i < MAX_VEHICLESVT; i++) //y esto es lo que debes poner
{
if(!VehicleCreated[i])
{
freeid = i; break;
}
}
//esta parte la has de tener asi mas o menos
for(new i=0; i < MAX_VEHICLESVT; i++) //esto es lo que impide cargar las id de los coches
//esto debe de estar en el dialogo de compra no se como estara en tu gm pero talvez este debajo de esto
if(dialogid == DIALOG_VEHICLE_BUY)
//ahora en gamemodeini pones esto
for(new i=MAX_VEHGM+1; i < MAX_VEHICLESVT; i++)
{
UpdateVehicle(i, 0);
}
//y ojo con esto en el mismo gamemodeini fijate que el forward que carga tus coches que seria algo como esto
LoadVehicles();
//este debajo de todos los coches del gm osea debajo del ultimo coche de facciones y jobs mas o menos asi
// Mecбnicos LS (67 - 77)
AddStaticVehicleEx(525,2299.4011,-2002.2642,13.2817,3.7060,-1,103,60000); //Tow Truck 63
AddStaticVehicleEx(525,2293.8254,-2001.5095,13.2808,359.3708,-1,103,60000); //Tow Truck 64
AddStaticVehicleEx(525,2289.4182,-2001.1570,13.2774,0.8536,-1,103,60000); //Tow Truck 65
AddStaticVehicleEx(525,2258.1384,-1997.0146,13.2694,355.9609,-1,103,60000); //Tow Truck 66
LoadVehicles();
Espero haberte ayudado si algo no entendistes me lo haces saber
Re: IDs de vehiculos dinбmicos? -
Su37Erich - 04.10.2014
Hola,
Me ayudado mucho con una idea, me he propuesto una soluciуn con freeid, voy a probarlo y edito este mensaje maсana, para que te informe de los resultados.
Gracias por la explicaciуn, aunque algunas cosas estuvieron confusas o faltaban cosas