[Ajuda] Inventбrio
#1

Eu estou criando um inventбrio, em dialog.
Mas, ocasionou alguns bugs e acabei excluindo tudo!

O que eu quero fazer, й um inventбrio para armas.
Eu fiz uma base, com espaзos separados.

Uma base do que sobrou:
pawn Код:
for (new space = 0; space <MAX_SPACE; space ++)
{
     format(djh, sizeof(djh), "%s\n", NomesEspacos[space]);
}
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_LIST, "Espaзos", djh, "Select", "Exit");
1 Mas como faзo na dialogresponse pra verificar em QUAL listitem ele clicou?

Eu fiz aqui, porйm, quando ele seleciona o ъltimo, aparecia como se selecionasse o primeiro.
Reply
#2

Dialog > https://sampwiki.blast.hk/wiki/ShowPlayerDialog


Dialog responde > https://sampwiki.blast.hk/wiki/OnDialogResponse
Reply
#3

Quote:
Originally Posted by Dieguinho
Посмотреть сообщение
Cara, vocк leu?
Reply
#4

Posso ter seguido a lуgica errada, mas й sempre bom tentar.

pawn Код:
if (!strcmp(NomeEspacos[listitem], "Alguma coisa")) {


}
Reply
#5

Quote:
Originally Posted by iCasTiel
Посмотреть сообщение
Posso ter seguido a lуgica errada, mas й sempre bom tentar.

pawn Код:
if (!strcmp(NomeEspacos[listitem], "Alguma coisa")) {


}
Vou testar.

I outra, tem como somente REMOVER A ARMA na mгo dele?
Reply
#6

Se nгo der certo tente assim

pawn Код:
#define 1777

#define STRD_LISTA "{F5F50C}funcao1\n{F5180C}funcao2"

ShowPlayerDialog(playerid, 1777, DIALOG_STYLE_LIST, ".:: - Nome - ::.", STRD_LISTA , "OK", "SAIR");

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

if(dialogid == 1777 && response)
    {
        if(listitem == 0)
        {
                    // funзгo

                }
        if(listitem == 1)
        {
                    // funзгo 2
                }
           }
      }
Reply
#7

Quote:
Originally Posted by Dieguinho
Посмотреть сообщение
Se nгo der certo tente assim

pawn Код:
#define 1777

#define STRD_LISTA "{F5F50C}funcao1\n{F5180C}funcao2"

ShowPlayerDialog(playerid, 1777, DIALOG_STYLE_LIST, ".:: - Nome - ::.", STRD_LISTA , "OK", "SAIR");

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

if(dialogid == 1777 && response)
    {
        if(listitem == 0)
        {
                    // funзгo

                }
        if(listitem == 1)
        {
                    // funзгo 2
                }
           }
      }
Legal, quer mais posts?


@Topic

Existe alguma funзгo, pra resetar a arma que estiver na mгo dele?
Reply
#8

Quote:
Originally Posted by xPaulistaa
Посмотреть сообщение
Eu estou criando um inventбrio, em dialog.
Mas, ocasionou alguns bugs e acabei excluindo tudo!

O que eu quero fazer, й um inventбrio para armas.
Eu fiz uma base, com espaзos separados.

Uma base do que sobrou:
pawn Код:
for (new space = 0; space <MAX_SPACE; space ++)
{
     format(djh, sizeof(djh), "%s\n", NomesEspacos[space]);
}
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_LIST, "Espaзos", djh, "Select", "Exit");
1 Mas como faзo na dialogresponse pra verificar em QUAL listitem ele clicou?

Eu fiz aqui, porйm, quando ele seleciona o ъltimo, aparecia como se selecionasse o primeiro.
Talvez tenha passado despercebido por vocк mas faltou um strcat ai.


Bom fiz um pequeno exemplo:

pawn Код:
new list[][] = {

    {"1"},
    {"2"},
    {"3"},
    {"4"},
    {"5"}
};

CMD:show(playerid) {

    static i, str[5], strF[20];
   
    strF[0] = EOS;
   
    for ( i = 0; i < sizeof(list); ++i) {
   
        format (str, 5, "%s\n", list[i]);
        strcat(strF, str);
   
    }
    ShowPlayerDialog(playerid, 1, DIALOG_STYLE_LIST, "Oi", strF, "Selecionar", "");
    return 1;
}

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

    if ( dialogid == 1 ) {
   
        SendClientMessage(playerid, -1, list[listitem]);
        return 1;
    }

    return 1;
}

https://sampwiki.blast.hk/wiki/ResetPlayerWeaponsEx

Quote:
Originally Posted by Dieguinho
Посмотреть сообщение
Se nгo der certo tente assim

pawn Код:
#define 1777

#define STRD_LISTA "{F5F50C}funcao1\n{F5180C}funcao2"

ShowPlayerDialog(playerid, 1777, DIALOG_STYLE_LIST, ".:: - Nome - ::.", STRD_LISTA , "OK", "SAIR");

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

if(dialogid == 1777 && response)
    {
        if(listitem == 0)
        {
                    // funзгo

                }
        if(listitem == 1)
        {
                    // funзгo 2
                }
           }
      }
[ame]http://www.youtube.com/watch?v=0pJH-q05RgA[/ame]
Reply
#9

nгo funcionou

eu fiz um teste
pawn Код:
printf("list %d", list[listitem]);
Acaba aparecendo: list 83
Reply
#10

Quote:
Originally Posted by xPaulistaa
Посмотреть сообщение
nгo funcionou

eu fiz um teste
pawn Код:
printf("list %d", list[listitem]);
Acaba aparecendo: list 83
Isto porque os dados contidos em list sгo do tipo string!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)