SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Português/Portuguese

Reply
 
Thread Tools Display Modes
Old 22/02/2020, 01:32 AM   #1
moura98
Huge Clucker
 
moura98's Avatar
 
Join Date: Jul 2015
Location: Brasil
Posts: 445
Reputation: 20
Default carro dentro do outro

estou fazendo um emprego de ladrao de carros onde o ladrao marca um veiculo para ir roubar. o problema e que qnd outro ladrao marca os carros ficam na msm posicao bugando um dentro do outro. akguma ajuda de como posso fazer ?
PHP Code:
CMD:marcarcarro(playerid)
{

    new 
rand
    
// anti bugs
    
if( Player[playerid][pEmprego] != LadraoCarros )
        return 
SendClientMessage(playerid, -1"<!> Voce nao tem permissao.");
    
//if( Marcado[playerid] == true )
    //    return SendClientMessage(playerid, -1, "<!> voce ja marcou um carro");

    
rand randomsizeof(CarrosRoubo) );
    
SetPlayerCheckpoint(playeridCarrosRoubo[rand][0], CarrosRoubo[rand][1], CarrosRoubo[rand][2], 3);

    switch( 
random(3) )
    {    
        case 
0:carro_roubo[playerid] = CreateVehicle(410CarrosRoubo[rand][0], CarrosRoubo[rand][1], CarrosRoubo[rand][2]+3CarrosRoubo[rand][3], 11180);
        case 
1:carro_roubo[playerid] = CreateVehicle(478CarrosRoubo[rand][0], CarrosRoubo[rand][1], CarrosRoubo[rand][2]+3CarrosRoubo[rand][3], 11180);
        case 
2:carro_roubo[playerid] = CreateVehicle(402CarrosRoubo[rand][0], CarrosRoubo[rand][1], CarrosRoubo[rand][2]+3CarrosRoubo[rand][3], 11180);
    }
    
    
MotorQuebrado[carro_roubo[playerid]] = false;
    
Marcado[playerid] = true;
    
SendClientMessage(playeridVERDE_CLARO"*Veiculo marcado no mapa va ate a localizacao e faca o roubo");
    return 
1;

__________________
moura98 is offline   Reply With Quote
Old 22/02/2020, 12:16 PM   #2
G4M30V3R
Big Clucker
 
G4M30V3R's Avatar
 
Join Date: Jun 2016
Posts: 154
Reputation: 23
Default Re: carro dentro do outro

Basta criar uma variável que indique que aquela posição já foi ocupada.
Ao finalizar o roubo, basta definir a variável para false.

Code:
new bool:roubo_ativo_pos[sizeof(CarrosRoubo)];

CMD:marcarcarro(playerid)
{

    new rand, carros_siz = sizeof(CarrosRoubo); 
    // anti bugs
    if( Player[playerid][pEmprego] != LadraoCarros )
        return SendClientMessage(playerid, -1, "<!> Voce nao tem permissao.");
    //if( Marcado[playerid] == true )
    //    return SendClientMessage(playerid, -1, "<!> voce ja marcou um carro");

    rand = random( carros_siz );
    SetPlayerCheckpoint(playerid, CarrosRoubo[rand][0], CarrosRoubo[rand][1], CarrosRoubo[rand][2], 3);

    new rand_veh[3] = { 410, 478, 402 }; // Melhor desta forma, caso queira ampliar os modelos
    new rand2 = random(sizeof(rand_veh));

    carro_roubo[playerid] = CreateVehicle(rand_veh[rand2], CarrosRoubo[rand][0], CarrosRoubo[rand][1], CarrosRoubo[rand][2]+3, CarrosRoubo[rand][3], 1, 1, 180);
    
    roubo_ativo_pos[rand] = true; 
    MotorQuebrado[carro_roubo[playerid]] = false;
    Marcado[playerid] = true;

    while(carros_siz --)
    {
        rand = random(sizeof(CarrosRoubo));
        if(roubo_ativo_pos[rand])
            continue;

        SetPlayerCheckpoint(playerid, CarrosRoubo[rand][0], CarrosRoubo[rand][1], CarrosRoubo[rand][2], 3);

        new rand_veh[3] = { 410, 478, 402 }; // Melhor desta forma, caso queira ampliar os modelos
        new rand2 = random(sizeof(rand_veh));

        carro_roubo[playerid] = CreateVehicle(rand_veh[rand2], CarrosRoubo[rand][0], CarrosRoubo[rand][1], CarrosRoubo[rand][2]+3, CarrosRoubo[rand][3], 1, 1, 180); 
    
        roubo_ativo_pos[rand] = true; 
        MotorQuebrado[carro_roubo[playerid]] = false;
        Marcado[playerid] = true;
        SendClientMessage(playerid, VERDE_CLARO, "*Veiculo marcado no mapa va ate a localizacao e faca o roubo");

        return 1;
    }

    SendClientMessage(playerid, -1, "<!> Não há mais rotas disponíveis, aguarde alguns minutos.");

    return 1;
}
G4M30V3R is offline   Reply With Quote
Old 22/02/2020, 05:05 PM   #3
AdrianoStk
Huge Clucker
 
