[Ajuda] Sistema de compras de carro (Bugado)
#1

Bom vou ser breve, tou com um bug no code, nгo consigo arrumar de geito nenhum

IMGS




CODE:
pawn Код:
if(newstate == 2)
    {
        id = LoadedInfo[Vehicles];
        new playername[MAX_PLAYER_NAME];
        new Query[255];
        GetPlayerName(playerid,playername,sizeof(playername));
        VehicleInfo[id][Price] = cache_get_field_content_int(0, "price");
        new vehicleid = GetPlayerVehicleID(playerid);
        format(Query, sizeof(Query), "SELECT * FROM vehicles WHERE model='%d' ORDER BY id DESC",id); // Formats the query for "mysql_query"
        mysql_query(mysql,Query); // Querys the "Query" Variable.
        mysql_store_result(); // Stores the result from Query
        if(strmatch(VehicleInfo[vehicleid][Owner], GetName(playerid)))
        {
            new String[256];
            format(String,sizeof(String), "Bem vindo novamente %s ao seu carro !", VehicleInfo[vehicleid][Owner]);
            SendClientMessage(playerid,-1,String);
        }
        else
        {
            sscanf(Query, "p<|>e<is[25]iiffffii>", VehicleInfo[id]);
            format(Query, sizeof(Query), "SELECT * FROM `vehicles`"); // Formats the query for "mysql_query"
            mysql_query(mysql,Query); // Querys the "Query" Variable.
            mysql_store_result(); // Stores the result from Query
            while(mysql_fetch_row_format(Query,"|"))
            {
                sscanf(Query, "p<|>e<is[25]iiffffii>", VehicleInfo[vehicleid]); // Pretty neat ehh? [ ID, OWNER, MODEL, PRICE, POS X, POS Y, POS Z, POS A ]
            }
            new Titulo[256],Info[256];
            format(Titulo, sizeof(Titulo), "Sistema de compra de Veiculos");
            format(Info, sizeof(Info), "Olб %s vocк quer comprar esse Veiculo ?\n\n\nPreзo: %d\nDono: %s\nModelo: %d",playername,VehicleInfo[vehicleid][Price],VehicleInfo[vehicleid][Owner],VehicleInfo[vehicleid][Model]);
            ShowPlayerDialog(playerid, DialogShopCar, DIALOG_STYLE_MSGBOX,Titulo, Info, "Sim", "Nгo");
        }
    }
Code de comprar:
pawn Код:
switch(dialogid)
    {
        case DialogShopCar:
        {
            id = LoadedInfo[Vehicles];
            if(!response) return RemovePlayerFromVehicle(playerid);
            {
                VehiclePrice = cache_get_field_content_int(0, "price");
                if(GetPlayerMoney(playerid) >= VehiclePrice)
                {
                    new query[1024];
                    GetPlayerName(playerid, Nome,sizeof(Nome));
                    format(query,sizeof(query),"UPDATE `vehicles` SET `owner`='%s',`purchased`='true' WHERE `price`='%d'",Nome,VehiclePrice);//formatamos a string com o que devemos salvar
                    mysql_function_query(mysql,query, false, "", "");
                    GivePlayerMoney(playerid,-VehiclePrice);
                }
                else
                {
                    new Titulo[256],Info[256];
                    format(Titulo,sizeof(Titulo), "Vehicle System");
                    format(Info, sizeof(Info), "Desculpe %s vocк nгo tem\n%d para comprar o veiculo",Nome,VehiclePrice);
                    ShowPlayerDialog(playerid,DialogShopError, DIALOG_STYLE_MSGBOX,Titulo, Info, "Ok", "");
                    RemovePlayerFromVehicle(playerid);
                }
            }
        }
Reply
#2

Eu acho que ta faltando definir se apertar no sim, a compra й feita e no nгo nгo й feita, esse cуdigo que vc postou й em:

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])

??

se nгo for vc deve criar as definiзхes da dialog lб no OnDialogResponse, o que vai acontecer e talz.
ex:

