[Ajuda] Menu de click
#1

como fais um dialog que nem o menu do gps ?
Reply
#2

Nгo entendi direito oque vocк quer, mais fiz um exemplo.
pawn Code:
if(!strcmp(cmdtext,"/menu",true))
{
    ShowPlayerDialog(playerid, 1, DIALOG_STYLE_LIST,"Exemplo de menu","Aqui\r\nFica\r\nAs\r\nOpзхes","Escolher","Cancelar");
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == 1) // o mesmo id do que vocк usou acima...
    {
        if(response) // se o botгo for o '1' ou o botгo da esquerda...
        {
            if(listitem == 0) // a primeira opзгo que no caso й 'Aqui'
            {
                //funзгo...
                return 1;
            }
            if(listitem == 1) // a segunda opзгo que no caso й 'Fica'
            {
                //funзгo
                return 1;
            }
            // e por ai em diante '-'
        }
        return 1;
    }
    return 1;
}
Reply
#3

Quote:

if(dialogid == 9515) // o mesmo id do que vocк usou acima...
{
if(response) // se o botгo for o '1' ou o botгo da esquerda...
{
if(listitem == 0) // a primeira opзгo que no caso й 'Aqui'
{
SendClientMessage(playerid, COLOR_YELLOW, "Esta conta jб existe em nosso sistema de registros, por favor escolha outro.");
return 1;
}
if(listitem == 1) // a segunda opзгo que no caso й 'Fica'
{
SendClientMessage(playerid, COLOR_YELLOW, "Esta conta jб existe em nosso sistema de registros, por favor escolha outro.");
return 1;
}
if(listitem == 2)
{
SendClientMessage(playerid, COLOR_YELLOW, "Esta conta jб existe em nosso sistema de registros, por favor escolha outro.");
return 1;
{
if(listitem == 3)
{
SendClientMessage(playerid, COLOR_YELLOW, "Esta conta jб existe em nosso sistema de registros, por favor escolha outro.");
return 1;
}
return 1;
}
return 1;
}
return 1;
}

otque ta errado que da 26 erros ?
Reply
#4

pawn Code:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == 9515) // o mesmo id do que vocк usou acima...
    {
        if(response) // se o botгo for o '1' ou o botгo da esquerda...
        {
            if(listitem == 0) // a primeira opзгo que no caso й 'Aqui'
            {
                SendClientMessage(playerid, COLOR_YELLOW, "Esta conta jб existe em nosso sistema de registros, por favor escolha outro.");
            }
            if(listitem == 1) // a segunda opзгo que no caso й 'Fica'
            {
                SendClientMessage(playerid, COLOR_YELLOW, "Esta conta jб existe em nosso sistema de registros, por favor escolha outro.");
            }
            if(listitem == 2)
            {
                SendClientMessage(playerid, COLOR_YELLOW, "Esta conta jб existe em nosso sistema de registros, por favor escolha outro.");
            }
            if(listitem == 3)
            {
                SendClientMessage(playerid, COLOR_YELLOW, "Esta conta jб existe em nosso sistema de registros, por favor escolha outro.");
            }
        }
    }
    return 1;
}
Reply
#5

