Portal SAMP
[Ajuda] Motor do carro não liga - 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] Motor do carro não liga (/showthread.php?tid=1249)



Motor do carro não liga - Smith - 01/06/2021

alguem me ajuda? quando o carro e spawnado ele spawna sem os botoes de acelerar acredito que seja motor desligado ai fiz esse codico 
Código:
CMD:ligar(playerid){

    new Float:PQP[3];

    new vehicleid = GetClosestVehicleToPlayer(playerid);

    GetVehiclePos(vehicleid, PQP[0], PQP[1], PQP[2]);

    if(!IsPlayerInRangeOfPoint(playerid, 5, PQP[0], PQP[1], PQP[2]))
        return SendClientMessage(playerid, -1, "{FF4500}[AVISO] Voce nao esta proximo de nenhum veiculo!");

    new ff[30], pqp;

    new engine, lights, alarm, doors, bonnet, boot, objective;

    for(new i; i < MAX_VEH_CONCE; i++){

        format(ff, 30, CONCE, i);

        if(DOF2::FileExists(ff)){

            if(Conce[i][ID] == vehicleid){

                if(strcmp(Conce[i][Dono], NomePQP(playerid), true) == 0){

                    GetVehicleParamsEx(Conce[i][ID], engine, lights, alarm, doors, bonnet, boot, objective);

                    if(engine < 0) {

                        SetVehicleParamsEx(Conce[i][ID], true, lights, alarm, doors, bonnet, boot, objective);

                        SendClientMessage(playerid, -1, "{FFD700}[VEICULO] Voce ligou seu veiculo com sucesso!");
                    }
                    else {

                        SendClientMessage(playerid, -1, "{FF4500}[ERRO] O seu veiculo ja esta ligado!");
                    }
                } else SendClientMessage(playerid, -1, "{FF4500}[ERRO] Voce nao possui a chave desse veiculo");

                pqp++;
                break;
            }
        }
    }


    if(pqp == 0) SendClientMessage(playerid, -1, "{FF4500}[ERRO] Esse veiculo nao e da concessionaria e nao pode ser trancado!");
    return 1;
}
mas o motor nao liga e retorna a msg  O seu veiculo ja esta ligado!


RE: Motor do carro não liga - ProKillerPa - 01/06/2021

Bom dia.

A funcao GetClosestVehicleToPlayer pega o veiculo mais proximo do player. Pela logica, para ligar o motor o player deve estar dentro do veiculo, entao troque todo seu comando por isso:

Código PHP:
CMD:ligar(playerid){

    if(!
IsPlayerInAnyVehicle(playerid))
        return 
SendClientMessage(playerid, -1"{FF4500}Voce nao esta dentro de um veiculo!");

    new 
vehicleid GetPlayerVehicleID(playerid);

    new 
enginelightsalarmdoorsbonnetbootobjective;

    
GetVehicleParamsEx(vehicleidenginelightsalarmdoorsbonnetbootobjective);

    if(
engine == 0) {

        
SetVehicleParamsEx(vehicleidtruelightsalarmdoorsbonnetbootobjective);
        
        
SendClientMessage(playerid, -1"{BEBEBE}Moto ligado com sucesso!");
    }
    else 
SendClientMessage(playerid, -1"{FF4500}O Motor do seu veiculo ja esta ligado!");
    return 
1;




RE: Motor do carro não liga - marcos renan rodrigues - 10/12/2021

Me ajuda, no meu o motor só liga quando eu saio do veiculo, quando tou dentrou dou /motor ou aperto f e não vai

codigo:

Código:
      CMD:motor(playerid, params[])
{
new Float:vida;
new vid = GetPlayerVehicleID(playerid);
GetVehicleHealth(vid, vida);
if(IsPlayerInAnyVehicle(playerid))
{
if(GetPlayerState(playerid) != 2)
{
SendClientMessage(playerid, COR_LIGHTBLUE, "Você não é o motorista deste veículo !");
return 1;
}
if(GetPlayerState(playerid) == 2 && Gas[vid] <= 0)
{
SendClientMessage(playerid, COR_LIGHTBLUE, "Seu veículo está sem gasolina, use um galão !");
return 1;
}
if(EngineCarro[vid] == 1  && GetPlayerState(playerid) == 2 && GetPlayerSpeed(playerid, true) > 1)
{
SendClientMessage(playerid, COR_LIGHTBLUE, "Você não pode mecher no motor do veículo em movimento !");
return 1;
}
if(GetPlayerState(playerid) == 2 && Quebrado[vid] == 1)
{
SendClientMessage(playerid, COR_LIGHTBLUE, "Seu veículo está quebrado, não pode mecher no motor !");
return 1;
}
if(AluguelCarros1(vid) || AluguelCarros2(vid) || AluguelCarros3(vid) || AluguelCarros4(vid) || BarcosAluguel(vid) || AeroAluguel(vid))
{
if(HireCar[playerid] != vid)
{
SendClientMessage(playerid, COR_LIGHTBLUE, "Apenas quem alugou este veículo pode ligar o motor!");
return 1;
}
}
if(EventoCarros(vid))
{
SendClientMessage(playerid, COR_LIGHTBLUE, "Este veículo é de um evento, o motor liga sozinho, aguarde!");
return 1;
}
if(somligado[vid] == 1)
{
SendClientMessage(playerid, COR_LIGHTRED, "Você não pode ligar o motor com o sistema de som ligado neste veículo(/ligarsom para desligar)!");
return 1;
}
if(PlayerInfo[playerid][pEmprego] == 9) //Ladrão de carro
{
if(rouboucarro[playerid] == 0)
{
if((TDFCarro(vid)) || (TDTCarros(vid)) || (PccCarros(vid))
|| (BallasCarros(vid)) || (VagosCarros(vid)) || (GrooveCarros(vid))
|| (AlqaedaCarros(vid)) || (SonsCarros(vid)) || (MayansCarros(vid)) || (HitmansCarros(vid))
|| (AssassinsCarros(vid)) || (YakuzaCarros(vid)) || (CNCarros(vid)) || (TalibanCarros(vid)) || (GloboCarros(vid)))
{
SendClientMessage(playerid, COR_ROTA, "Você só pode ligar o motor deste carro quando já estiver roubando ele!");
RemovePlayerFromVehicleEx(playerid);
return 1;
}
}
}
if(EngineCarro[vid] == 0)
{
GetVehicleParamsEx(vid,engineZCMD,lightsZCMD,alarmZCMD,doorsZCMD,bonnetZCMD,bootZCMD,objectiveZCMD);
SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,lightsZCMD,alarmZCMD,doorsZCMD,bonnetZCMD,bootZCMD,objectiveZCMD);
SendClientMessage(playerid, 0xFFFFFFFF, "Veiculo: {228B22}Ligado!");
EngineCarro[vid] = 1;
}
else if(EngineCarro[vid] == 1)
{
GetVehicleParamsEx(vid,engineZCMD,lightsZCMD,alarmZCMD,doorsZCMD,bonnetZCMD,bootZCMD,objectiveZCMD);
SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lightsZCMD,alarmZCMD,doorsZCMD,bonnetZCMD,bootZCMD,objectiveZCMD);
SendClientMessage(playerid, 0xFFFFFFFF, "Veiculo: {FF0000}Desligado!");
EngineCarro[vid] = 0;
}
}
return 1;
}