SA-MP Forums Archive
[AJUDA] Cadastro de Email - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [AJUDA] Cadastro de Email (/showthread.php?tid=295369)



[AJUDA] Cadastro de Email - Mattos - 06.11.2011

Galera... Jб fiz um topico semelhante mais as respostas nao foram o esperado... Ae to aqui reformulando...

Bom quando um player entra no servidor й pedido pra ele cadastrar seu email... Estarei postando a funзгo da troca do email cadastrado que й exatamente igual...

pawn Код:
if(dialogid == 10106) // Troca Email
    {
        if (response)
        {

            new pemail[MAX_PLAYER_EMAIL];
            format(pemail,MAX_PLAYER_EMAIL, "%s", inputtext);
            if (!strlen(inputtext))
            {
                format(strres, 128, "Digite o novo email:");
                ShowPlayerDialog(playerid, 10106, DIALOG_STYLE_INPUT,"Email", strres, "Confirmar", "Cancelar");
                SendClientMessage(playerid, COR_VERMELHA, "| Digite um email vбlido.");
                return 1;
            }
            if (strlen(inputtext) < MIN_PLAYER_EMAIL || strlen(inputtext) > MAX_PLAYER_EMAIL)
            {
                format(strres, 128, "Digite o novo email:");
                ShowPlayerDialog(playerid, 10105, DIALOG_STYLE_INPUT,"Email", strres, "Confirmar", "Cancelar");
                SendClientMessage(playerid, COR_VERMELHA, "| Digite um email vбlido.");
                return 1;
            }
            bd_escrever_str(pName(playerid),"Email", pemail);
            SendClientMessage(playerid, COR_VERDE, "| Email alterado com sucesso, para alterб-lo novamente utilize /meuemail.");

        }
        else
        {
            return 1;
        }
        PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
        return 1;
    }

Bom... Eu quero saber como ficaria o cуdigo, obrigando o player utilizar @... Sendo que obviamente ele nao pode colocar mais de um @...


Re: [AJUDA] Cadastro de Email - rjjj - 06.11.2011

Bem, primeiro vocк pode criar uma funзгo no final do GameMode que conte quantos arrobas um texto tem, por meio da verificaзгo dos valores de cada caractere do mesmo :



pawn Код:
stock NumeroArrobas(string[])
{
    new Arrobas = 0;
    for(new x = 0; string[x] != EOS; x++)
    {
        if(string[x] == '@') Arrobas += 1;
    }
    return Arrobas;
}


Depois, basta criar alguns ifs no seu cуdigo utilizando a funзгo . Exemplo:


pawn Код:
if(NumeroArrobas(inputtext) != 1) return SendClientMessage(playerid, 0x33CCFFAA, "Seu E-mail deve ter um ъnico arroba !");


Aqui a mesma na forma como estaria posicionada em seu cуdigo :


pawn Код:
if(dialogid == 10106) // Troca Email
    {
        if (response)
        {
            if(NumeroArrobas(inputtext) != 1) return SendClientMessage(playerid, 0x33CCFFAA, "Seu E-mail deve ter um ъnico arroba !");
            new pemail[MAX_PLAYER_EMAIL];
            format(pemail,MAX_PLAYER_EMAIL, "%s", inputtext);
            if (!strlen(inputtext))
            {
                format(strres, 128, "Digite o novo email:");
                ShowPlayerDialog(playerid, 10106, DIALOG_STYLE_INPUT,"Email", strres, "Confirmar", "Cancelar");
                SendClientMessage(playerid, COR_VERMELHA, "| Digite um email vбlido.");
                return 1;
            }
            if (strlen(inputtext) < MIN_PLAYER_EMAIL || strlen(inputtext) > MAX_PLAYER_EMAIL)
            {
                format(strres, 128, "Digite o novo email:");
                ShowPlayerDialog(playerid, 10105, DIALOG_STYLE_INPUT,"Email", strres, "Confirmar", "Cancelar");
                SendClientMessage(playerid, COR_VERMELHA, "| Digite um email vбlido.");
                return 1;
            }
            bd_escrever_str(pName(playerid),"Email", pemail);
            SendClientMessage(playerid, COR_VERDE, "| Email alterado com sucesso, para alterб-lo novamente utilize /meuemail.");

        }
        else
        {
            return 1;
        }
        PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
        return 1;
    }


Espero ter ajudado .


Re: [AJUDA] Cadastro de Email - Mattos - 06.11.2011

Hum... mais isso nao irб verificar se o imputtext й um arroba?? ou ele vai contar se tem ou nao algum arroba no que foi posto no imputtext?


Re: [AJUDA] Cadastro de Email - rjjj - 06.11.2011

Quote:
Originally Posted by Mateuscm
Посмотреть сообщение
Hum... mais isso nao irб verificar se o imputtext й um arroba?? ou ele vai contar se tem ou nao algum arroba no que foi posto no imputtext?
Ele vai contar quantos arrobas o inputtext tem .


Caso nгo haja nenhum arroba ele retorna 0 .



Entгo, vocк pode usar o cуdigo abaixo para que seja realizado o que vocк quer:


pawn Код:
if(NumeroArrobas(inputtext) != 1) return SendClientMessage(playerid, 0x33CCFFAA, "Seu E-mail deve ter um ъnico arroba !");


Espero ter ajudado .