SA-MP Forums Archive
[Ajuda] Verificaзгo de modo do veiculo - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Verificaзгo de modo do veiculo (/showthread.php?tid=658123)



Verificaзгo de modo do veiculo - Poseidon4625 - 23.08.2018

Entгo pessoal eu estou tentando fazer com que o veiculo do player no caso Trem parasse em um certo local sу que com a velocidade bem baixa, eu coloquei uma verificaзгo pra ver em quantos Km/h o Trem estar, se o trem estiver a um Km/h maior retornaria a mensagem de erro, se estiver em um km/h menor o sistema daria continuidade no descarregamento do mesmo, o problema й que sу esta retornando a mensagem mesmo estando em baixo Km/h.

PHP код:
public OnPlayerEnterRaceCheckpoint(playerid)
{
    new 
vid;
    
vid GetPlayerVehicleID(playerid);
    if(
vid == trem[0] || vid == trem[1] || vid == trem[2] )
    {
        new 
Float:Velocity[3];
        
GetVehicleVelocity(vidVelocity[0], Velocity[1], Velocity[2]);
        if(
Velocity[0] >= 10 && Velocity[1] >= 10 && Velocity[2] >= 10)
        {
            if(
TremSF[playerid] == 1)
            {
                
SetTimerEx("DescarregamentoTrem",8000false"i"playerid),TogglePlayerControllable(playerid0),PlayerPlaySound(playerid1057000),GameTextForPlayer(playerid"~r~Descarregando"80004);
            }
        }
        else{
            
SendClientMessage(playeridVermelho"| ERRO | O Trem Precisa Estar Parado Para Efetuar o Descarregamento!");
        }
    }
    return 
1;

Se alguйm poder ajudar agradeзo.


Re: Verificaзгo de modo do veiculo - JamesDias - 24.08.2018

> maior
< menor


Re: Verificaзгo de modo do veiculo - WiliHacking - 24.08.2018

Quote:
Originally Posted by Poseidon4625
Посмотреть сообщение
Entгo pessoal eu estou tentando fazer com que o veiculo do player no caso Trem parasse em um certo local sу que com a velocidade bem baixa, eu coloquei uma verificaзгo pra ver em quantos Km/h o Trem estar, se o trem estiver a um Km/h maior retornaria a mensagem de erro, se estiver em um km/h menor o sistema daria continuidade no descarregamento do mesmo, o problema й que sу esta retornando a mensagem mesmo estando em baixo Km/h.

PHP код:
public OnPlayerEnterRaceCheckpoint(playerid)
{
    new 
vid;
    
vid GetPlayerVehicleID(playerid);
    if(
vid == trem[0] || vid == trem[1] || vid == trem[2] )
    {
        new 
Float:Velocity[3];
        
GetVehicleVelocity(vidVelocity[0], Velocity[1], Velocity[2]);
        if(
Velocity[0] >= 10 && Velocity[1] >= 10 && Velocity[2] >= 10)
        {
            if(
TremSF[playerid] == 1)
            {
                
SetTimerEx("DescarregamentoTrem",8000false"i"playerid),TogglePlayerControllable(playerid0),PlayerPlaySound(playerid1057000),GameTextForPlayer(playerid"~r~Descarregando"80004);
            }
        }
        else{
            
SendClientMessage(playeridVermelho"| ERRO | O Trem Precisa Estar Parado Para Efetuar o Descarregamento!");
        }
    }
    return 
1;

Se alguйm poder ajudar agradeзo.
й porque GetVehicleVelocity pega os metros por segundo e 10 metro por segundo nem caminhando tu chega nisso, para pegar o Km/h use este calculo:

PHP код:
stock GetPlayerSpeed(playerid)
{
    new 
Float:ST[4];
    if(
IsPlayerInAnyVehicle(playerid))
    
GetVehicleVelocity(GetPlayerVehicleID(playerid),ST[0],ST[1],ST[2]);
    else 
GetPlayerVelocity(playerid,ST[0],ST[1],ST[2]);
    
ST[3] = floatsqroot(floatpower(floatabs(ST[0]), 2.0) + floatpower(floatabs(ST[1]), 2.0) + floatpower(floatabs(ST[2]), 2.0)) * 100.3;
    return 
floatround(ST[3]);

agora troca velocity[], por ST[3]