[Ajuda] Ajuda nesse comando.
#1

PHP код:
if(strcmp(cmdtext"/comprarcarro"true) == 0) {
new 
VehicleID;
VehicleID GetPlayerVehicleID(playerid);
new 
pname[MAX_PLAYER_NAME];
GetPlayerName(playeridpnamesizeof(pname));
for(new 
carro 0carro MAX_CARROScarro++)
{
format(stringsizeof(string), "carro%d.ini"carro);
if(
strcmp(dini_Get(string"Dono"), pnametrue) == 0){
SendClientMessage(playeridVermelho"Vocк jб tem um carro");
return 
1;
}
if(
IsPlayerInAnyVehicle(playerid) && GetPlayerVehicleSeat(playerid) == && VehicleID == dini_Int(string"Id")){
if(
GetPlayerGrana(playerid) >= dini_Int(string"Preco")){
new 
aname[MAX_PLAYER_NAME];
GetPlayerName(playeridanameMAX_PLAYER_NAME);
dini_IntSet(string"TDono"1);
dini_Set(string"Dono"aname);
SendClientMessage(playeridVioleta"(INFO) Veiculo comprado com sucesso!");
SendClientMessage(playeridVermelho"(INFO) Para ver os comandos do veiculo, use: /meucarro");
GivePlayerGrana(playerid, -dini_Int(string"Preco"));
TogglePlayerControllable(playerid1);
return 
1;
} else {
SendClientMessage(playeridVermelho"(ERRO) Vocк nгo tem dinheiro suficiente!");
return 
1;
}
}
}

Define MAX_CARROS = 350

Nгo entendo porque apenas da para comprar 1 carro

Gostaria de saber como alterar para 3
Reply
#2

pawn Код:
for(new carro = 0; carro < MAX_CARROS; carro++)
{
format(string, sizeof(string), "carro%d.ini", carro);
if(strcmp(dini_Get(string, "Dono"), pname, true) == 0){
SendClientMessage(playerid, Vermelho, "Vocк jб tem um carro");
return 1;
}
Essa й a parte que faz a checagem se o jogador jб tem um carro, entгo basta trocar por esta que logicamente vai funcionar:

pawn Код:
for ( new carro = 0 ; carro < MAX_CARROS ; carro++ )
{
    new
        int_player_cars [ MAX_PLAYERS ] ;
       
    format ( string, sizeof ( string ) , "carro%d.ini", carro ) ;
   
    if ( strcmp ( dini_Get ( string, "Dono" ), pname, true ) == 0)
        int_player_cars [ playerid ] ++;
       
    if ( int_player_cars [ playerid ]  == 3 )
        return SendClientMessage ( playerid, Vermelho, "Vocк jб tem 3 carros!" ) ;
}
Caso nгo funcionar, sу postar

Abraзos.
Reply
#3

pawn Код:
static int_player_cars[MAX_PLAYERS];
for ( new carro = 0 ; carro < MAX_CARROS ; carro++ )
{
       
    format ( string, sizeof ( string ) , "carro%d.ini", carro ) ;
   
    if ( strcmp ( dini_Get ( string, "Dono" ), pname, true ) == 0)
        int_player_cars[playerid]++;
       
    if ( int_player_cars[playerid] == 3 )
        return SendClientMessage ( playerid, Vermelho, "Vocк jб tem 3 carros!" ) ;
}
Reply
#4

Garfield, usei a sua e a do lуs ,

bom o problema agora й que , diz ter 3 carros sendo que a pessoa nгo tem nem 1.

:S
Reply
#5

Quote:
Originally Posted by Equipe
Посмотреть сообщение
Garfield, usei a sua e a do lуs ,

bom o problema agora й que , diz ter 3 carros sendo que a pessoa nгo tem nem 1.

:S
Analisando seu cуdigo, encontrei alguns erros, refiz o cуdigo e parece estar funcional agora:

pawn Код:
if ( strcmp ( cmdtext, "/comprarcarro", true ) == 0 )
{
    new
        VehicleID = GetPlayerVehicleID(playerid) ,
        str_carro_1 [ 128 ] ,
        str_carro_2 [ 128 ] ,
        pname [ MAX_PLAYER_NAME ] ;
       
    format ( str_carro_1, sizeof ( str_carro_1 ) , "carro%d.ini", VehicleID ) ;
   
    GetPlayerName ( playerid, pname, sizeof ( pname ) ) ;

    for ( new carro = 0 ; carro < MAX_CARROS ; carro++ )
    {
        new
            int_player_cars [ MAX_PLAYERS ] ;
           
        format ( str_carro_2, sizeof ( str_carro_2 ) , "carro%d.ini", carro ) ;
       
        if ( strcmp ( dini_Get ( str_carro_2, "Dono" ), pname, true ) == 0)
            int_player_cars [ playerid ] ++;
       
        if ( int_player_cars [ playerid ] == 3 )
            return SendClientMessage( playerid, Vermelho, "Vocк ja tem 3 carros by mister!" ) ;
           
        else
            continue ;
    }
   
    if ( IsPlayerInAnyVehicle ( playerid ) && GetPlayerVehicleSeat ( playerid ) == 0 && VehicleID == dini_Int ( str_carro_1, "Id" ) )
    {
        if ( GetPlayerGrana ( playerid ) < dini_Int ( str_carro_1, "Preco" ) )
            return SendClientMessage ( playerid, Vermelho, "(ERRO) Vocк nгo tem dinheiro suficiente!" ) ;
           
        dini_IntSet ( str_carro_1, "TDono", 1 ) ;
        dini_Set ( str_carro_1, "Dono", pname ) ;
       
        GivePlayerGrana ( playerid, -dini_Int ( str_carro_1, "Preco" ) ) ;
        TogglePlayerControllable ( playerid, 1 ) ;
       
        SendClientMessage ( playerid, Violeta, "(INFO) Veiculo comprado com sucesso!" ) ;
        SendClientMessage ( playerid, Vermelho, "(INFO) Para ver os comandos do veiculo, use: /meucarro" ) ;       
    }
   
    return 1;
}
Reply
#6

Bom los, compilou, obrigado a ajuda

Porem: Ao dar /comprarcarro, nгo acontece nada. o carro nгo й comprado nem nada, o player sу fica dentro do carro atй dar "f"

Cуdigo:

PHP код:
if ( strcmp cmdtext"/comprarcarro"true ) == )
{
    new
        
VehicleID GetPlayerVehicleID(playerid) ,
        
str_carro_1 128 ] ,
        
str_carro_2 128 ] ,
        
