Barra de Vida de vehiculo -
CHEO96 - 29.08.2017
Hola, quisiera saber si con una ProgressBar se podria crear la vida del vehiculo, Ejemplo, a Medida que el vehiculo choque la barra baje y si se repara la vida subre, se los agradeceria. Gracias de antemano
Pd: Ayudenme
Respuesta: Barra de Vida de vehiculo -
GabrielBas - 29.08.2017
Код:
new Bar:health[MAX_PLAYERS] = {INVALID_BAR_ID, ...};
public OnGameModeInit()
{
SetTimer("BVidaCoche", 1000, 1);
return 1;
}
Код:
forward Car();
public BVidaCoche()
{
for(new playerid; playerid < MAX_PLAYERS; playerid++) foreach(Player, playerid)
{
new vehicleid;
if((vehicleid = GetPlayerVehicleID(playerid)) && health[playerid] != INVALID_BAR_ID)
{
new Float:health;
GetVehicleHealth(vehicleid, health);
SetProgressBarValue(health[playerid], health);
UpdateProgressBar(health[playerid], playerid);
}
}
}
Код:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(oldstate == PLAYER_STATE_DRIVER)
{
DestroyProgressBar(health[playerid]);
health[playerid] = INVALID_BAR_ID;
}
if(newstate == PLAYER_STATE_DRIVER)
{
health[playerid] = CreateProgressBar(600.5, 100.0, _, _, 0x00FF00FF, 1000.0);
ShowProgressBarForPlayer(playerid, health[playerid]);
}
return 1;
}
Espero te sirva y cumpla con tus expectativas, saludos.
Re: Barra de Vida de vehiculo -
Swankeh - 29.08.2017
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;
}