SA-MP Forums

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

Reply
 
Thread Tools Display Modes
Old 13/08/2019, 09:02 PM   #1
DuduPlay
Little Clucker
 
Join Date: Nov 2016
Location: Brazil
Posts: 7
Reputation: 0
Default Loop no dialog

Então galera, queria pedir ajuda de vcs em um code que estou fazendo para listar os meus veiculos numa dialog

O problema que estou tendo é na hora que seleciono o veículo, queria saber como faço para armazenar qual id do veiculo que eu cliquei no dialog, pois os veiculos que mostra são aleatórios, se eu tiver 1 veiculo, mostrara apenas um veículo, se eu tiver 2 ai mostra 2.

Code:
CMD:meusveiculos(playerid)
{
    new yDialog[150], rdialog[150];
    for(new i = 1; i != MAX_VEICULOS_PLAYERS; ++ i)
    {
        format(Query, sizeof(Query), "SELECT * FROM `conce` WHERE `ID`=%d", i);
        mysql_query(IDConexao, Query, true);

        if(cache_num_rows() > 0)
        {
            cache_get_value_int(0, "Modelo", ConceInfo[i][CarModel]);
            cache_get_value(0, "Dono", ConceInfo[i][CarDono], 24);
            if(strcmp(ConceInfo[i][CarDono], PlayerInfo[playerid][pNome], true) == 0)
            {
                format(yDialog, sizeof(yDialog), "%s\n", vNome[ConceInfo[i][CarModel]-400]);
                strcat(rdialog, yDialog);
            }
        }
    }
    ShowPlayerDialog(playerid, DIALOG_MENUVEICULO, DIALOG_STYLE_LIST, "{FF0000}Meus Veículos", rdialog, "Selecionar", "Cancelar");
    return 1;
}
Code:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    switch(dialogid)
    {
// ------------------ Menu veículo ------------------
        case DIALOG_MENUVEICULO:
        {
            if(!response)
                return true;

            for(new i = 1; i < MAX_VEICULOS_PLAYERS; ++ i) 
            {
                if(listitem == i - 1)
                {
                    ShowPlayerDialog(playerid, DIALOG_MENUVEICULO1, DIALOG_STYLE_LIST, "{FF0000}Menu veículo", "Conectar\nDesconectar\nEstacionar\nTravar\nDestravar\nCor", "Selecionar", "Cancelar");
                }
            }
        }
        case DIALOG_MENUVEICULO1:
        {
            if(!response)
                return true;

            for(new i = 1; i < MAX_VEICULOS_PLAYERS; ++ i) 
            {
                if(listitem == i - 1) // Conecta o veículo 1
                {
                    format(Query, sizeof(Query), "SELECT * FROM `conce` WHERE `ID`=%d", i);
                    mysql_query(IDConexao, Query, true);

                    if(ConceInfo[i][CarConected] == 1)
                        return SendClientMessage(playerid, COR_ERRO, "| FALHA | Seu veículo já está conectado!");

                    cache_get_value(0, "Dono", ConceInfo[i][CarDono], 24);
                    cache_get_value_int(0, "Modelo", ConceInfo[i][CarModel]);
                    cache_get_value_int(0, "Cor1", ConceInfo[i][CarCor1]);
                    cache_get_value_int(0, "Cor2", ConceInfo[i][CarCor2]);
                    cache_get_value(0, "Placa", ConceInfo[i][CarPlaca], 80);
                    cache_get_value_float(0, "PosX", ConceInfo[i][CarPosX]);
                    cache_get_value_float(0, "PosY", ConceInfo[i][CarPosY]);
                    cache_get_value_float(0, "PosZ", ConceInfo[i][CarPosZ]);
                    cache_get_value_float(0, "Angulo", ConceInfo[i][CarAng]);

                    Set[i] = CreateVehicle(ConceInfo[i][CarModel], ConceInfo[i][CarPosX], ConceInfo[i][CarPosY], ConceInfo[i][CarPosZ], ConceInfo[i][CarAng], ConceInfo[i][CarCor1], ConceInfo[i][CarCor2], 900);
                    SetVehicleNumberPlate(Set[i], ConceInfo[i][CarPlaca]);
                    ConceInfo[i][CarConected] = 1;

                    format(gstring, sizeof(gstring), "| INFO | Seu veículo %s foi conectado com sucesso!", vNome[ConceInfo[i][CarModel]-400]);
                    SendClientMessage(playerid, COR_AMARELO, gstring);
                }
          }
     }
}
na hora de listar os veículos, funciona perfeitamente, mais quando clico em conectar, ele sempre conecta o mesmo veículo, e não os outros que seleciono, então queria poder getar o valor na hora que clico no nome do veiculo e quando clicar em conectar invés de usar o loop usaria o valor getado na hora que clicou no veiculo. tipo eu tenho 3 veiculos mostrado na dialog

Infernus
Bullet
Nrg

Dai eu cliquei na nrg, então ele iria armazenar numa variavel qual o id da nrg no banco de dados, e quando eu escolhesse a opção conectar ao inves de usar o
Code:
for(new i = 1; i < MAX_VEICULOS_PLAYERS; ++ i)
format(Query, sizeof(Query), "SELECT * FROM `conce` WHERE `ID`=%d", i);
mysql_query(IDConexao, Query, true);
iria usar assim

Code:
format(Query, sizeof(Query), "SELECT * FROM `conce` WHERE `ID`=%d", idselecionado);
mysql_query(IDConexao, Query, true);
Alguém sabe se é possível, e se sim, por favor, me deem uma luz de como posso fazer
__________________
DuduPlay 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
I Need Help With a Dialog loop :) ImVictor Scripting Help 1 16/10/2016 03:29 AM
Dialog loop iBots Scripting Help 2 18/04/2015 12:41 AM
Loop on dialog falcko Scripting Help 0 06/06/2013 11:46 AM
Dialog with loop. vent Scripting Help 2 13/07/2012 04:33 PM
Loop in dialog :L Ricop522 Help Archive 4 05/06/2011 10:09 PM


All times are GMT. The time now is 01:53 AM.


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