pname MAX_PLAYER_NAME ] ;
    
format str_carro_1sizeof str_carro_1 ) , "carro%d.ini"VehicleID ) ;
    
GetPlayerName playeridpnamesizeof pname ) ) ;
    for ( new 
carro carro MAX_CARROS carro++ )
    {
        new
            
int_player_cars MAX_PLAYERS ] ;
        
format str_carro_2sizeof str_carro_2 ) , "carro%d.ini"carro ) ;
        if ( 
strcmp dini_Get str_carro_2"Dono" ), pnametrue ) == 0)
            
int_player_cars playerid ] ++;
        if ( 
int_player_cars playerid ] == )
            return 
SendClientMessageplayeridVermelho"Vocк ja tem 3 carros by mister!" ) ;
        else
            continue ;
    }
    if ( 
IsPlayerInAnyVehicle playerid ) && GetPlayerVehicleSeat playerid ) == && VehicleID == dini_Int str_carro_1"Id" ) )
    {
        if ( 
GetPlayerGrana playerid ) < dini_Int string"Preco" ) )
            return 
SendClientMessage playeridVermelho"(ERRO) Vocк nгo tem dinheiro suficiente!" ) ;
         
dini_IntSet str_carro_1"TDono") ;
         
dini_Set str_carro_1"Dono"pname ) ;
         
GivePlayerGrana playerid, -dini_Int str_carro_1"Preco" ) ) ;
         
TogglePlayerControllable playerid) ;
         
SendClientMessage playeridVioleta"(INFO) Veiculo comprado com sucesso!" ) ;
         
SendClientMessage playeridVermelho"(INFO) Para ver os comandos do veiculo, use: /meucarro" ) ;
    }
    return 
1;

Reply
#7

UP!!
Reply
#8

Adicione algumas condiзхes ou separe-as no script, assim vocк vai saber aonde estб o erro.

pawn Код:
if ( strcmp ( cmdtext, "/comprarcarro", true ) == 0 )
{
    new
        VehicleID = GetPlayerVehicleID(playerid) ,
        str_carro_1 [ 128 ] ,
        str_carro_2 [ 128 ] ,
        pname [ MAX_PLAYER_NAME ] ;

    format ( str_carro_1, sizeof ( str_carro_1 ) , "carro%d.ini", VehicleID ) ;

    GetPlayerName ( playerid, pname, sizeof ( pname ) ) ;
    for ( new carro = 0 ; carro < MAX_CARROS ; carro++ )
    {
        new
            int_player_cars [ MAX_PLAYERS ] ;

        format ( str_carro_2, sizeof ( str_carro_2 ) , "carro%d.ini", carro ) ;

        if ( !strcmp ( dini_Get ( str_carro_2, "Dono" ), pname, true )  )
            int_player_cars [ playerid ] ++;

        if ( int_player_cars [ playerid ] == 3 )
            return SendClientMessage( playerid, Vermelho, "Vocк ja tem 3 carros by mister!" ) ;

        else
            continue ;
    }
    if ( !IsPlayerInAnyVehicle ( playerid ) )
        return SendClientMessage ( playerid, Vermelho, "(ERRO) Vocк nгo estб em um veнculo!" ) ;

    if ( GetPlayerVehicleSeat (playerid) != 0)
        return SendClientMessage ( playerid, Vermelho, "(ERRO) Й necessбrio ser o motorista do veнculo!") ;

    if ( VehicleID != dini_Int ( str_carro_1, "Id" ) )
        return SendClientMessage ( playerid, Vermelho, "(ERRO) Esse veнculo nгo estб а venda!") ;

    if ( GetPlayerGrana ( playerid ) < dini_Int ( string, "Preco" ) )
        return SendClientMessage ( playerid, Vermelho, "(ERRO) Vocк nгo tem dinheiro suficiente!" ) ;

     dini_IntSet ( str_carro_1, "TDono", 1 ) ;
     dini_Set ( str_carro_1, "Dono", pname ) ;

     GivePlayerGrana ( playerid, -dini_Int ( str_carro_1, "Preco" ) ) ;
     TogglePlayerControllable ( playerid, 1 ) ;

     SendClientMessage ( playerid, Violeta, "(INFO) Veiculo comprado com sucesso!" ) ;
     SendClientMessage ( playerid, Vermelho, "(INFO) Para ver os comandos do veiculo, use: /meucarro" ) ;

     return 1;

    }
    return 1;
}
Caso o erro persisti, basta fazer um debug no script.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)