[Ajuda] Verificar ъltimo veнculo do player
#1

Pessoal estou com uma dъvida. Bom gostaria de saber como posso verificar o ъltima veнculo que o jogador esteve, mesmo ele estando fora de um veнculo?

Tem como? mas como? qual funзгo?
Reply
#2

Aqui tem uma base:

pawn Код:
new UltimoVeiculo[MAX_PLAYERS];

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    UltimoVeiculo[playerid] = vehicleid;
    return 1;
}

YCMD:ultimocarro(playerid, params[], help)
{
    new PT[50];
    format(PT, sizeof(PT), "Seu ultimo carro foi %i", UltimoVeiculo[playerid]);
    SendClientMessage(playerid, -1, PT);
    return 1;
}
Reply
#3

Quote:
Originally Posted by PT
Посмотреть сообщение
Aqui tem uma base:

pawn Код:
new UltimoVeiculo[MAX_PLAYERS];

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    UltimoVeiculo[playerid] = vehicleid;
    return 1;
}

YCMD:ultimocarro(playerid, params[], help)
{
    new PT[50];
    format(PT, sizeof(PT), "Seu ultimo carro foi %i", UltimoVeiculo[playerid]);
    SendClientMessage(playerid, -1, PT);
    return 1;
}
Como posso adaptar neste sistema de multas?
pawn Код:
CMD:multar(playerid, params[])
{
    getdate(Ano, Mes, Dia);
    gettime(Horas, Minutos, Segundos);
    if(ORG_COP(playerid))
    {
        new ID_OUTRO_JOGADOR, Desc[70];
        if(Roupa_Farda[0][playerid] == false) return SendClientMessage(playerid,VERMELHO_BEM_CLARO,"Vocк precisa bater o cartгo para poder multar alguйm.");
        if(sscanf(params, "us[70]", ID_OUTRO_JOGADOR, Desc)) return SendClientMessage(playerid, VERDE_BEM_CLARO, "USE: /multar [ID/NOME] [DESCRIЗГO]");
        if(!IsPlayerConnected(ID_OUTRO_JOGADOR)) return SendClientMessage(playerid, VERMELHO_BEM_CLARO , "Jogador(a) nгo estб conectado.");
        //if(ID_OUTRO_JOGADOR == playerid) return SendClientMessage(playerid, VERMELHO_BEM_CLARO, "Vocк nгo pode multar vocк mesmo.");
        if(AeronavesLIC(GetPlayerVehicleID(ID_OUTRO_JOGADOR)) && DadosJogador[ID_OUTRO_JOGADOR][LIC_AERO_JOGADOR] == 0
        || BarcosLIC(GetPlayerVehicleID(ID_OUTRO_JOGADOR)) && DadosJogador[ID_OUTRO_JOGADOR][LIC_BARCO_JOGADOR] == 0
        || MotoLIC(GetPlayerVehicleID(ID_OUTRO_JOGADOR)) && DadosJogador[ID_OUTRO_JOGADOR][LIC_MOTOS_JOGADOR] == 0
        || CarroLIC(GetPlayerVehicleID(ID_OUTRO_JOGADOR)) && DadosJogador[ID_OUTRO_JOGADOR][LIC_CARROS_JOGADOR] == 0
        || Caminho_Onibus_LIC(GetPlayerVehicleID(ID_OUTRO_JOGADOR)) && DadosJogador[ID_OUTRO_JOGADOR][LIC_CAMINHAO_ONIBUS_JOGADOR] == 0)
        return SendClientMessage(playerid, VERMELHO_BEM_CLARO, "Vocк nгo pode multar um jogador sem licenзas!");
        if(DadosJogador[ID_OUTRO_JOGADOR][VERIFICAR_MODO_ADMIN] == 1 && DadosJogador[ID_OUTRO_JOGADOR][ADMIN_NIVEL] >= 1) return SendClientMessage(playerid, VERMELHO_BEM_CLARO, "Vocк nгo pode multar um admin em modo de trabalho.");
        if(strcmp(Desc,"CM",true) == 0)
        {
            Desc = "Contramгo";
        }
        else if(strcmp(Desc,"DB",true) == 0)
        {
            Desc = "Dirigindo bкbado";
        }
        else if(strcmp(Desc,"DP",true) == 0)
        {
            Desc = "Direзгo perigosa";
        }
        else if(strcmp(Desc,"TNC",true) == 0)
        {
            Desc = "Trafegando na calзada";
        }
        else if(strcmp(Desc,"EI",true) == 0)
        {
            Desc = "Estacionamento indevido";
        }
        else if(strcmp(Desc,"FD",true) == 0)
        {
            Desc = "Farol desligado";
        }
        else
        {
            SendClientMessage(playerid,COR_LARANJA,"---- Descriзхes de Multas. ----"),
            SendClientMessage(playerid,COR_CINZA,"USE: CM, DB, DP, TNC, EI, FD.");
        }
        if(DadosJogador[ID_OUTRO_JOGADOR][PONTOS_CARTEIRA] >= 20)
        {
            if(AeronavesLIC(GetPlayerVehicleID(ID_OUTRO_JOGADOR)))
            {
                SendClientMessage(ID_OUTRO_JOGADOR, 0xFA8072FF, "Vocк perdeu sua licenзa de Voo, por ter 20 pontos na carteira de habilitaзгo.");
                DadosJogador[ID_OUTRO_JOGADOR][LIC_AERO_JOGADOR] = 0;
                DadosJogador[ID_OUTRO_JOGADOR][PONTOS_CARTEIRA] = 0;
                RemovePlayerFromVehicle(ID_OUTRO_JOGADOR);
            }
            else if(BarcosLIC(GetPlayerVehicleID(ID_OUTRO_JOGADOR)))
            {
                SendClientMessage(ID_OUTRO_JOGADOR, 0xFA8072FF, "Vocк perdeu sua licenзa de Barcos, por ter 20 pontos na carteira de habilitaзгo.");
                DadosJogador[ID_OUTRO_JOGADOR][LIC_BARCO_JOGADOR] = 0;
                DadosJogador[ID_OUTRO_JOGADOR][PONTOS_CARTEIRA] = 0;
                RemovePlayerFromVehicle(ID_OUTRO_JOGADOR);
            }
            else if(MotoLIC(GetPlayerVehicleID(ID_OUTRO_JOGADOR)))
            {
                SendClientMessage(ID_OUTRO_JOGADOR, 0xFA8072FF, "Vocк perdeu sua licenзa de Moto, por ter 20 pontos na carteira de habilitaзгo.");
                DadosJogador[ID_OUTRO_JOGADOR][LIC_MOTOS_JOGADOR] = 0;
                DadosJogador[ID_OUTRO_JOGADOR][PONTOS_CARTEIRA] = 0;
                RemovePlayerFromVehicle(ID_OUTRO_JOGADOR);
            }
            else if(CarroLIC(GetPlayerVehicleID(ID_OUTRO_JOGADOR)))
            {
                SendClientMessage(ID_OUTRO_JOGADOR, 0xFA8072FF, "Vocк perdeu sua licenзa de Carro, por ter 20 pontos na carteira de habilitaзгo.");
                DadosJogador[ID_OUTRO_JOGADOR][LIC_CARROS_JOGADOR] = 0;
                DadosJogador[ID_OUTRO_JOGADOR][PONTOS_CARTEIRA] = 0;
                RemovePlayerFromVehicle(ID_OUTRO_JOGADOR);
            }
            else if(Caminho_Onibus_LIC(GetPlayerVehicleID(ID_OUTRO_JOGADOR)))
            {
                SendClientMessage(ID_OUTRO_JOGADOR, 0xFA8072FF, "Vocк perdeu sua licenзa de Caminhгo/Onibus, por ter 20 pontos na carteira de habilitaзгo.");
                DadosJogador[ID_OUTRO_JOGADOR][LIC_CAMINHAO_ONIBUS_JOGADOR] = 0;
                DadosJogador[ID_OUTRO_JOGADOR][PONTOS_CARTEIRA] = 0;
                RemovePlayerFromVehicle(ID_OUTRO_JOGADOR);
            }
            else
            {
                DadosJogador[ID_OUTRO_JOGADOR][PONTOS_CARTEIRA] += 4;
                format(String, sizeof(String), "[%s]: %s Multou %s Motivo: %s ", NomeORG(playerid), PlayerNick(playerid), PlayerNick(ID_OUTRO_JOGADOR), Desc);
                MSG_COP(GetPlayerColor(playerid), String);
                format(String, sizeof(String), "Vocк foi multado por %s da ORG[%s], Motivo: %s", PlayerNick(playerid), NomeORG(playerid), Desc);
                SendClientMessage(ID_OUTRO_JOGADOR, 0xC0FF3EFF, String);
                SendClientMessage(ID_OUTRO_JOGADOR, 0xFFEC8BFF, "Foram descontado de sua conta bancбria, R$300 Pelo o valor da multa!");
                DadosJogador[ID_OUTRO_JOGADOR][CONTA_BANCO_JOGADOR] -= 300;
                format(String,sizeof(String),"(%s): %s Multou %s, Motivo: %s | Data: [%d/%d/%d] Horбrio: [%d:%d:%d]", NomeORG(playerid), PlayerNick(playerid), PlayerNick(ID_OUTRO_JOGADOR), Desc, Dia, Mes, Ano, Horas, Minutos, Segundos);
                Multou_Jogador(String);
                printf(" - [%d/%d/%d]: (%s): %s Multou %s, Motivo: %s", Dia, Mes, Ano, NomeORG(playerid), PlayerNick(playerid), PlayerNick(ID_OUTRO_JOGADOR), Desc);
            }
        }
    }
    else
    {
        SendClientMessage(playerid, VERMELHO_BEM_CLARO, "Vocк nгo estб autorizado a usar este comando.");
    }
    return true;
}
Reply
#4

