[Ajuda] bug no /comprarcarro
#1

quando um adm cria um carro pra vender
existe o comando /comprarcarro
nele qualquer um q dps do carro ser comprado pode compralo de novo com /comprarcarro
ex:eu comprei>entra um fulano e digita /comprarcarro no meu carro
*e o carrro fika pra ele

Код:
if(strcmp(cmdtext, "/comprarcarro", true) == 0) {
new VehicleID;
VehicleID = GetPlayerVehicleID(playerid);
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, sizeof(pname));
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;
}
if(IsPlayerInAnyVehicle(playerid) && GetPlayerVehicleSeat(playerid) == 0 && VehicleID == dini_Int(string, "Id")){
if(GetPlayerGrana(playerid) >= dini_Int(string, "Preco")){
new aname[MAX_PLAYER_NAME];
GetPlayerName(playerid, aname, MAX_PLAYER_NAME);
dini_IntSet(string, "TDono", 1);
dini_Set(string, "Dono", aname);
SendClientMessage(playerid, Azul, "(INFO) Veiculo comprado com sucesso!");
SendClientMessage(playerid, Azul, "(INFO) Para ver os comandos do veiculo, use: /meucarro");
GivePlayerGrana(playerid, -dini_Int(string, "Preco"));
TogglePlayerControllable(playerid, 1);
return 1;
} else {
SendClientMessage(playerid, Vermelho, "(ERRO) Vocк nгo tem dinheiro suficiente!");
return 1;
}
}
}
}
Abraзo!!
espero q me ajudem
Reply
#2

pawn Код:
if(strcmp(cmdtext, "/comprarcarro", true) == 0)
{
new VehicleID;
VehicleID = GetPlayerVehicleID(playerid);
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, sizeof(pname));
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;
}
if(IsPlayerInAnyVehicle(playerid) && GetPlayerVehicleSeat(playerid) == 0 && VehicleID == dini_Int(string, "Id"))
{
if(GetPlayerGrana(playerid) >= dini_Int(string, "Preco"))
{
new aname[MAX_PLAYER_NAME];
GetPlayerName(playerid, aname, MAX_PLAYER_NAME);
dini_Set(string, "Dono", aname);
SendClientMessage(playerid, Azul, "(INFO) Veiculo comprado com sucesso!");
SendClientMessage(playerid, Azul, "(INFO) Para ver os comandos do veiculo, use: /meucarro");
GivePlayerGrana(playerid, -dini_Int(string, "Preco"));
TogglePlayerControllable(playerid, 1);
return 1;
}
else
{
SendClientMessage(playerid, Vermelho, "(ERRO) Vocк nгo tem dinheiro suficiente!");
return 1;
}
}
}
}

Код:
Cуdigo Mal Identado pode dar warnings futuramente...
Se nгo tiver nгo precisa pфr (уbvio)
Код:
#pragma tabsize 0
Reply
#3

@DOUBLEPOST

com o seu code q vc passou ele nem comprar ele permite ele diz "voce ja tem um carro"

*obs:n й problema nas acc pois eu resetei elas
Reply
#4

Quote:
Originally Posted by THE_FALLEN
Посмотреть сообщение
@DOUBLEPOST

com o seu code q vc passou ele nem comprar ele permite ele diz "voce ja tem um carro"

*obs:n й problema nas acc pois eu resetei elas
й logico ¬¬
olha o codigo dele com atenзгo...
Reply
#5

pawn Код:
if(strcmp(dini_Get(string, "Dono"), pname, true) == 0)
{
SendClientMessage(playerid, Vermelho, "Vocк jб tem um carro");
return 1;
}
Ele irб verificar na linha ou arquivo "Dono" se ele tem um carro

PHP код:
Dono=%// Algo Assim... 
Se nгo funfar,retire o return.
Reply
#6

nao funcionou
kkkk
Reply
#7

Isto deve resolver o seu problema, coloque :


pawn Код:
//No Topo do GM:

new bool:CarroComprado[MAX_VEHICLES];




//No seu comando /comprarcarro, embaixo da linha dini_Set(string, "Dono", aname);  :

CarroComprado[GetPlayerVehicleID(playerid)] = true;




//E por fim, no coloque no seu comando /comprarcarro, mas dessa vez embaixo da linha VehicleID = GetPlayerVehicleID(playerid);


if(CarroComprado[GetPlayerVehicleID(playerid)]) return SendClientMessage(playerid, Vermelho, "Este veнculo jб tem dono !");


Sу isso .


Espero ter ajudado .
Reply
#8

