[Ajuda] Carros comprados bugando
#1

Oi gente, meu servidor estб com um problema muito chato. Os carros que sгo comprados estгo bugando.
Tipo, o player compra o carro e tal, й dele. Mas quando ele entra novamente no carro, pede para ele comprar de novo.
Aн ele compra, buga de novo, e de novo, e de novo.

Alguйm sabe o que pode estar causando este bug? Por favor me ajudem, abзs.
Reply
#2

sem cуdigo й difнcil !
Reply
#3

Justamente. Em que cуdigo vocк acha que estб o erro? Se quiser posto o "/comprarcarro".
Reply
#4

Sei qual esse bug , ele tem o comando /liberarcarro ? se tiver , faзa da seguinte maneira , depois de ter feito o carro , escreva /liberarcarro [ID] se nгo for eu nao sei =/
Reply
#5

O erro continua. O player compra o carro, e quando sai dele, o carro jб estб a venda novamente. O player jб nгo й mais o dono. O dono dos veнculos nгo salvam.

Alguns cуdigos relacionados:
PHP код:
new string[256];
format(stringsizeof(string), "carro%d.ini"proximocarro);
new 
carroid;
carroid AddStaticVehicle(mxyzrcd);
dini_IntSet(string"Id"carroid);
proximocarro++;

PHP код:
new string[256];
for(new 
carro 5carro MAX_CARROScarro++)
{
format(stringsizeof(string), "carro%d.ini"carro);
if(
dini_Exists(string))
{
new 
carroid;
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);
proximocarro++;
}

PHP код:
if(strcmp(cmd"/liberarcarro"true) == 0)
    {
    new 
preco;
    new 
tmp[256];
    
tmp strtok(cmdtextidx);
    if(!
strlen(tmp))
    {
    
SendClientMessage(playeridVermelho"/liberarcarro [carroID]");
    return 
1;
    }
    
preco strval(tmp);
    
format(stringsizeof(string), "carro%d.ini"preco);
    if(
dini_Exists(string))
    {
    if(
pAdmin[playerid] >= 5)
    {
    new 
pname[MAX_PLAYER_NAME];
    
GetPlayerName(playeridpnamesizeof(pname));
    
dini_IntSet(file2"Carro"0);
    
dini_IntSet(string"TDono"0);
    
dini_Set(string"Dono""Nenhum");
    
format(stringsizeof(string), "[NH] O administrador %s liberou o veiculo %d"pname,preco);
    
SendClientMessageToAll(tcadmstring);
    
SendClientMessage(playeridtcadm"(ATКNЗГO) O player que era dono deste carro, ficarб bugado! Sem poder comprar outro carro.");
    
SendClientMessage(playeridtcadm"(ATКNЗГO) Para retirar este erro, quando o player logar digite /removercarro [ID]");
    return 
1;
    }
    else
    {
    
SendClientMessage(playeridVermelho"[ERRO] Vocк nгo tem permissгo.");
    }
    }
    return 
1;
    } 
