[Ajuda] dialog de novo .-.
#1

pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == REGISTRO)
    {
        if(response)
        {
            if(!strlen(inputtext))
            {
                new Nome[MAX_PLAYER_NAME];
                GetPlayerName(playerid, Nome, sizeof(Nome));
                new String[100];
                format(String, sizeof(String), "{7FFFD4}Nick: {1E90FF}%s  {1E90FF}Nгo Registrado\n\n{FFFFFF} Digite Uma Senha Para Continuar", Nome);
                ShowPlayerDialog(playerid, REGISTRO, DIALOG_STYLE_INPUT, "Registro", String, "Registrar", "Cancelar");
                SendClientMessage(playerid,0x1E90FFAA,"Senha invalida, digite uma senha vбlida");
                return 1;
            }
            new Nome[MAX_PLAYER_NAME];
            GetPlayerName(playerid, Nome, sizeof(Nome));
            new String[100];
            format(String, sizeof(String), CONTAS, Nome);
            dini_Create(String);
            dini_Set(String,"Senha",inputtext);
            dini_IntSet(String,"Dinheiro",0);
            dini_IntSet(String,"Vida", 100);
            dini_IntSet(String,"Colete", 100);
            dini_IntSet(String,"Matou",0);
            dini_IntSet(String,"Morreu",0);
            dini_IntSet(String,"Logou",0);
            ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_INPUT, "Login", "{1E90FF}Pronto vocк se registrou agora digite Sua Senha Para Logar-Se", "Logar", "Cancelar");
            return 1;
        }
        else
        {
            SendClientMessage(playerid, 0x9900FFAA, "Vocк Foi Kickado Porque Nгo Quis Se Registrar!!");
            Kick(playerid);
            return 1;
        }
    }
    if(dialogid == LOGIN)
    {
        if(response)
        {
            if(!strlen(inputtext))
            {
                new Nome[MAX_PLAYER_NAME];
                GetPlayerName(playerid, Nome, sizeof(Nome));
                new String[100];
                format(String, sizeof(String), "{7FFFD4}Nick: {1E90FF}%s  {1E90FF}Registrado\n\n{FFFFFF} Digite Sua Senha Para Logar", Nome);
                ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_INPUT, "Registro", String, "Logar", "Cancelar");
                SendClientMessage(playerid,0x1E90FFAA,"Senha Incorreta !");
                return 1;
            }
            new Nome[MAX_PLAYER_NAME];
            GetPlayerName(playerid, Nome, sizeof(Nome));
            new String[100];
            format(String, sizeof(String), CONTAS, Nome);
            if(!strcmp(inputtext,dini_Get(String,"Senha"),false))
            {
                SetarPlayer(playerid);
                Logou[playerid]++;
                SendClientMessage(playerid,0x9900FFAA,"Vocк Foi Logado Com Sucesso!!!");
                return 1;
            }
            else
            {
                SendClientMessage(playerid,0x9900FFAA,"Senha incorreta digite-a novamente");
                format(String, sizeof(String), "{7FFFD4}Nick: {1E90FF}%s  {1E90FF}Registrado\n\n{FFFFFF} Digite Sua Senha Para Logar", Nome);
                ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_INPUT, "Registro", String, "Logar", "Cancelar");
            }
            return 1;
        }
        else
        {
            SendClientMessage(playerid, 0x9900FFAA, "Vocк nгo quis se logar, por este motivo serб Kickado");
            Kick(playerid);
            return 1;
        }
    }
   
