12.09.2015, 18:49
Pessoal fiz um velocimetro em Progressbar.
Uso um timer de 100 Milisegundos para atualizar a velocidade do velocimetro.
Bom na callback do velocimetro eu coloquei para Mostrar, Setar e atualizar o progressbar.
Na maquina do meu IP nгo causa muito lag. Mбs quando eu coloco no GM o jogador que entra no veнculo jб comeзa dar RT.
Sugestхes para um melhoramento?
Uso um timer de 100 Milisegundos para atualizar a velocidade do velocimetro.
Bom na callback do velocimetro eu coloquei para Mostrar, Setar e atualizar o progressbar.
Na maquina do meu IP nгo causa muito lag. Mбs quando eu coloco no GM o jogador que entra no veнculo jб comeзa dar RT.
pawn Код:
SetTimer("Atualizar_Velocimetro", 100, true);
pawn Код:
ShowProgressBarForPlayer(i, VelocidadeB[i]); // MOSTRAR A PROGRESSBAR
SetProgressBarValue(VelocidadeB[i], Velocidade(i)); //SETAR PROGRESS COM A VELOCITY
UpdateProgressBar(VelocidadeB[i], i); // ATUALIZAR PROGRESS
ShowProgressBarForPlayer(i, GasolinaB[i]);
SetProgressBarValue(GasolinaB[i], Gasolina[GetPlayerVehicleID(i)]);
UpdateProgressBar(GasolinaB[i], i);
pawn Код:
forward Atualizar_Velocimetro(playerid);
public Atualizar_Velocimetro(playerid)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(!Bicicletas(GetPlayerVehicleID(i)))
{
if(IsPlayerInAnyVehicle(i))
{
new Float:Lataria;
GetVehicleHealth(GetPlayerVehicleID(i), Lataria);
if(Motor_Do_Veiculo[GetPlayerVehicleID(i)] == true)
{
TextDrawHideForPlayer(i, Desligado_V[i]);
TextDrawShowForPlayer(i, Ligado_V[i]);
}
else if(Motor_Do_Veiculo[GetPlayerVehicleID(i)] == false)
{
TextDrawHideForPlayer(i, Ligado_V[i]);
TextDrawShowForPlayer(i, Desligado_V[i]);
}
ShowProgressBarForPlayer(i, VelocidadeB[i]);
SetProgressBarValue(VelocidadeB[i], Velocidade(i));
UpdateProgressBar(VelocidadeB[i], i);
ShowProgressBarForPlayer(i, GasolinaB[i]);
SetProgressBarValue(GasolinaB[i], Gasolina[GetPlayerVehicleID(i)]);
UpdateProgressBar(GasolinaB[i], i);
TextDrawShowForPlayer(i, Velocidade_V[i]);
TextDrawShowForPlayer(i, Gasolina_V[i]);
TextDrawShowForPlayer(i, Nome_V[i]);
TextDrawShowForPlayer(i, Map_V1[i]);
TextDrawShowForPlayer(i, Map_V2[i]);
TextDrawShowForPlayer(i, Map_V3[i]);
TextDrawShowForPlayer(i, Map_V4[i]);
format(String,sizeof(String),"~w~%d KM/H", Velocidade(i));
TextDrawSetString(Velocidade_V[i], String);
format(String,sizeof(String),"~w~%d Litros", Gasolina[GetPlayerVehicleID(i)]);
TextDrawSetString(Gasolina_V[i], String);
format(String,sizeof(String),"%s", VeiculosNomes[GetVehicleModel(GetPlayerVehicleID(i))-400]);
TextDrawSetString(Nome_V[i], String);
if(INFO_P[i][MARCADOR_DE_LATARIA_P] == 1)
{
TextDrawShowForPlayer(i, Map_V0[i]);
TextDrawShowForPlayer(i, Lataria_V[i]);
format(String,sizeof(String),"~w~%0.0f% Dano", Lataria/10);
TextDrawSetString(Lataria_V[i], String);
ShowProgressBarForPlayer(i, LatariaB[i]);
SetProgressBarValue(LatariaB[i], Lataria);
UpdateProgressBar(LatariaB[i], i);
}
if(INFO_P[i][GPS_PARA_VEICULOS_P] == 1)
{
TextDrawShowForPlayer(i, Map_V5[i]);
TextDrawShowForPlayer(i, LocalMap[i]);
format(String,sizeof(String),"%s", Zones[GetPlayerZone(i)][zone_name]);
TextDrawSetString(LocalMap[i], String);
}
}
else
{
HideProgressBarForPlayer(i, VelocidadeB[i]);
HideProgressBarForPlayer(i, GasolinaB[i]);
HideProgressBarForPlayer(i, LatariaB[i]);
TextDrawHideForPlayer(i, Ligado_V[i]);
TextDrawHideForPlayer(i, Desligado_V[i]);
TextDrawHideForPlayer(i, Velocidade_V[i]);
TextDrawHideForPlayer(i, Gasolina_V[i]);
TextDrawHideForPlayer(i, Lataria_V[i]);
TextDrawHideForPlayer(i, LocalMap[i]);
TextDrawHideForPlayer(i, Nome_V[i]);
TextDrawHideForPlayer(i, Map_V0[i]);
TextDrawHideForPlayer(i, Map_V1[i]);
TextDrawHideForPlayer(i, Map_V2[i]);
TextDrawHideForPlayer(i, Map_V3[i]);
TextDrawHideForPlayer(i, Map_V4[i]);
TextDrawHideForPlayer(i, Map_V5[i]);
}
if(Gasolina[GetPlayerVehicleID(i)] < 1 && Motor_Do_Veiculo[GetPlayerVehicleID(i)] == true)
{
SendClientMessage(i, COR_AMARELO, "O motor do seu veнculo falhou por falta de gasolina, Abasteзa seu veнculo!");
GetVehicleParamsEx(GetPlayerVehicleID(i),engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(GetPlayerVehicleID(i),VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
Motor_Do_Veiculo[GetPlayerVehicleID(i)] = false;
}
}
}
return true;
}