[Ajuda] Procurar dono do veнculo
#1

Quando eu procuro pelo dono do veнculo, usando o /dl, aparece o dono de outro veнculo
Como resolvo isso?

PHP Code:
Dialog:PlateID(playeridresponselistiteminputtext[])
{
    if (
GetFactionType(playerid) != FACTION_POLICE || !IsACruiser(GetPlayerVehicleID(playerid)))
        return 
0;
    if(
response)
    {
        new
            
id strval(inputtext);
            
        if(!
IsNumeric(inputtext))
            return 
Dialog_Show(playeridPlateIDDIALOG_STYLE_INPUT"Procurar Placa ((ID))""Para procurar pelo dono do veнculo, vocк deve inserir o ID do veнculo ((/dl))\n{FF6347}Insira o emplacamento do veнculo abaixo.""Enviar""Voltar");
        if (!
IsValidVehicle(id))
            return 
SendErrorMessage(playerid"Vocк especificou uma placa invбlida.");
        
Dialog_Show(playeridShowOnlyDIALOG_STYLE_MSGBOX"Resultado da Pesquisa""Modelo do Veнculo: %s.\nDono do Veнculo: %s.""Fechar"""ReturnVehicleName(id), CarData[id][carOwnerName]);
    }
    else 
cmd_mdc(playerid"\1");
    return 
1;

Reply
#2

Mostre o /dl
Reply
#3

O /dl й uma funзгo nativa do SA-MP, na qual mostra o ID do veнculo
Reply
#4

Ah, tinha esquecido desse comando, mas DL nгo mostra "dono de veнculo"

Crie uma label

https://sampwiki.blast.hk/wiki/3dtextlabel
https://sampforum.blast.hk/showthread.php?tid=559539
Reply
#5

Sim, mas ele mostra o ID do veнculo
E no Dialog acima, quando o policial digita o ID do veнculo mostrado no /dl
O sistema procura na database o dono do veнculo inserido no dialog (no caso, no /dl)
Reply
#6

Entendi, use GetVehicleModel
Reply
#7

Up ~
Alguйm??
Reply
#8

Quote:
Originally Posted by MineiriinHo
View Post
Sim, mas ele mostra o ID do veнculo
E no Dialog acima, quando o policial digita o ID do veнculo mostrado no /dl
O sistema procura na database o dono do veнculo inserido no dialog (no caso, no /dl)
Mostre a query que vocк estб utilizando.
Reply
#9

Quote:
Originally Posted by MineiriinHo
View Post
Sim, mas ele mostra o ID do veнculo
E no Dialog acima, quando o policial digita o ID do veнculo mostrado no /dl
O sistema procura na database o dono do veнculo inserido no dialog (no caso, no /dl)
Vocк estб pensando errado!

Sim, /dl mostra o ID do veнculo, porйm, nгo serб necessariamente o mesmo ID que estб na database.

Quando vocк usa CreateVehicle, AddStaticVehicle... Automaticamente eles vгo recebendo um ID na ordem que forem criados.
PHP Code:
CreateVehicle(...); // 1
CreateVehicle(...); // 2
CreateVehicle(...); // 3
CreateVehicle(...); // 4
CreateVehicle(...); // 5 
/DL mostra o ID que o servidor atribui a ele conforme a ordem que o veнculo foi criado.

Vou te dar um exemplo:
PHP Code:
public OnGameModeInit() {
    
CreateVehicle(...); // Recebe o ID 1
    
CreateVehicle(...); // Recebe o ID 2
    
CreateVehicle(...); // Recebe o ID 3
    
CreateVehicle(...); // Recebe o ID 4
    // Digamos que abaixo vou carregar o veнculo ID 7 da database.
    
CarregarVeiculo(7);
    return 
1;
}
CarregarVeiculo(ID) {
    new 
strfile[20];
    
format(strfile20"Veiculos/%d.ini"ID);
    
Veiculo[ID][Modelo] = DOF2_GetInt(strfile"Modelo");
    
Veiculo[ID][X] = DOF2_GetFloat(strfile"X");
    
Veiculo[ID][Y] = DOF2_GetFloat(strfile"Y");
    
Veiculo[ID][Z] = DOF2_GetFloat(strfile"Z");
    
Veiculo[ID][A] = DOF2_GetFloat(strfile"A");
    
CreateVehicle(Veiculo[ID][Modelo], Veiculo[ID][X], Veiculo[ID][Y], Veiculo[ID][Z], Veiculo[ID][A], 110);
    
// Esse veнculo receberб o ID 5, porйm, na database ele serб o ID 7

P: Por que ID 5?
R: Antes de carregar o veнculo ID 7 da database, antes vocк criou outros 4 veнculos que foram recebendo ID. Esse ID do veнculo pode ser pego usando GetPlayerVehicleID.

P: O que fazer entгo?
R: Deve criar uma array, e guardar o ID deles nela.
PHP Code:
public OnGameModeInit() {
    
CreateVehicle(...);
    
CreateVehicle(...);
    
CreateVehicle(...);
    
CreateVehicle(...);
    
CarregarVeiculo(7);
    return 
1;
}
new 
VehCarregados[MAX_VEICULOS];
CarregarVeiculo(ID) {
    new 
strfile[20];
    
format(strfile20"Veiculos/%d.ini"ID);
    
Veiculo[ID][Modelo] = DOF2_GetInt(strfile"Modelo");
    
Veiculo[ID][X] = DOF2_GetFloat(strfile"X");
    
Veiculo[ID][Y] = DOF2_GetFloat(strfile"Y");
    
Veiculo[ID][Z] = DOF2_GetFloat(strfile"Z");
    
Veiculo[ID][A] = DOF2_GetFloat(strfile"A");
    
VehCarregados[ID] = CreateVehicle(Veiculo[ID][Modelo], Veiculo[ID][X], Veiculo[ID][Y], Veiculo[ID][Z], Veiculo[ID][A], 110);
}
// Exemplo de comando /DL (Nгo pode usar /DL, й do SA:MP, entгo chamarei de /NovoDL)
COMMAND:novodl(playeridparams[]) {
    new 
veh GetPlayerVehicleID(playerid);
    new 
VeiculoQueEuTo = -1;
    if(!
veh)
        return 
SendClientMessage(playerid0xFF0000FF"| ERRO | Vocк nгo estб em um veнculo!");
    
    for(new 
0MAX_VEICULOS; ++i) {
        if(
veh == VehCarregados[i]) {
            
VeiculoQueEuTo i;
            break;
        }
    }
    if(
VeiculoQueEuTo == -1)
        return 
SendClientMessage(playerid0xFF0000FF"| ERRO | Vocк nгo estб em um veнculo particular!");
    
// A variбvel VeiculoQueEuTo recebe o ID do veнculo privado, pode ser o ID 7 por exemplo.
    // Para mudar a cor dele por exemplo.
    
ChangeVehicleColor(VehCarregados[VeiculoQueEuTo], 66);
    
// Para modificar o arquivo dele
    // Digamos que exista uma funзгo para salvar os dados do veнculo
    
SalvarVeiculo(VeiculoQueEuTo);
    
// Entгo o Veiculo foi salvo no arquivo dele. (ID 7 da database).
    
return 1;

VeiculoQueEuTo: Possuн o ID do veнculo da database (No caso do exemplo, ID 7). Modificaзхes no arquivo dele ou no banco de dados, usarб o ID dessa variбvel.

VehCarregados[VeiculoQueEuTo]: Possuн o ID do veнculo que o servidor atribuiu (No caso do exemplo, ID 5). Modificaзхes no veнculo ingame, usara essa array (Como fiz com o ChangeVehicleColor).
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)