Segundo as informaзхes recolhidas, facilitei seu trabalho:

Topo:
pawn Код:
new bool:CarroComprado[MAX_VEHICLES];
Comando:
pawn Код:
if(!strcmp(cmdtext, "/comprarcarro", true))
{
   new VehicleID;
   VehicleID = GetPlayerVehicleID(playerid);
   if(CarroComprado[GetPlayerVehicleID(playerid)]) return SendClientMessage(playerid, Vermelho, "Este veнculo jб tem dono!");
   new pname[MAX_PLAYER_NAME];
   GetPlayerName(playerid, pname, sizeof(pname));
   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)
      {
         return SendClientMessage(playerid, Vermelho, "Vocк jб tem um carro");
      }
      if(IsPlayerInAnyVehicle(playerid) && GetPlayerVehicleSeat(playerid) == 0 && VehicleID == dini_Int(string, "Id"))
      {
         if(GetPlayerGrana(playerid) >= dini_Int(string, "Preco"))
         {
            new aname[MAX_PLAYER_NAME];
            GetPlayerName(playerid, aname, MAX_PLAYER_NAME);
            dini_Set(string, "Dono", aname);
            CarroComprado[GetPlayerVehicleID(playerid)] = true;
            SendClientMessage(playerid, Azul, "(INFO) Veiculo comprado com sucesso!");
            SendClientMessage(playerid, Azul, "(INFO) Para ver os comandos do veiculo, use: /meucarro");
            GivePlayerGrana(playerid, -dini_Int(string, "Preco"));
            return TogglePlayerControllable(playerid, 1);
         }
         else return SendClientMessage(playerid, Vermelho, "(ERRO) Vocк nгo tem dinheiro suficiente!");
      }
   }
}
Reply
#9

vlw vou testar
Reply
#10

@doublepost

sem querrer ser chato mas testei todos q me fizeram e n deu certo vou pegar os principais cmds veinculados ao bug e se puderem eu queria um cmd tipo pra um admin liberar a pessoa comprar o carro

Ex: /liberarcompra

code:

pawn Код:
if(strcmp(cmd, "/ccar", true) == 0) {
        new pname[MAX_PLAYER_NAME];
        GetPlayerName(playerid, pname, sizeof(pname));
        if(IsPlayerAdmin(playerid)|| pAdmin[playerid] == 5){

            new tmp[256];
            new carid, Float:ang, preco, cor1, cor2;

            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp)){
                SendClientMessage(playerid, Cinza, "(ERRO) Veiculo invбlido.");
                return 1;
            }
            carid = strval(tmp);

            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp)) {
                SendClientMessage(playerid, Cinza, "(ERRO): /ccar [id] [preзo] [cor1] [cor2]");
                return 1;
            }
            preco = strval(tmp);

            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp)) {
                SendClientMessage(playerid, Cinza, "(ERRO): /ccar [id] [preзo] [cor1] [cor2]");
                return 1;
            }
            cor1 = strval(tmp);

            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp)) {
                SendClientMessage(playerid, Cinza, "(ERRO): /ccar [id] [preзo] [cor1] [cor2]");
                return 1;
            }
            cor2 = strval(tmp);
            if(carid >= 400 && carid <= 611){
            if(IsPlayerInAnyVehicle(playerid)){
                        new Float:X, Float:Y, Float:Z;
                        GetPlayerPos(playerid, X, Y, Z);
                        GetVehicleZAngle(GetPlayerVehicleID(playerid),ang);
                        format(string, sizeof(string), "carro%d.ini", proximocarro);
                        if(!dini_Exists(string)){
                        dini_Create(string);
                        dini_IntSet(string, "Modelo", carid);
                        dini_FloatSet(string, "CordX", Float:X);
                        dini_FloatSet(string, "CordY", Float:Y);
                        dini_FloatSet(string, "CordZ", Float:Z);
                        dini_FloatSet(string, "Angulo", Float:ang);
                        dini_IntSet(string, "Cor1", cor1);
                        dini_IntSet(string, "Cor2", cor2);
                        dini_IntSet(string, "TDono", 0);
                        dini_Set(string, "Dono", "Ninguem");
                        dini_IntSet(string, "Preco", preco);
                        }
            SetTimerEx("CriarVeiculo2",5000,false,"dffffdd",carid,X,Y,Z,ang,cor1,cor2);
                        format(string, sizeof(string), "(INFO) Veiculo criado com sucesso!");
                        SendClientMessage(playerid, Azul, string);
                        return 1;
            } else {
            SendClientMessage(playerid, Vermelho, "(ERRO) Vocк nгo estб em um veiculo!");
            }
            }
            else{
                SendClientMessage(playerid, Cinza, "(ERRO) Veiculo invбlido.");
                return 1;
            }
        } else {
            SendClientMessage(playerid, Cinza, "(ERRO) Vocк nгo tem permissгo para isso");
            return 1;
        }
    }