Acho que vocк usou uma chave a mais... Precisa posicionar desse jeito dentro do public OnDialogResponse
pawn Code:
if(dialogid == 9515) // o mesmo id do que vocк usou acima...
{
    if(response) // se o botгo for o '1' ou o botгo da esquerda...
    {
        if(listitem == 0) // a primeira opзгo que no caso й 'Aqui'
        {
            SendClientMessage(playerid, COLOR_YELLOW, "Esta conta jб existe em nosso sistema de registros, por favor escolha outro.");
            return 1;
        }
        if(listitem == 1) // a segunda opзгo que no caso й 'Fica'
        {
            SendClientMessage(playerid, COLOR_YELLOW, "Esta conta jб existe em nosso sistema de registros, por favor escolha outro.");
            return 1;
        }
        if(listitem == 2)
        {
            SendClientMessage(playerid, COLOR_YELLOW, "Esta conta jб existe em nosso sistema de registros, por favor escolha outro.");
            return 1;
        {
        if(listitem == 3)
        {
            SendClientMessage(playerid, COLOR_YELLOW, "Esta conta jб existe em nosso sistema de registros, por favor escolha outro.");
            return 1;
        }
    }
    return 1;
}
Reply
#6

Luigi darб erro novamente.
pawn Code:
if(listitem == 2)
        {
            SendClientMessage(playerid, COLOR_YELLOW, "Esta conta jб existe em nosso sistema de registros, por favor escolha outro.");
            return 1;
        {
vocк apenas estб abrindo. falta um }
pawn Code:
if(listitem == 2)
        {
            SendClientMessage(playerid, COLOR_YELLOW, "Esta conta jб existe em nosso sistema de registros, por favor escolha outro.");
            return 1;
        }
Reply
#7

Quote:
Originally Posted by [O.z]Caroline
View Post
Luigi darб erro novamente.
pawn Code:
if(listitem == 2)
        {
            SendClientMessage(playerid, COLOR_YELLOW, "Esta conta jб existe em nosso sistema de registros, por favor escolha outro.");
            return 1;
        {
vocк apenas estб abrindo. falta um }
pawn Code:
if(listitem == 2)
        {
            SendClientMessage(playerid, COLOR_YELLOW, "Esta conta jб existe em nosso sistema de registros, por favor escolha outro.");
            return 1;
        }
Ah, obrigado, nгo havia visto isso. (:
Reply
#8

a como fasso pra tipow

ali na funзгo

em veis deu por sendo cliente menssagem

queria por que abrir uma telinha so pra ele ver a menssagem e clikar ok teria como ?
Reply
#9

a mesma coisa do comando...
pawn Code:
ShowPlayerDialog(........
Reply
#10

ShowPlayerDialog(playerid, COLOR_GREY, "Vocк entrou na fila de atendimento. Aguarde um Admin atender.");

e deu erro
Reply
#11

nгo amigo, vocк precisa usar os parametros do ShowPlayerDialog
pawn Code:
ShowPlayerDialog(playerid, DIALOGID, STYLE, "Titulo", "Texto", "Botгo 1", "botгo 2");
Exemplo:
pawn Code:
ShowPlayerDialog(playerd, 124, DIALOG_STYLE_MSGBOX,"Testandoo.","Testo bбsico aqui...","Botao1","Botao2");
https://sampwiki.blast.hk/wiki/How_to_Create_a_Dialog
Reply
#12

como ponho uma funзгo ao botгo 1 e 2 ?

tipow 1 procegue o comando
e o outro fecha a janelinha
Reply
#13

Explicaзгo como usar a CallBack...
pawn Code:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{ //playerid = vocк, dialogid = ID do dialogo quando criado, response = resposta de botao 1 ou 2
    // listitem = Item de lista caso seu dialog seja estilo LISTA
    //inputtext = Item de um texto digitado na caixa de dialog caso seja estilo input
    if(dialogid == X) // X й = ao numero do dialog usado para criar '-'
    {
        if(response == 0) // 0 = botгo 2 ou botгo direito..
        {
            // aqui vocк aplica as funзхes que quer que ele execute quando clicado...
            return 1;
        }
        if(response == 1)// 1 = botгo 1 ou botгo esquerdo
        {
            //aqui vocк aplica as funзхes que quer que ele execute...
            return 1;
        }
        return 1;
    }
    //CASO SEJA UM DIALOG DE LISTA
    if(dialogid == X) // X й = ao numero do dialog usado por vocк '-'
    {
        if(response == 1) // resposta do primeiro botгo (esquerdo)
        {
            if(listitem == 0) // primeiro item da lista...
            {
                //funзхes do primeiro item da lista...
                return 1;
            }
            if(listitem == 1) // a mesma mer.reca do primeiro... sendo que й o segundo item
            {
                //funзхes....
                return 1;
            }//e por ai emdiante de acordo com quantos itens vocк usar,
        }
        return 1;
    }
    //CASO SEJA UM DIALOG DE TEXTO OU INPUT
    if(dialogid == X) // X й = ao numero do dialog usado por vocк '-'
    {
        if(response == 1) // response do primeiro botгo (esquerdo)
        {
            // Aqui farб as funзхes normais por EXEMPLO
            //vou salvar oque vocк digitou em uma string...
            new wiiStr[128]; //string
            strcat(wiiStr,inputtext,sizeof( wiiStr ));
            return 1;
        }
        return 1;
    }
    return 1;
}
Explicaзгo como aplicar em comandos updates e etc.
pawn Code:
//Exemplo de aplicaзгo em comando.
if(!strcmp(cmd,"/comando",true))
{
    //ShowPlayerDialog(playerid, 1, DIALOG_STYLE_MSGBOX, "Titulo", "Texto...", "Ok", "Cancelar");
    //ShowPlayerDialog(playerid, 1, DIALOG_STYLE_LIST,"Titulo","Item 1\r\nItem 2\r\nItem 3\r\nE Por ai em diante..","Selecionar","Cancelar");
    //ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT,"Titulo","Texto para te convencer a digitar algo kkk","Confirmar","Cancelar");
    return 1;
}//Observaзгo: ids de dialogs nгo podem ser o mesmos quando criados... Apenas quando forem ser aplicados na CallBack...

//Exemplo em tecla
if(newkeys == 1) // 1 = CTRL
{
    //ShowPlayerDialog(playerid, 1, DIALOG_STYLE_MSGBOX, "Titulo", "Texto...", "Ok", "Cancelar");
    //ShowPlayerDialog(playerid, 1, DIALOG_STYLE_LIST,"Titulo","Item 1\r\nItem 2\r\nItem 3\r\nE Por ai em diante..","Selecionar","Cancelar");
    //ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT,"Titulo","Texto para te convencer a digitar algo kkk","Confirmar","Cancelar");
    return 1;
}//Observaзгo: ids de dialogs nгo podem ser o mesmos quando criados... Apenas quando forem ser aplicados na CallBack...
Quando vocк cria um dialog 'ShowPlayerDialog' o mesmo id do dialog criado. Tem que ser usado na callback como 'if(dialogid == X)' para poder identificar o tal dialog, e executar a tal funзгo escrita por vocк.
Reply
#14

a entendi caramba cara vc e bom mesmo....

tentei dar meu jeito aqui mas me duvida tudo
teria como eu criar um negosso desse

tipo o comando /relato

mais em veis de ser /relato + texto

a pessoal digira /relato ai abre uma caixinha pra ela enviar o comando de testo pro adm teria como ?
Reply
#15

Olб novamente, nгo tenho certeza mais tente:
pawn Code:
//OnPlayerCommandText
if(!strcmp(cmd,"/relato",true))
{
    ShowPlayerDialog(playerid, 51512, DIALOG_STYLE_INPUT,"Relato","Informe o ocorrido","Enviar","Cancelar");
    return 1;
}

//OnDialogResponse

if(dialogid == 51512) // veja que o id usado para criar й o mesmo usado para manusea-lo
{
    if(response) //resposta do botгo 1 (esquerdo) que no caso й 'enviar'
    {
        new
            wiiStr[128], //string nova
            wiiN[MAX_PLAYER_NAME]//string nova
        ;
       
        GetPlayerName(playerid, wiiN, sizeof( wiiN ));//Getando o seu nome para 'wiiN'
        for(new i, x = GetMaxPlayers(); i < x; i++)//fazendo um loop para identificar admins
        {
            if(PlayerInfo[i][pAdmin] >= 1) //se tiver admins level 1 pra cima ele continua...
            { //troque PlayerInfo pela sua variбvel de admins...
                format(wiiStr,sizeof( wiiStr ), "%s: %s",wiiN, inputtext); //format para pegar o seu nome e o seu texto.
                SendClientMessage(i, -1, wiiStr);//Enviando o texto para os admins.
                return 1;
            }
        }
    }
    return 1;
}
Troque "PlayerInfo[i][pAdmin]" pela sua variбvel de admins caso nгo seja essa.
Reply
#16

new
wiiStr[128], //string nova
wiiN[MAX_PLAYER_NAME]//string nova
;

ta serto isso ?
Reply
#17

amigгo
fis o que tu falou mais quando eu click la num aparece nada pra escrever
Reply
#18

quando tu digita /relato? ou quando tu clica pra enviar?
Reply
#19

quando digita /relato num aparece nada
Reply
#20

pawn Code:
//OnPlayerCommandText
if(strcmp(cmd,"/relato",true) == 0)
{
    ShowPlayerDialog(playerid, 916662, DIALOG_STYLE_INPUT,"Relato","Informe o ocorrido","Enviar","Cancelar");
    return 1;
}

//OnDialogResponse

if(dialogid == 916662) // veja que o id usado para criar й o mesmo usado para manusea-lo
{
    if(response) //resposta do botгo 1 (esquerdo) que no caso й 'enviar'
    {
        new
            wiiStr[128], //string nova
            wiiN[MAX_PLAYER_NAME]//string nova
        ;
       
        GetPlayerName(playerid, wiiN, sizeof( wiiN ));//Getando o seu nome para 'wiiN'
        for(new i, x = GetMaxPlayers(); i < x; i++)//fazendo um loop para identificar admins
        {
            if(PlayerInfo[i][pAdmin] >= 1) //se tiver admins level 1 pra cima ele continua...
            { //troque PlayerInfo pela sua variбvel de admins...
                format(wiiStr,sizeof( wiiStr ), "%s: %s",wiiN, inputtext); //format para pegar o seu nome e o seu texto.
                SendClientMessage(i, -1, wiiStr);//Enviando o texto para os admins.
                return 1;
            }
        }
    }
    return 1;
}
Tente assim, nгo vejo erro. Pode ter algum dialog com o mesmo id...
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)