//------------------------------------------------------------------------------
    if(dialogid == loja1)
    {
        if(response)
        {
            if(listitem == 0) //pizza
            {
                GivePlayerHealth(playerid, 16);
                GivePlayerMoney(playerid, -12);
                SendClientMessage(playerid, AZUL, "Vocк comeu uma pizza");
            }
            if(listitem == 1) //bolacha
            {
                GivePlayerHealth(playerid, 5);
                GivePlayerMoney(playerid, -3);
                SendClientMessage(playerid, AZUL, "Vocк comeu um pacote de bolacha");
            }
            if(listitem == 2) //sucrilhos
            {
                GivePlayerHealth(playerid, 9);
                GivePlayerMoney(playerid, -5);
                SendClientMessage(playerid, AZUL, "Vocк comeu sucrilho com leite");
            }
            if(listitem == 3) //barra de chocolate
            {
                GivePlayerHealth(playerid, 2);
                GivePlayerMoney(playerid, -10);
                SendClientMessage(playerid, AZUL, "Vocк comeu uma barra de chocolate");
                SendClientMessage(playerid, VERMELHO, "Cuidado, chocolate demais faz mal a saъde");
            }
            if(listitem == 4) //pгo
            {
                GivePlayerHealth(playerid, 4);
                GivePlayerMoney(playerid, -1);
                SendClientMessage(playerid, AZUL, "Vocк comeu pгo francкs");
            }
        }
        return 1;
    }
    return 0;
}
quando eu pego a pickup loja1 por engano, e clico em cancelar, sou kikado automaticamente e diz que me recusei a registar ]=
Reply
#2

Retire as returns pode resolver;

pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == REGISTRO)
    {
        if(response)
        {
            if(!strlen(inputtext))
            {
                new Nome[MAX_PLAYER_NAME];
                GetPlayerName(playerid, Nome, sizeof(Nome));
                new String[100];
                format(String, sizeof(String), "{7FFFD4}Nick: {1E90FF}%s  {1E90FF}Nгo Registrado\n\n{FFFFFF} Digite Uma Senha Para Continuar", Nome);
                ShowPlayerDialog(playerid, REGISTRO, DIALOG_STYLE_INPUT, "Registro", String, "Registrar", "Cancelar");
                SendClientMessage(playerid,0x1E90FFAA,"Senha invalida, digite uma senha vбlida");
                return 1;
            }
            new Nome[MAX_PLAYER_NAME];
            GetPlayerName(playerid, Nome, sizeof(Nome));
            new String[100];
            format(String, sizeof(String), CONTAS, Nome);
            dini_Create(String);
            dini_Set(String,"Senha",inputtext);
            dini_IntSet(String,"Dinheiro",0);
            dini_IntSet(String,"Vida", 100);
            dini_IntSet(String,"Colete", 100);
            dini_IntSet(String,"Matou",0);
            dini_IntSet(String,"Morreu",0);
            dini_IntSet(String,"Logou",0);
            ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_INPUT, "Login", "{1E90FF}Pronto vocк se registrou agora digite Sua Senha Para Logar-Se", "Logar", "Cancelar");
            return 1;
        }
        else
        {
            SendClientMessage(playerid, 0x9900FFAA, "Vocк Foi Kickado Porque Nгo Quis Se Registrar!!");
            Kick(playerid);
        }
    }
    if(dialogid == LOGIN)
    {
        if(response)
        {
            if(!strlen(inputtext))
            {
                new Nome[MAX_PLAYER_NAME];
                GetPlayerName(playerid, Nome, sizeof(Nome));
                new String[100];
                format(String, sizeof(String), "{7FFFD4}Nick: {1E90FF}%s  {1E90FF}Registrado\n\n{FFFFFF} Digite Sua Senha Para Logar", Nome);
                ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_INPUT, "Registro", String, "Logar", "Cancelar");
                SendClientMessage(playerid,0x1E90FFAA,"Senha Incorreta !");
                return 1;
            }
            new Nome[MAX_PLAYER_NAME];
            GetPlayerName(playerid, Nome, sizeof(Nome));
            new String[100];
            format(String, sizeof(String), CONTAS, Nome);
            if(!strcmp(inputtext,dini_Get(String,"Senha"),false))
            {
                SetarPlayer(playerid);
                Logou[playerid]++;
                SendClientMessage(playerid,0x9900FFAA,"Vocк Foi Logado Com Sucesso!!!");
                return 1;
            }
            else
            {
                SendClientMessage(playerid,0x9900FFAA,"Senha incorreta digite-a novamente");
                format(String, sizeof(String), "{7FFFD4}Nick: {1E90FF}%s  {1E90FF}Registrado\n\n{FFFFFF} Digite Sua Senha Para Logar", Nome);
                ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_INPUT, "Registro", String, "Logar", "Cancelar");
            }
            return 1;
        }
        else
        {
            SendClientMessage(playerid, 0x9900FFAA, "Vocк nгo quis se logar, por este motivo serб Kickado");
            Kick(playerid);
        }
    }
   
