[Ajuda] ProgressBar Causando Lag danado!!!
#1

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.


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;
}
Sugestхes para um melhoramento?
Reply
#2

Aumenta o tempo de timer
Reply
#3

Mostra como voce ta criando ela etc..

@OFF

eae como ta? faz tempo que nao vejo vc por aqui.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)