Claro que si se puede hacer eso. Yo lo harнa con un timer y que este este revisando la vida del vehнculo.
Aclaro que esto es para la versiуn antigua de progressbar por que la nueva creo ya usa progressbarforplayer. Esta seria la versiуn de Toribio, ahн mбs actualizadas pero te dejo este ejemplo que hice por que no se que versiуn de progress bar uses.
PDD: El de arriba me gano y publico uno antes que yo :,V igual lo dejo.
Te doy un pequeсo ejemplo: (quiza tenga errores por que hice el cуdigo directamente y no compile)
PHP код:
//Definimos la variable de la barrita :V.
new Bar:BarraMarinela[MAX_PLAYERS] = {INVALID_BAR_ID, ...};
new TimerBarraMarinela[MAX_PLAYERS];
//Cuando el Jugador se conecta creamos la barrita.
BarraMarinela[playerid] = CreateProgressBar(500.00, 107.00, 106.50, 19.90, 0xFF1C1CFF, 1000/*Es el valor mбximo*/);
// Esto es cuando el jugador cambia de estado a caminando, pasajero, y vehнculo.
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER) //Cuando es conductor.
{
TimerBarritaMarinela[playerid] = SetTimerEx("RevisarVidaVehiculo", 200, true, "i", playerid);
ShowProgressBarForPlayer(playerid,BarraMarinela[playerid]);// Le mostramos la barra
}
else if(newstate == PLAYER_STATE_ONFOOT) // Cuando cambia de estado y se pone a hacer ejercicio.
{
HideProgressBarForPlayer(playerid,BarritaMarinela[playerid]);
KillTimer(TimerBarritaMarinela[playerid]);
}
return 1;
}
fordward RevisarVidaVehiculo(playerid);
public RevisarVidaVehiculo(playerid)
{
new Float:vvidamarinela;
new idautomarinela = GetPlayerVehicleID(playerid);
GetVehicleHealth(idautomarinela, vvidamarinela);
SetProgressBarValue(BarritaMarinela[playerid], vvidamarinela);
UpdateProgressBar(BarritaMarinela[playerid], playerid);
}
public OnPlayerDisconnect(playerid, reason)
{
HideProgressBarForPlayer(playerid,BarritaMarinela[playerid]);
KillTimer(TimerBarritaMarinela[playerid]);
DestroyProgressBar(BarritaMarinela[playerid]);
return 1;
}