11.12.2011, 03:44
100 й a quantidade mбximas de cйlulas.
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:
Quote:
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 Код:
Ou crie variбveis globais . Espero ter ajudado . |
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);
}
}
}