if(strcmp(cmdtext, "/comprarcarro", true) == 0) {
new VehicleID;
VehicleID = GetPlayerVehicleID(playerid);
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, sizeof(pname));
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;
}
if(IsPlayerInAnyVehicle(playerid) && GetPlayerVehicleSeat(playerid) == 0 && VehicleID == dini_Int(string, "Id")){
if(GetPlayerGrana(playerid) >= dini_Int(string, "Preco")){
new aname[MAX_PLAYER_NAME];
GetPlayerName(playerid, aname, MAX_PLAYER_NAME);
dini_IntSet(string, "TDono", 1);
dini_Set(string, "Dono", aname);
SendClientMessage(playerid, Azul, "(INFO) Veiculo comprado com sucesso!");
SendClientMessage(playerid, Azul, "(INFO) Para ver os comandos do veiculo, use: /meucarro");
GivePlayerGrana(playerid, -dini_Int(string, "Preco"));
TogglePlayerControllable(playerid, 1);
return 1;
} else {
SendClientMessage(playerid, Vermelho, "(ERRO) Vocк nгo tem dinheiro suficiente!");
return 1;
}
}
}
}

if(strcmp(cmdtext, "/meucarro", true) == 0) {
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
new resultados;
new string2[256];
for(new carro = 0; carro < MAX_CARROS; carro++)
{
format(string, sizeof(string), "carro%d.ini", carro);
if(dini_Exists(string)){
if(strcmp(dini_Get(string, "Dono"), pname, true) == 0){
format(string2, sizeof(string2), "Meu Carro(Id:%d)", carro);
ShowPlayerDialog(playerid, 4501, DIALOG_STYLE_LIST, string, "Salvar Posiзгo \nAlterar cor 1 \nAlterar cor 2 \nRespawnar Carro \nVender Carro", "OK", "Cancelar");
resultados = 0;
} else {
resultados = 1;
}
}
}
if(resultados == 1){
//SendClientMessage(playerid, Vermelho, "Vocк nгo estб no seu carro.");
}
return 1;
}

if(strcmp(cmd, "/modelocarro", true) == 0) {
    new preco;
    new tmp[256];
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)){
    SendClientMessage(playerid, Vermelho, "/modelocarro [novomodeloid]");
    return 1;
    }
    preco = strval(tmp);
    for(new c = 0; c < MAX_CARROS; c++)
    {
    format(string, sizeof(string), "carro%d.ini", c);
    if(dini_Exists(string)){
   // new Float:X, Float:Y, Float:Z;
    //GetPlayerPos(playerid, X, Y, Z);
    if(GetPlayerVehicleID(playerid) == dini_Int(string, "Id")){
    if(pAdmin[playerid] >= 5){
    new pname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pname, sizeof(pname));
    dini_IntSet(string, "Modelo", preco);
    } else {
    SendClientMessage(playerid, Vermelho, "(ERRO) Vocк nгo tem permissгo.");
    }
    } else {
    //SendClientMessage(playerid, Vermelho, "Vocк nгo estб em uma propriedade.");
    }
    }
    }
    return 1;
    }

    if(strcmp(cmd, "/respawnccar", true) == 0) {
    for(new c = 0; c < MAX_CARROS; c++)
    {
    format(string, sizeof(string), "carro%d.ini", c);
    if(dini_Exists(string)){
   // new Float:X, Float:Y, Float:Z;
    //GetPlayerPos(playerid, X, Y, Z);
    if(GetPlayerVehicleID(playerid) == dini_Int(string, "Id")){
    if(pAdmin[playerid] >= 5){
    new pname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pname, sizeof(pname));
    new carroid;
    DestroyVehicle(dini_Int(string, "Id"));
    carroid = AddStaticVehicle(dini_Int(string, "Modelo"), dini_Float(string, "CordX"), dini_Float(string, "CordY"), dini_Float(string, "CordZ"), dini_Float(string, "Angulo"), dini_Int(string, "Cor1"), dini_Int(string, "Cor2"));
    dini_IntSet(string, "Id", carroid);
    } else {
    SendClientMessage(playerid, Vermelho, "(ERRO) Vocк nгo tem permissгo.");
    }
    }
    }
    }
    return 1;
    }
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)