[Ajuda] Verificaзгo de modo do veiculo
#1

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.
Reply
#2

> maior
< menor
Reply
#3

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]
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)