PHP код:
if(strcmp(cmd"/carro"true) == 0)
{
new 
preco;
new 
tmp[256];
tmp strtok(cmdtextidx);
if(!
strlen(tmp))
{
SendClientMessage(playeridVermelho"/carro [carroID]");
return 
1;
}
preco strval(tmp);
new 
pname[MAX_PLAYER_NAME];
GetPlayerName(playeridpnamesizeof(pname));
format(stringsizeof(string), "carro%d.ini"preco);
if(
dini_Exists(string))
{
format(STRXsizeof(STRX), "Id[%d] Dono[%s] Preзo[R$%d] Modelo[%s]"precodini_Get(string"Dono"), dini_Int(string"Preco"), PlayerVehicle[(GetVehicleModel(dini_Int(string"Int")))-400]);
SendClientMessage(playeridAmareloSTRX);
}
return 
1;

PHP код:
if(strcmp(cmd"/ccar"true) == 0)
{
new 
pname[MAX_PLAYER_NAME];
GetPlayerName(playeridpnamesizeof(pname));
if(
IsPlayerAdmin(playerid)|| pAdmin[playerid] == 5)
{
new 
tmp[256];
new 
caridFloat:angprecocor1cor2;
tmp strtok(cmdtextidx);
if(!
strlen(tmp)){
SendClientMessage(playeridCinza"[ERRO] Veiculo invбlido.");
return 
1;
}
carid strval(tmp);
tmp strtok(cmdtextidx);
if(!
strlen(tmp))
{
SendClientMessage(playeridCinza"[ERRO]: /ccar [id] [preзo] [cor1] [cor2]");
return 
1;
}
preco strval(tmp);
tmp strtok(cmdtextidx);
if(!
strlen(tmp))
{
SendClientMessage(playeridCinza"[ERRO]: /ccar [id] [preзo] [cor1] [cor2]");
return 
1;
}
cor1 strval(tmp);
tmp strtok(cmdtextidx);
if(!
strlen(tmp))
{
SendClientMessage(playeridCinza"[ERRO]: /ccar [id] [preзo] [cor1] [cor2]");
return 
1;
}
cor2 strval(tmp);
if(
carid >= 400 && carid <= 611)
{
if(
IsPlayerInAnyVehicle(playerid))
{
new 
Float:XFloat:YFloat:Z;
GetPlayerPos(playeridXYZ);
GetVehicleZAngle(GetPlayerVehicleID(playerid),ang);
format(stringsizeof(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(stringsizeof(string), "[NH] Veiculo criado com sucesso!");
SendClientMessage(playeridAzulstring);
return 
1;
}
else
{
SendClientMessage(playeridVermelho"[ERRO] Vocк nгo estб em um veiculo!");
}
}
else
{
SendClientMessage(playeridCinza"[ERRO] Veiculo invбlido.");
return 
1;
}
}
else
{
SendClientMessage(playeridCinza"[ERRO] Vocк nгo tem permissгo para isso");
return 
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"[ERRO] Vocк jб tem um veiculo e nгo pode comprar outro.");
            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"5);
                
dini_Set(string"Dono"aname);
                
SendClientMessage(playerid, -1"[NH] Veiculo comprado com sucesso!");
                
SendClientMessage(playerid, -1"[NH] Para ver as funзхes de seu 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;
            }
        }
    }

PHP код:
for(new 0MAX_CARROSc++)
{
format(stringsizeof(string), "carro%d.ini"c);
if(
strcmp(dini_Get(string"Dono"), anamefalse) == 0)
{
dini_Set(string"Dono"inputtext);

PHP код:
if(newstate == PLAYER_STATE_DRIVER)
{
new 
string[256];
new 
pname[MAX_PLAYER_NAME];
GetPlayerName(playeridpnameMAX_PLAYER_NAME);
for(new 
carro 0carro MAX_CARROScarro++)
{
new 
vid;
vid GetPlayerVehicleID(playerid);
format(stringsizeof(string), "carro%d.ini"carro);
if(
dini_Exists(string)){
if(
vid == dini_Int(string"Id")){
if(
dini_Int(string"TDono") == 1){
if(
strcmp(dini_Get(string"Dono"), pnametrue) == 0){
SendClientMessage(playeridAzul"[NH] Este carro й seu, seja bem vindo !");
} else {
format(stringsizeof(string), "[NH] Este carro nгo й seu, й de: %s"dini_Get(string"Dono"));
SendClientMessage(playeridAzulstring);
for(new 
i=0i<MAX_PLAYERSi++){
if(
IsPlayerConnected(i)){
new 
nome[MAX_PLAYER_NAME];
GetPlayerName(inomesizeof(nome));
if(
strcmp(dini_Get(string"Dono"), nometrue) == && GetPlayerVehicleID(playerid) == dini_Int(string"Id")){
format(stringsizeof(string), "[NH] ALARME: %s(Id:%d) tentou roubar seu carro."pnameplayerid);
SendClientMessage(itcadmstring);
}
}
}
RemovePlayerFromVehicle(playerid);
}
} else {
format(stringsizeof(string), "[NH] Este carro estб a venda ! Preзo: %d reais, use /comprarcarro"dini_Int(string"Preco"));
SendClientMessage(playeridAmarelostring);
SendClientMessage(playeridVermelho"Para sair do carro aperte F.");
incar[playerid] = 1;
TogglePlayerControllable(playerid0);
}
}
}
}
new 
aname[MAX_PLAYER_NAME];
GetPlayerName(playeridanameMAX_PLAYER_NAME);
format(filesizeof(file), PASTA_CONTASaname);
new 
modelo GetVehicleModel(GetPlayerVehicleID(playerid));
new 
vid GetPlayerVehicleID(playerid); 
Reply
#6

Vocк libera os carros depois de setar ? use /liberarcarro [ID] | onde ta [ID] coloca o ID do carro
Reply
#7

Sim, mas o erro continua.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)