AdrianoStk's Avatar
 
Join Date: Jan 2013
Location: Presidente Prudente-SP
Posts: 467
Reputation: 32
Default Re: carro dentro do outro

Ao contrario do post anterior este está otimizado e funcional!
Ao final do roubo ou seja quando o player destruir o carro precisa setar esta variável para false

PHP Code:
carro_pos_used[carro_aleatorio_roubo[playerid]] = false
PHP Code:
new bool:carro_pos_used[sizeof(CarrosRoubo)];//Todo da GM ou acima do sistema de roubar veiculos
new carro_aleatorio_roubo[MAX_PLAYERS];
CMD:marcarcarro(playerid)
{

    
    
// anti bugs
    
if(Player[playerid][pEmprego] != LadraoCarros)
        return 
SendClientMessage(playerid, -1"<!> Voce nao tem permissao.");
    
//if( Marcado[playerid] == true )
    //    return SendClientMessage(playerid, -1, "<!> voce ja marcou um carro");

    
new rand SorteiaPos(); 
    
carro_pos_used[rand] = true;
    
carro_aleatorio_roubo[playerid] = rand;
    
SetPlayerCheckpoint(playeridCarrosRoubo[rand][0], CarrosRoubo[rand][1], CarrosRoubo[rand][2], 3);

    switch(
random(3))
    {    
        case 
0:carro_roubo[playerid] = CreateVehicle(410CarrosRoubo[rand][0], CarrosRoubo[rand][1], CarrosRoubo[rand][2]+3CarrosRoubo[rand][3], 11180);
        case 
1:carro_roubo[playerid] = CreateVehicle(478CarrosRoubo[rand][0], CarrosRoubo[rand][1], CarrosRoubo[rand][2]+3CarrosRoubo[rand][3], 11180);
        case 
2:carro_roubo[playerid] = CreateVehicle(402CarrosRoubo[rand][0], CarrosRoubo[rand][1], CarrosRoubo[rand][2]+3CarrosRoubo[rand][3], 11180);
    }
    
    
MotorQuebrado[carro_roubo[playerid]] = false;
    
Marcado[playerid] = true;
    
SendClientMessage(playeridVERDE_CLARO"*Veiculo marcado no mapa va ate a localizacao e faca o roubo");
    return 
1;


stock SorteiaPos()
{
    new 
valor_rand random(sizeof(CarrosRoubo));
    return 
carro_pos_used[valor_rand]? SorteiaPos() : valor_rand;

__________________
Hayllander Server's


Breve, nos servidores


Discord
AdrianoStk is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[Ajuda] if dentro de outro if iWiNeR Português/Portuguese 4 21/12/2014 12:18 AM
[DUV]Deletar carro ao criar outro williamgato Português/Portuguese 5 12/04/2014 08:31 PM
[Ajuda] Sistemas dentro do outro Serjnrg Português/Portuguese 1 24/12/2012 05:59 PM
[Ajuda] Colocar um Dialog dentro de outro Math3us Português/Portuguese 5 30/07/2012 02:21 PM
[Ajuda] Impedir um comando dentro de outro Netinho_the_killer Português/Portuguese 19 25/07/2012 03:42 PM


All times are GMT. The time now is 01:21 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.