//------------------------------------------------------------------------------
    if(dialogid == loja1)
    {
        if(response)
        {
            if(listitem == 0) //pizza
            {
                GivePlayerHealth(playerid, 16);
                GivePlayerMoney(playerid, -12);
                SendClientMessage(playerid, AZUL, "Vocк comeu uma pizza");
            }
            if(listitem == 1) //bolacha
            {
                GivePlayerHealth(playerid, 5);
                GivePlayerMoney(playerid, -3);
                SendClientMessage(playerid, AZUL, "Vocк comeu um pacote de bolacha");
            }
            if(listitem == 2) //sucrilhos
            {
                GivePlayerHealth(playerid, 9);
                GivePlayerMoney(playerid, -5);
                SendClientMessage(playerid, AZUL, "Vocк comeu sucrilho com leite");
            }
            if(listitem == 3) //barra de chocolate
            {
                GivePlayerHealth(playerid, 2);
                GivePlayerMoney(playerid, -10);
                SendClientMessage(playerid, AZUL, "Vocк comeu uma barra de chocolate");
                SendClientMessage(playerid, VERMELHO, "Cuidado, chocolate demais faz mal a saъde");
            }
            if(listitem == 4) //pгo
            {
                GivePlayerHealth(playerid, 4);
                GivePlayerMoney(playerid, -1);
                SendClientMessage(playerid, AZUL, "Vocк comeu pгo francкs");
            }
        }
    }
    return 1;
}
Reply
#3

O correto й retornar cada 'dialogid' e de preferкncia usar if(response) & if(!response) pra que usar else nisso?
Reply
#4

mais problema que percebi agora, quando eu escolho pizza por exemplo no dialog, aparece outra caixa pra digitar minha senha dizendo que jб registrei e sу falta logar, depois disso cancelei e fui kikado do server, fui em scriptfiles nas contas dos players entrei na minha e vi que minha senha havia sido trocada por Pizza R$12,00...
tenso' =[
Reply
#5

Utilizando id iguais й que ocorre isso!
Reply
#6

sгo id's diferentes..
OBS: estou passando isso para um FS
Reply
#7

entгo nгo existe problema, tente usar switch..
Reply
#8

nгo sei usar switch ...
e passei pro fs e o bug persistiu
Reply
#9

Exemplo:
pawn Код:
#define Cristiana 504

public OnDialogResponse..
{
    if(dialogid == Cristiana)
    {
        switch(listitem)
        {
        case 0:
        {
            return...
        }
        case 1: assim por diante..
Reply
#10

nada ver,
terб que criar um nova ID para dialog:

pawn Код:
#define DIALOG_LOJA   855

pawn Код:
if(dialogid == DIALOG_LOJA)
    {
        if(response)
        {
            if(listitem == 0) //pizza
            {
                GivePlayerHealth(playerid, 16);
                GivePlayerMoney(playerid, -12);
                SendClientMessage(playerid, AZUL, "Vocк comeu uma pizza");
            }
            if(listitem == 1) //bolacha
            {
                GivePlayerHealth(playerid, 5);
                GivePlayerMoney(playerid, -3);
                SendClientMessage(playerid, AZUL, "Vocк comeu um pacote de bolacha");
            }
            if(listitem == 2) //sucrilhos
            {
                GivePlayerHealth(playerid, 9);
                GivePlayerMoney(playerid, -5);
                SendClientMessage(playerid, AZUL, "Vocк comeu sucrilho com leite");
            }
            if(listitem == 3) //barra de chocolate
            {
                GivePlayerHealth(playerid, 2);
                GivePlayerMoney(playerid, -10);
                SendClientMessage(playerid, AZUL, "Vocк comeu uma barra de chocolate");
                SendClientMessage(playerid, VERMELHO, "Cuidado, chocolate demais faz mal a saъde");
            }
            if(listitem == 4) //pгo
            {
                GivePlayerHealth(playerid, 4);
                GivePlayerMoney(playerid, -1);
                SendClientMessage(playerid, AZUL, "Vocк comeu pгo francкs");
            }
        }
    }
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)