[AJUDA] Salvamento de dados Dialog
#7

Quote:
Originally Posted by Mattos
Посмотреть сообщение
E esse 100 ali em "inputtext), 100);" й o array?
100 й a quantidade mбximas de cйlulas.

Quote:
Originally Posted by rjjj
Посмотреть сообщение
Quando vocк usa o comando /addmensagens o dialog й mostrado e a callback OnDialogResponse й chamada .



O problema й que quando um cуdigo dessa callback referente a um dialog de determinado ID й processado, ela й finalizada (todos as outras condiзхes de ifs sгo consideradas falsas atй acabar o cуdigo) e chamada mais uma vez para a leitura de outro dialog. Por isso as variбveis criadas no comeзo daquela sгo destruнdas ao tйrmino da funзгo e criadas novamente quando outro dialog й lido, fazendo com que elas nunca "resistam" atй o ъltimo dialog ser trabalhado .



Para resolver o seu problema, basta declarar suas variбveis usando static ao invйs de new, para que elas nгo sejam destruнdas no fim da leitura da funзгo :


pawn Код:
static mensagens[900], mensagem1[300], mensagem2[300], mensagem3[300];

Ou crie variбveis globais .



Espero ter ajudado .
Putz й mesmo, nгo vi que ele estava usando locais.

Mattos. Substitua as variбveis por globais como Rjjj falou e delete as outras.

Deve ficar assim:

pawn Код:
//Topo
new
    mensagens[ 900 ],
    mensagem1[ 300 ],
    mensagem2[ 300 ],
    mensagem3[ 300 ];

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == MENSAGENS)
    {
        if (response)
        {
            ShowPlayerDialog(playerid, MENSAGENS+1, DIALOG_STYLE_INPUT, "ADD MENSAGENS", "Digite a primeira mensagem:", "Continuar", "Cancelar");
        }
    }
    if(dialogid == MENSAGENS+1)
    {
        if (response)
        {
            strmid(mensagem1, (inputtext), 0, strlen(inputtext), 100);
            ShowPlayerDialog(playerid, MENSAGENS+2, DIALOG_STYLE_INPUT, "ADD MENSAGENS", "Digite a segunda mensagem:", "Continuar", "Cancelar");
        }
    }
    if(dialogid == MENSAGENS+2)
    {
        if (response)
        {
            strmid(mensagem2, (inputtext), 0, strlen(inputtext), 100);
            ShowPlayerDialog(playerid, MENSAGENS+3, DIALOG_STYLE_INPUT, "ADD MENSAGENS", "Digite a terceira mensagem:", "Finalizar", "Cancelar");
        }
    }
    if(dialogid == MENSAGENS+3)
    {
        if (response)
        {
            strmid(mensagem3, (inputtext), 0, strlen(inputtext), 100);
            SendClientMessage(playerid, -1, "Mensagens adicionadas com sucesso!");
            format(mensagens, sizeof(mensagens), "%s,%s,%s\r\n", mensagem1, mensagem2, mensagem3);
            new File:ArqMensagens = fopen("controle/mensagens.reg", io_append);
            fwrite(ArqMensagens, mensagens);
            fclose(ArqMensagens);
        }
    }
}
Reply


Messages In This Thread
[AJUDA] Salvamento de dados Dialog - by Mattos - 11.12.2011, 02:16
Re: [AJUDA] Salvamento de dados Dialog - by AleeFerreira - 11.12.2011, 02:27
Re: [AJUDA] Salvamento de dados Dialog - by Mattos - 11.12.2011, 02:31
Re: [AJUDA] Salvamento de dados Dialog - by Lуs - 11.12.2011, 02:32
Re: [AJUDA] Salvamento de dados Dialog - by Mattos - 11.12.2011, 03:34
Re: [AJUDA] Salvamento de dados Dialog - by rjjj - 11.12.2011, 03:38
Re: [AJUDA] Salvamento de dados Dialog - by Lуs - 11.12.2011, 03:44
Re: [AJUDA] Salvamento de dados Dialog - by Mattos - 11.12.2011, 03:49
Re: [AJUDA] Salvamento de dados Dialog - by Mattos - 11.12.2011, 04:23
Re: [AJUDA] Salvamento de dados Dialog - by Lуs - 11.12.2011, 04:26

Forum Jump:


Users browsing this thread: 3 Guest(s)