21.12.2013, 05:33
ah puede ser, ya que creo que OnVehicleSpawn es llamado cuando el vehiculo spawnea no creado, osea cuando inicias el gm son creados y no es llamado el call OnVehicleSpawn , es llamado cuando es respawneado con la funcion,destruido por explosion, respawneado con el parametro delay de la funcion que lo crea.
este test funciona perfecto
.
este test funciona perfecto

pawn Код:
//TESTING...
#include <a_samp>
#include <zcmd> //https://sampforum.blast.hk/showthread.php?tid=91354
#include <sscanf2> //https://sampforum.blast.hk/showthread.php?tid=120356
//FUNCTION...
new PaintjobVehicle[MAX_VEHICLES],bool:PaintjobActivated[MAX_VEHICLES];
#define GetVehiclePaintjob(%0) PaintjobActivated[%0]
#define GetVehiclePaintjobType(%0) PaintjobVehicle[%0]
stock ChangeVehiclePaintjobEx(vehicleid, paintjobid){
PaintjobVehicle[vehicleid] = paintjobid;
PaintjobActivated[vehicleid] = true;
return ChangeVehiclePaintjob(vehicleid, paintjobid); }
#define ChangeVehiclePaintjob ChangeVehiclePaintjobEx
#define RemoveVehiclePaintjob(%0) PaintjobActivated[%0]=false, ChangeVehiclePaintjob(%0, 3)
/*
native ChangeVehiclePaintjob(vehicleid, paintjobid); //para colocar el paintjob al vehiculo correspondiente (es el del por defecto de SA-MP).
native RemoveVehiclePaintjob(vehicleid); //para remover el paintjob del vehiculo correspondiente.
native GetVehiclePaintjob(vehicleid); //para verificar si el vehiculo correspondiente tiene un paintjob colocado.
native GetVehiclePaintjobType(vehicleid); //para verificar el tipo de paintjob colocado en el vehiculo correspondiente.
*/
//FUNCTION...
new ColorVehicle[2][MAX_VEHICLES];
#define GetVehicleColor1(%0) ColorVehicle[0][%0]
#define GetVehicleColor2(%0) ColorVehicle[1][%0]
stock ChangeVehicleColorEx(vehicleid, color1, color2){
ColorVehicle[0][vehicleid] = color1;
ColorVehicle[1][vehicleid] = color2;
return ChangeVehicleColor(vehicleid, color1, color2); }
#define ChangeVehicleColor ChangeVehicleColorEx
/*
native ChangeVehicleColor(vehicleid, color1, color2); //el del por defecto de SA-MP
native GetVehicleColor1(vehicleid); //para verificar e guardar el color 1 que tiene el vehiculo
native GetVehicleColor2(vehicleid); //para verificar e guardar el color 2 que tiene el vehiculo
*/
public OnVehicleSpawn(vehicleid){
if(GetVehiclePaintjob(vehicleid)){ //si tiene paintjob
ChangeVehiclePaintjob(vehicleid, GetVehiclePaintjobType(vehicleid));
ChangeVehicleColor(vehicleid, GetVehicleColor1(vehicleid), GetVehicleColor2(vehicleid));
}else{ //no tiene paintjob
RemoveVehiclePaintjob(vehicleid);
ChangeVehicleColor(vehicleid, GetVehicleColor1(vehicleid), GetVehicleColor2(vehicleid));
}
return true;
}
COMMAND:colorveh(playerid, params[]){
new vehicleid = GetPlayerVehicleID(playerid), data[128];
if(sscanf(params, "dd", params[0], params[1])) return SendClientMessage(playerid, -1, "Escribe: /colorveh [color1] [color2]");
format(data,sizeof(data),"Color Anterior en Variable: [color1:%d - color2:%d]",GetVehicleColor1(vehicleid),GetVehicleColor2(vehicleid));
SendClientMessage(playerid,-1,data);
ChangeVehicleColor(vehicleid, params[0], params[1]);
format(data,sizeof(data),"Color Colocado: [color1:%d - color2:%d] - Color guardado en Variable: [color1:%d - color2:%d]",params[0], params[1], GetVehicleColor1(vehicleid),GetVehicleColor2(vehicleid));
SendClientMessage(playerid,-1,data);
return true;
}
COMMAND:paintjobveh(playerid, params[]){
new vehicleid = GetPlayerVehicleID(playerid), data[128];
if(sscanf(params, "d", params[0])) return SendClientMessage(playerid, -1, "Escribe: /paintjobveh [paintjob]");
format(data,sizeof(data),"tipo de paintjob Anterior en Variable: [paintjob:%d] - paintjob modo[%b]", GetVehiclePaintjobType(vehicleid), GetVehiclePaintjob(vehicleid));
SendClientMessage(playerid,-1,data);
ChangeVehiclePaintjob(vehicleid, params[0]);
format(data,sizeof(data),"tipo de paintjob Colocado: [paintjob:%d] - tipo de paintjob guardado en Variable: [paintjob:%d] - paintjob activado[%b]",params[0], GetVehiclePaintjobType(vehicleid), GetVehiclePaintjob(vehicleid));
SendClientMessage(playerid,-1,data);
return true;
}
COMMAND:paintjobremove(playerid, params[]){
new vehicleid = GetPlayerVehicleID(playerid), data[128];
format(data,sizeof(data),"removiste el [paintjob:%d] al vehiculo [vehicleid:%d]",GetVehiclePaintjob(vehicleid), vehicleid);
SendClientMessage(playerid,-1,data);
RemoveVehiclePaintjob(vehicleid);
format(data,sizeof(data),"el vehiculo: [vehicleid:%d] tiene el paintjob: [paintjob:%d]",vehicleid, GetVehiclePaintjob(vehicleid));
SendClientMessage(playerid,-1,data);
return true;
}
COMMAND:paintjobactivated(playerid, params[]){
new vehicleid = GetPlayerVehicleID(playerid), data[128];
format(data,sizeof(data),"el vehiculo [vehicleid:%d] tiene el paintjob: [modo:%b]",vehicleid, GetVehiclePaintjobType(vehicleid));
SendClientMessage(playerid,-1,data);
return true;
}
COMMAND:respawn(playerid, params[]){
new vehicleid = GetPlayerVehicleID(playerid), data[128];
format(data,sizeof(data),"el vehiculo [vehicleid:%d] ha sido respawneado correctamente",vehicleid);
SendClientMessage(playerid,-1,data);
format(data,sizeof(data),"el vehiculo [vehicleid:%d] tiene el paintjob: [paintjob:%d] color del vehiculo [color1:%d color2:%d]",vehicleid, GetVehiclePaintjobType(vehicleid),GetVehicleColor1(vehicleid),GetVehicleColor2(vehicleid));
SendClientMessage(playerid,-1,data);
SetVehicleToRespawn(vehicleid);
return true;
}