Portal SAMP
[Ajuda] dialog - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] dialog (/showthread.php?tid=1252)



dialog - Smith - 01/06/2021

galera minha dialog ta bugando quando clica em comprar ele abre dialog de login alguem pode me ajudar?
Código:
if(dialogid == DIALOG_LOJA) {
    if(response){
    switch(listitem) {

    case 0://MOCHILA GRANDE
    {
    if(GetPlayerMoney(playerid) < 3000) return SendClientMessage(playerid, 0xFF0000AA, "Voce nao possui dinheiro o suficiente para Compra!");
    pItens[playerid][MochilaGrande] ++;
    AddItem(playerid, 8, 1);
    GivePlayerMoney(playerid, -3000);
    SendClientMessage(playerid, 0x00FF00AA, "Parabens voce acaba de adquirir uma Mochila Oakley");
    SendClientMessage(playerid, 0x00FF00AA, "Foi descontado R$3.000,00 de sua Carteira");
    SalvarItens(playerid);

    }

    case 1:
    {
    if(GetPlayerMoney(playerid) < 1500) return SendClientMessage(playerid, 0xFF0000AA, "Voce nao possui dinheiro o suficiente para Compra!");
    pItens[playerid][MochilaMedia] ++;
    AddItem(playerid, 7, 1);
    GivePlayerMoney(playerid, -1500);
    SendClientMessage(playerid, 0x00FF00AA, "Parabens voce acaba de adquirir uma Mochila Oakley");
    SendClientMessage(playerid, 0x00FF00AA, "Foi descontado R$1.500,00 de sua Carteira");
    SalvarItens(playerid);
    }

    case 2:
    {
    if(GetPlayerMoney(playerid) < 500) return SendClientMessage(playerid, 0xFF0000AA, "Voce nao possui dinheiro o suficiente para Compra!");
    pItens[playerid][Mochila] ++;
    GivePlayerMoney(playerid, -500);
    SendClientMessage(playerid, 0x00FF00AA, "Parabens voce acaba de adquirir uma Mochila Oakley");
    SendClientMessage(playerid, 0x00FF00AA, "Foi descontado R$500,00 de sua Carteira");
    SalvarItens(playerid);
    }
    
    case 3:
    {
    if(GetPlayerMoney(playerid) < 600) return SendClientMessage(playerid, 0xFF0000AA, "Voce nao possui dinheiro o suficiente para Compra!");
    pItens[playerid][Capacete] ++;
    GivePlayerMoney(playerid, -600);
    AddItem(playerid, 1, 1);
    SendClientMessage(playerid, 0x00FF00AA, "Parabens voce acaba de adquirir um Capacete LS2");
    SendClientMessage(playerid, 0x00FF00AA, "Foi descontado R$600,00 de sua Carteira");
    SalvarItens(playerid);
    }
    
    case 4:
    {
    if(GetPlayerMoney(playerid) < 500) return SendClientMessage(playerid, 0xFF0000AA, "Voce nao possui dinheiro o suficiente para Compra!");
    pItens[playerid][KitMedico] ++;
    GivePlayerMoney(playerid, -500);
    AddItem(playerid, 18, 1);
    SendClientMessage(playerid, 0x00FF00AA, "Parabens voce acaba de adquirir um Kit primeiro socorro");
    SendClientMessage(playerid, 0x00FF00AA, "Foi descontado R$500,00 de sua Carteira");
    SalvarItens(playerid);
    }
    
    case 5:
    {
    if(GetPlayerMoney(playerid) < 70) return SendClientMessage(playerid, 0xFF0000AA, "Voce nao possui dinheiro o suficiente para Compra!");
    pItens[playerid][KitMedico] ++;
    GivePlayerMoney(playerid, -70);
    AddItem(playerid, 11, 1);
    SendClientMessage(playerid, 0x00FF00AA, "Parabens voce acaba de adquirir uma Faca Tramontina");
    SendClientMessage(playerid, 0x00FF00AA, "Foi descontado R$70,00 de sua Carteira");
    SalvarItens(playerid);
    }

    }
    }
    return true;
    }


CMD:comprar(playerid)
{
if(IsPlayerInRangeOfPoint(playerid, 1.0, -22.39999961853, -55.700000762939, 1003.5))

ShowPlayerDialog(playerid, DIALOG_LOJA, DIALOG_STYLE_LIST, "LOJA DO MINEIRO", "\nMochila grande \tR$3.000,00 \nMochila media \tR$1.500,00 \nMochila \tR$500,00 \nCapacete \tR$ 600,00 \nKit medico \tR$500,00 \nFaca \tR$70,00", "Comprar", "Sair")
}
return true;
}
obs: as defines dos dialogs não se repetem todas e um numero diferente intão não tem a possibilidade de ser defines em conflitos
Código:
#define DIALOG_LOJA         1
enum
{
DIALOG_REGISTRO,
DIALOG_LOGIN,
};



RE: dialog - DeviceBlack - 02/06/2021

O enumerador começa dando valor 0+
Portanto....
Código:
#define DIALOG_LOJA 1
enum
{
    DIALOG_REGISTRO, // Vale 0
    DIALOG_LOGIN // Vale 1
};
O valor de DIALOG_LOJA colide com DIALOG_LOGIN!


RE: dialog - xbruno1000x - 02/06/2021

DeviceBlack foi bastante preciso. É um conflito de dialog's.

Atualmente existe a include EasyDialog que possibilita a criação de dialogs sem precisar definir o número de cada uma. Recomendo bastante o uso dela, evita esse tipo de conflito.