Portal SAMP
[Ajuda] nitro em veiculos - 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] nitro em veiculos (/showthread.php?tid=3216)



nitro em veiculos - LOS_SANTOS - 19/01/2023

ia galera queria saber como faco pra quando o player usar esse mue comando de usar nitro depois que o nitro acabar ele sumir , pois nao sei se escrevi o codigo errado ou faltando algo esse codigo e para o player q quiser ter nitro no carro custar 800 de grana ai ele compra o nitro ,o problea e que toda vez q o player sai do veiculo e entra ele continua com o nitro e usa a vontade , nao era isso minha intencao , a intencao e o playercomprar o nitro usar o nitro e quando o nitro acabar , ele desaparecer para assim o player usar o comando /nitro novamente  aq esta o codigo me corrija se escrevi errado , lembrando nao sou igual a vcs que ja sabem estou em aprendizagem ainda sou noob nessa linguagem , oq consegui fazer foi isso 
Código:
CMD:nitro(playerid)
{
    if(GetPlayerMoney(playerid) >= 800)
    {
    if(!IsPlayerInAnyVehicle(playerid))/*se esta no carro */ return SendClientMessage(playerid, -1, "{FF2400}| ERRO |: {FFFFFF}Voce nao esta em um veiculo.");
    if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)/*se for carona */ return SendClientMessage(playerid, -1, "{FF2400}| ERRO |: {FFFFFF}Voce nao e o motorista do veiculo.");
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 509 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 481 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 510) return SendClientMessage(playerid, -1, "{FF2400}| ERRO |: {FFFFFF}Este veiculo nao possui farol");
    new engine, lights, alarm, doors, bonnet, boot, objective, vehicleid = GetPlayerVehicleID(playerid);
    GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
    AddVehicleComponent(GetPlayerVehicleID(playerid), 1010); // Add nitro
    GameTextForPlayer(playerid, "nitro adicionado por $800", 2000, 4);
    GivePlayerMoney(playerid,-800);
    }
    else
{
SendClientMessage(playerid, vermelho,"voce nao tem essa grana para comprar isso");
    
}
return 1;
}



RE: nitro em veiculos - xbruno1000x - 19/01/2023

Código:
        new bool:UsouNitro[MAX_PLAYERS]; //Variável global
    
    //Na public OnPlayerKeyStateChange
    if((newkeys == KEY_FIRE) && IsPlayerInAnyVehicle(playerid))  //Verifica se o jogador está apertando a tecla do nitro e está em um veículo.
    {
        new    vehicleid = GetPlayerVehicleID(playerid); //Pega o ID do veículo em que o jogador está.
        if(UsouNitro[playerid])
        {        
            RemoveVehicleComponent(vehicleid, 1010); //remove o nitro caso o jogador já tenha usado uma vez.
        }
                UsouNitro[playerid] = true; //A variável global se torna verdadeira, indicando que o jogador usou o nitro.
        return 1;
    }

    
CMD:nitro(playerid)
{
    if(GetPlayerMoney(playerid) >= 800)
    {
        if(!IsPlayerInAnyVehicle(playerid))/*se esta no carro */ return SendClientMessage(playerid, -1, "{FF2400}| ERRO |: {FFFFFF}Voce nao esta em um veiculo.");
        if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)/*se for carona */ return SendClientMessage(playerid, -1, "{FF2400}| ERRO |: {FFFFFF}Voce nao e o motorista do veiculo.");
        if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 509 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 481 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 510) return SendClientMessage(playerid, -1, "{FF2400}| ERRO |: {FFFFFF}Este veiculo nao possui farol");
        new engine, lights, alarm, doors, bonnet, boot, objective, vehicleid = GetPlayerVehicleID(playerid);
        GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
        AddVehicleComponent(GetPlayerVehicleID(playerid), 1010); // Add nitro
        GameTextForPlayer(playerid, "nitro adicionado por $800", 2000, 4);
        GivePlayerMoney(playerid,-800);
        UsouNitro[playerid] = false; //Zerando a variável global quando o player comprar
    }else{
        SendClientMessage(playerid, vermelho,"voce nao tem essa grana para comprar isso");
    }
    return 1;
}

Refiz algumas coisas e deixei tudo comentado.