Vocк queria adaptar isso na multa como? Explique melhor
Reply
#5

Quote:
Originally Posted by DiegoLeo
Посмотреть сообщение
Vocк queria adaptar isso na multa como? Explique melhor
Tipo como estб no comando lб

Se o jogador nгo estiver em nenhuma moto ou carro, barco, helicoptero, Caminhгo/onibus iria retirar a licenзa do ultima veiculo que ele entrou

Exemplo:

ele entrou em um carro ai ele saiu do carro e o cop deu /multar nele, ai iria retirar a licenзa do jogador se caso ele alcanзa-se 20 pontos de carteira
Reply
#6

GetVehicleModel
Reply
#7

Quote:
Originally Posted by PT
Посмотреть сообщение
Aqui tem uma base:

pawn Код:
new UltimoVeiculo[MAX_PLAYERS];

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    UltimoVeiculo[playerid] = vehicleid;
    return 1;
}

YCMD:ultimocarro(playerid, params[], help)
{
    new PT[50];
    format(PT, sizeof(PT), "Seu ultimo carro foi %i", UltimoVeiculo[playerid]);
    SendClientMessage(playerid, -1, PT);
    return 1;
}
Acho melhor usar OnPlayerStateChange, porque, atй onde sei, o OnPlayerEnterVehicle й chamado na animaзгo em que o player aperta F para montar no veнculo.
Reply
#8

Quote:
Originally Posted by Rodney Francalim
Посмотреть сообщение
Acho melhor usar OnPlayerStateChange, porque, atй onde sei, o OnPlayerEnterVehicle й chamado na animaзгo em que o player aperta F para montar no veнculo.
Sim exato, o OnPlayerEnterVehicle й chamado quando o player comeзa a entrar no carro, nгo quando entrou.
Tem razгo, o cara se quiser poderб alterar apenas lhe dei uma lуgica pra ele tentar desenvolver o que quer.

Vlw por relembrar.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)