[Pedido] Limite de velocidade
#1

Tipo no percuso quando um Veiculo Bate-se 120km aparece-se um AVISO "VOCК PASSO LIMITE DESEJADO" й caso continua-se por 3 vezes teria que fazer o percurso denovo.
caso nгo queriam fazer so min explique quais funзхes eu teria que ter!



Darei +rep
Reply
#2

https://sampwiki.blast.hk/wiki/OnVehicleDamageStatusUpdate

https://sampwiki.blast.hk/wiki/GetVehicleVelocity
Reply
#3

o OnVehicleDamageStatusUpdate й sobre saъde de veнculos!
Reply
#4

Quote:
Originally Posted by Pablo_Mantega
Посмотреть сообщение
o OnVehicleDamageStatusUpdate й sobre saъde de veнculos!
E quando um veнculo й danificado (bate) essa 'saъde' nгo diminui?
Reply
#5

Vou dar uma sugestгo: ha maneiras mais fбceis de manter o player no limite, tipo se ele passar certo tempo no 120km/h, poderia "Sobreaquecer o motor do carro" e entгo baixar a damage do veнculo e assim faze-lo parar e esperar pra voltar ao normal.
Reply
#6

No GetVehicleVelocity como ponho um Limite Tipo 120 velocidade permitido, caso passe eu ponho um aviso.
Reply
#7

Quote:
Originally Posted by Pablo_Mantega
Посмотреть сообщение
No GetVehicleVelocity como ponho um Limite Tipo 120 velocidade permitido, caso passe eu ponho um aviso.
Variбvel para caso passar 3 vezes:
INНCIO DO GAMEMODE OU JUNTO A SUAS VARIБVEIS:
pawn Код:
new PassouLimite[MAX_PLAYERS];
Stock para sempre que quiser pegar a velocidade do player, use if(Velocidade(playerid) *Sinal* *Numero*)
FIM DO GAMEMODE:
pawn Код:
stock Velocidade(playerid)
{
    new Float:Velocity[3], output[80];
    GetVehicleVelocity(GetPlayerVehicleID(playerid), Velocity[0], Velocity[1], Velocity[2]);
    return 1;
}
Caso seu Gamemode for GF, coloque em OtherTimer:
pawn Код:
if(Velocidade(i) >= 120 && GetPlayerState(i) == PLAYER_STATE_DRIVER && /*Variavel aqui*/)//Aqui adicione tambйm a variбvel para ver se o player estб no teste, й sу colocar a variбvel depois do sinal '&&' que coloquei no final
    {
        if(PassouLimite(i) >= 3)
        {
            //Aqui suas funзхes para ele repitir o teste
            SendClientMessage(playerid, -1, "Vocк rodou no teste, motivo: passou de 120KM 3 vezes");
            PassouLimite(i) = 0;
            return 1;
        }
        SendClientMessage(playerid, -1, "Vocк passou do limite excedido");
        PassouLimite(i) += 1;
    }
Agora caso nгo for GF, coloque no final do GameMode:
pawn Код:
forward ChecarLimite();
public ChecarLimite()
{
    for(new i=0; i<MAX_PLAYERS; i++)
    {
        if(Velocidade(i) >= 120 && GetPlayerState(i) == PLAYER_STATE_DRIVER && /*Variavel aqui*/)//Aqui adicione tambйm a variбvel para ver se o player estб no teste, й sу colocar a variбvel depois do sinal '&&' que coloquei no final
        {
             if(PassouLimite(i) >= 3)
             {
                  //Aqui suas funзхes para ele repitir o teste
                  SendClientMessage(playerid, -1, "Vocк rodou no teste, motivo: passou de 120KM 3 vezes");
                  PassouLimite(i) = 0;
                  return 1;
             }
             SendClientMessage(playerid, -1, "Vocк passou do limite excedido");
             PassouLimite(i) += 1;
        }
    }
}
E coloque tambйm, se nгo for GF, na callback(public) OnGameModeInit:
pawn Код:
SetTimer("ChecarLimite",1000,1);//Esse time(1000) corresponde a 1 segundo, ou seja a cada 1 segundo vai ficar chegando, caso quiser pode mudar por um menor tempo, mas creio que 1 segundo й o suficiente...
OBS: Nгo compilei, mas pela lуgica ta certo...Abraзos
Reply
#8