PHP код:
if(dialogid == DialogShopCar// Id da dialog, coloquei o nome DialogShopCar veja se й essa a id da dialog
    
{
      if( !
response ) return SendClientMessageplayerid0xFFF000AA"Vocк cancelou" );
      if( 
listitem == ) return SendClientMessageplayerid0xFFF000AA"[INFO]Vocк acaba de comprar um veнculo" ); //mensagem ao clocar na opзгo 1. ou seja na opзгo Sim.
GivePlayerMoney(playerid, -50000); // vai tirar R$50000 do player
//bom, eu nгo sei como й que vai definir um player dono do veнculo porque eu nгo sei o sistema do teu gm como й, mas coloque a funзгo de tornar o dono do carro aqui.
      
else if( listitem == ) return SendClientMessageplayerid0xFFF000AA" Vocк nгo tem $50,000 !" ); //aqui й a mensagem que aparecerб se o player nгo tiver R$50000 
      
else if( listitem == ) return SendClientMessageplayerid0xFFF000AA"Vocк cancelou a compra" ); //o segundo botгo, acho eu que seja o botгo "nгo", apertou apareceu vocк cancelou a compra
   
}
   return 
0;

Reply
#3

eu fiz sim o codico de comprar
Reply
#4

Quote:
Originally Posted by Jack3d
Посмотреть сообщение
Eu acho que ta faltando definir se apertar no sim, a compra й feita e no nгo nгo й feita, esse cуdigo que vc postou й em:

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])

??

se nгo for vc deve criar as definiзхes da dialog lб no OnDialogResponse, o que vai acontecer e talz.
ex:

PHP код:
if(dialogid == DialogShopCar// Id da dialog, coloquei o nome DialogShopCar veja se й essa a id da dialog
    
{
      if( !
response ) return SendClientMessageplayerid0xFFF000AA"Vocк cancelou" );
      if( 
listitem == ) return SendClientMessageplayerid0xFFF000AA"[INFO]Vocк acaba de comprar um veнculo" ); //mensagem ao clocar na opзгo 1. ou seja na opзгo Sim.
GivePlayerMoney(playerid, -50000); // vai tirar R$50000 do player
//bom, eu nгo sei como й que vai definir um player dono do veнculo porque eu nгo sei o sistema do teu gm como й, mas coloque a funзгo de tornar o dono do carro aqui.
      
else if( listitem == ) return SendClientMessageplayerid0xFFF000AA" Vocк nгo tem $50,000 !" ); //aqui й a mensagem que aparecerб se o player nгo tiver R$50000 
      
else if( listitem == ) return SendClientMessageplayerid0xFFF000AA"Vocк cancelou a compra" ); //o segundo botгo, acho eu que seja o botгo "nгo", apertou apareceu vocк cancelou a compra
   
}
   return 
0;

acho que vocк nгo etendeu os ids dos veiculos , quando tem dois veiculos iguais ele buga .
vamo supor que eu compro a nrg , ai eu vejo no phpmyadmin ai mostra que eu comprei o infernus entendeu ?
Reply
#5

Ahh mano, faзo a mнnima idйia, nunca mexi com sistema de veнculos, mas jб ouvi falar de um code que um cara postou ,vou dar uma pesquisada pra ver se acho o tуpico, que ajuda vc a colocar cada veнculo com um id especнfico tipo, separar os veнculos por ordem.

Infernus id 12
Infernus id 13
Sanchez id 14
e assim por diante...

aн cada veнculo do servidor ganha um id especнfico, (nгo o id do modelo). Se eu tiver 10 infernus no servidor, cada um vai ter um id diferente e etc... Assim eu acho que nгo bugarб.
Reply
#6

Quote:
Originally Posted by Jack3d
Посмотреть сообщение
Ahh mano, faзo a mнnima idйia, nunca mexi com sistema de veнculos, mas jб ouvi falar de um code que um cara postou ,vou dar uma pesquisada pra ver se acho o tуpico, que ajuda vc a colocar cada veнculo com um id especнfico tipo, separar os veнculos por ordem.

Infernus id 12
Infernus id 13
Sanchez id 14
e assim por diante...

aн cada veнculo do servidor ganha um id especнfico, (nгo o id do modelo). Se eu tiver 10 infernus no servidor, cada um vai ter um id diferente e etc... Assim eu acho que nгo bugarб
Oks
Reply
#7

Quote:
Originally Posted by Alexbav
Посмотреть сообщение
Oks
Ninguem para me ajudar ?

@edit jб resolvi
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)