Portal SAMP
[Ajuda] ERRO NO VELOCIMETRO - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] ERRO NO VELOCIMETRO (/showthread.php?tid=4767)



ERRO NO VELOCIMETRO - GreeN_ - 12/05/2024

O velocimetro n ta dando nenhum erro porém o velocimetro não roda ele só fica no 0
Código PHP:
public OnPlayerStateChange(playeridnewstateoldstate)
{
    if (newstate == PLAYER_STATE_DRIVER)
    {
        Timer_Velo SetTimer("KMH"10true);
        for (new 0sizeof(velocimetro); i++) PlayerTextDrawShow(playeridvelocimetro[playerid][i]);
    }
    if (oldstate == PLAYER_STATE_DRIVER)
    {
        KillTimer(Timer_Velo);
        for (new 0sizeof(velocimetro); i++) PlayerTextDrawHide(playeridvelocimetro[playerid][i]);
    }
    return 1;

Código PHP:
stock GetPlayerSpeed(vehicleid)
{
    new Float:xFloat:yFloat:z;
    GetVehicleVelocity(vehicleidxyz);
    return floatround(floatsqroot(z) * 170);
}
forward KMH(playeridvehicleid);
public 
KMH(playeridvehicleid)
{
    new Str[80];
    format(Strsizeof(Str), "%d"GetPlayerSpeed(vehicleid));
    PlayerTextDrawSetString(playeridvelocimetro[playerid][1], Str);




RE: ERRO NO VELOCIMETRO - White_Blue - 12/05/2024

Você está criando um temporizador global, não um temporizador de jogador. Portanto, você não está associando os parâmetros vehicleid e playerid.

Para resolver isso, basta transformar a variável 'Timer_Velo' em uma variável do tipo jogador e passar os parâmetros desejados para o temporizador utilizando a função SetTimerEx.

E.G:
Código PHP:
new Timer_Velo[MAX_PLAYERS];

Timer_Velo[playerid] = SetTimerEx("KMH"500true"ii"playeridGetPlayerVehicleID(playerid)); 

Dessa forma, os parâmetros "vehicleid" e "playerid" do evento "KMH" serão associados aos valores passados na função SetTimerEx(tra), que no caso é o playerid e o ID do veículo retornado na função GetPlayerVehicleID, e o timer agora é um player timer, não um timer global como estava no seu código, timers globais apenas devem ser usados para eventos globais, tais como mudar o clima do servidor para todos os jogadores dentro de determinado tempo, etc.


RE: ERRO NO VELOCIMETRO - GreeN_ - 13/05/2024

Muito Obrigado eu n tinha prestado atenção que a variavel estava global