Quote:
Originally Posted by Bruno13
Посмотреть сообщение
Variбvel para caso passar 3 vezes:
INНCIO DO GAMEMODE OU JUNTO A SUAS VARIБVEIS:
pawn Код:
new PassouLimite[MAX_PLAYERS];
Stock para sempre que quiser pegar a velocidade do player, use if(Velocidade(playerid) *Sinal* *Numero*)
FIM DO GAMEMODE:
pawn Код:
stock Velocidade(playerid)
{
    new Float:Velocity[3], output[80];
    GetVehicleVelocity(GetPlayerVehicleID(playerid), Velocity[0], Velocity[1], Velocity[2]);
    /*format(output, sizeof(output), "You are going at a velocity of X%f, Y%f, Z%f", Velocity[0], Velocity[1], Velocity[2]);
    SendClientMessage(playerid, 0xFFFFFFFF, output);*/

    return 1;
}
Caso seu Gamemode for GF, coloque em OtherTimer:
pawn Код:
if(Velocidade(i) >= 120 && GetPlayerState(i) == PLAYER_STATE_DRIVER && /*Variavel aqui*/)//Aqui adicione tambйm a variбvel para ver se o player estб no teste, й sу colocar a variбvel depois do sinal '&&' que coloquei no final
    {
        if(PassouLimite(i) >= 3)
        {
            //Aqui suas funзхes para ele repitir o teste
            SendClientMessage(playerid, -1, "Vocк rodou no teste, motivo: passou de 120KM 3 vezes");
            PassouLimite(i) = 0;
            return 1;
        }
        SendClientMessage(playerid, -1, "Vocк passou do limite excedido");
        PassouLimite(i) += 1;
    }
Agora caso nгo for GF, coloque no final do GameMode:
pawn Код:
forward ChecarLimite();
public ChecarLimite()
{
    for(new i=0; i<MAX_PLAYERS; i++)
    {
        if(Velocidade(i) >= 120 && GetPlayerState(i) == PLAYER_STATE_DRIVER && /*Variavel aqui*/)//Aqui adicione tambйm a variбvel para ver se o player estб no teste, й sу colocar a variбvel depois do sinal '&&' que coloquei no final
        {
             if(PassouLimite(i) >= 3)
             {
                  //Aqui suas funзхes para ele repitir o teste
                  SendClientMessage(playerid, -1, "Vocк rodou no teste, motivo: passou de 120KM 3 vezes");
                  PassouLimite(i) = 0;
                  return 1;
             }
             SendClientMessage(playerid, -1, "Vocк passou do limite excedido");
             PassouLimite(i) += 1;
        }
    }
}
E coloque tambйm, se nгo for GF, na callback(public) OnGameModeInit:
pawn Код:
SetTimer("ChecarLimite",1000,1);//Esse time(1000) corresponde a 1 segundo, ou seja a cada 1 segundo vai ficar chegando, caso quiser pode mudar por um menor tempo, mas creio que 1 segundo й o suficiente...
OBS: Nгo compilei, mas pela lуgica ta certo...Abraзos
Pra que isso tudo ? Cheiro de code copiado.

pawn Код:
new Float:Velocidade;

GetPlayerVelocity(playerid, Velocidade, sizeof(Velocidade));

if(Velocidade >= 120)
{
  SendClientMessage(playerid, "vc ta em 120 km ou +");
 
  // resto de seu code, й claro...
  return 1;
}
Reply
#9

Quote:
Originally Posted by DannielCooper
Посмотреть сообщение
Pra que isso tudo ? Cheiro de code copiado.

pawn Код:
new Float:Velocidade;

GetPlayerVelocity(playerid, Velocidade, sizeof(Velocidade));

if(Velocidade >= 120)
{
  SendClientMessage(playerid, "vc ta em 120 km ou +");
 
  // resto de seu code, й claro...
  return 1;
}
carai cara vlw mesmo KKKKKKKKK
Reply
#10

Quote:
Originally Posted by DannielCooper
Посмотреть сообщение
Pra que isso tudo ? Cheiro de code copiado.

pawn Код:
new Float:Velocidade;

GetPlayerVelocity(playerid, Velocidade, sizeof(Velocidade));

if(Velocidade >= 120)
{
  SendClientMessage(playerid, "vc ta em 120 km ou +");
 
  // resto de seu code, й claro...
  return 1;
}
Nгo nгo й copiado, fiz agora...Isso tudo porque primeiro, "Velocidade" pra nгo ter que definir em seu cуdigo toda vez "Velocidade" que quiser pegar a velocidade. E ele pediu para que caso passasse de 120KM 3 vezes tivesse de repetir o teste...

"Cheiro de code copiado" kakakakaka

@EDIT Preguiзa de ler o cуdigo й foda...fiz todo cуdigo pro cara, puta merda...
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)