[Ajuda] Poder utilizar senhas com letras.
#1

Como faзo para criar senhas com letras, pois ele sу autoriza a criaзгo de senhas com numeros, e isso deixaria o server com muitas contas hackeadas.


pawn Код:
public OnPlayerConnect(playerid)
{
    new arquivo[40], name[MAX_PLAYER_NAME], string[180];
    GetPlayerName(playerid, name, 32);
    format(arquivo, 40, "Contas/%s.ini", name);
    if(DOF2_FileExists(arquivo))
    {
        format(string, sizeof(string),"{FFDAB9}Bem-Vindo ao Nova Era RolePlay\n{FFDAB9}Conta: %s\n{FFDAB9}Status: {008B00}Registrada\n{FFDAB9}Digite sua senha abaixo para logar-se",name);
        ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "{FFFF00}Logando", string, "Logar", "Cancelar");
    }
    else  
    {
        format(string, sizeof(string),"{FFDAB9}Bem-Vindo ao Nova Era RolePlay\n{FFDAB9}Conta: %s\n{FFDAB9}Status: {FF0000}Nгo Registrada\n{FFDAB9}Digite uma senha abaixo para registrar-se",name);
        ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "{FFFF00}Registrando", string, "Registrar", "Cancelar");
    }
    return 1;
}
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    new arquivo[40], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, 32);
    format(arquivo, 40, "Contas/%s.ini", name);
    if(dialogid == DIALOG_REGISTRO)
    {
        if(!strval(inputtext))
        {
            ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "{FFFF00}Registrando", "{00008B}Digite uma senha abaixo para registrar-se", "Registrar", "Cancelar");
            return 1;
        }
        if(!response)
        {
            Kick(playerid);
            return 1;
        }
        else
        {
            Player[playerid][Senha] = strval(inputtext);
            DOF2_CreateFile(arquivo);
            DOF2_SetInt(arquivo, "Senha", Player[playerid][Senha]);
            DOF2_SetInt(arquivo, "Matou", Player[playerid][Matou]);
            DOF2_SetInt(arquivo, "Morreu", Player[playerid][Morreu]);
            DOF2_SetInt(arquivo, "Dinheiro", Player[playerid][Dinheiro]);
            DOF2_SaveFile();
            ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "{FFFF00}Logando", "{9B30FF}Vocк acabou de registrar-se\n{9B30FF}Digita a senha abaixo para logar-se", "Logar", "Cancelar");
        }
    }
    if(dialogid == DIALOG_LOGAR)
    {
        if(!strval(inputtext))
        {
            ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "{FFFF00}Logando", "{008B00}Vocк jб esta registrado em nosso banco de dados\n{008B00}Digite sua senha abaixo para logar-se", "Logar", "Cancelar");
            return 1;
        }
        if(!response)
        {
            Kick(playerid);
            return 1;
        }
        else
        {
            Player[playerid][Senha] = DOF2_GetInt(arquivo, "Senha");
            if(strval(inputtext) == Player[playerid][Senha])
            {
                Player[playerid][Matou] = DOF2_GetInt(arquivo, "Matou");
                Player[playerid][Morreu] = DOF2_GetInt(arquivo, "Morreu");
                Player[playerid][Dinheiro] = DOF2_GetInt(arquivo, "Dinheiro");
                GivePlayerMoney(playerid, Player[playerid][Dinheiro]);
                SpawnPlayer(playerid);
            }
            else
            {
                ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "{FFFF00}Logando", "{FF0000}Vocк digitou sua senha errada, digite-a novamente para logar!\n{FF0000}Se errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
                Erro[playerid]++;
                if(Erro[playerid] == 5)
                {
                    SendClientMessage(playerid, -1, "{8B0000}Vocк foi banido por errar a senha 5 vezes. {90EE90}Poste em nosso fуrum na seзгo de desban. {8B008B}O motivo de seu banimento!");
                    Ban(playerid);
                    return 1;
                }
            }
        }
    }
    return 1;
}
Reply
#2

Vocк estб tratando a senha como um nъmero inteiro, basta tratб-la como string.
Reply
#3

Quote:
Originally Posted by Viniborn
Посмотреть сообщение
Vocк estб tratando a senha como un nъmero inteiro, basta tratб-la como string.
Nгo entendi!
Reply
#4

Retire o strval ficando apenas 'inputtext'
Reply
#5

pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    new arquivo[40], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, 32);
    format(arquivo, 40, "Contas/%s.ini", name);
    if(dialogid == DIALOG_REGISTRO)
    {
        if(!strlen(inputtext))
        {
            ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "{FFFF00}Registrando", "{00008B}Digite uma senha abaixo para registrar-se", "Registrar", "Cancelar");
            return 1;
        }
        if(!response)
        {
            Kick(playerid);
            return 1;
        }
        else
        {
            Player[playerid][Senha] = inputtext;
            DOF2_CreateFile(arquivo);
            DOF2_SetString(arquivo, "Senha", Player[playerid][Senha]);
            DOF2_SetInt(arquivo, "Matou", Player[playerid][Matou]);
            DOF2_SetInt(arquivo, "Morreu", Player[playerid][Morreu]);
            DOF2_SetInt(arquivo, "Dinheiro", Player[playerid][Dinheiro]);
            DOF2_SaveFile();
            ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "{FFFF00}Logando", "{9B30FF}Vocк acabou de registrar-se\n{9B30FF}Digita a senha abaixo para logar-se", "Logar", "Cancelar");
        }
    }
    if(dialogid == DIALOG_LOGAR)
    {
        if(!strlen(inputtext))
        {
            ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "{FFFF00}Logando", "{008B00}Vocк jб esta registrado em nosso banco de dados\n{008B00}Digite sua senha abaixo para logar-se", "Logar", "Cancelar");
            return 1;
        }
        if(!response)
        {
            Kick(playerid);
            return 1;
        }
        else
        {
            Player[playerid][Senha] = DOF2_GetString(arquivo, "Senha");
            if(inputtext == Player[playerid][Senha])
            {
                Player[playerid][Matou] = DOF2_GetInt(arquivo, "Matou");
                Player[playerid][Morreu] = DOF2_GetInt(arquivo, "Morreu");
                Player[playerid][Dinheiro] = DOF2_GetInt(arquivo, "Dinheiro");
                GivePlayerMoney(playerid, Player[playerid][Dinheiro]);
                SpawnPlayer(playerid);
            }
            else
            {
                ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "{FFFF00}Logando", "{FF0000}Vocк digitou sua senha errada, digite-a novamente para logar!\n{FF0000}Se errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
                Erro[playerid]++;
                if(Erro[playerid] == 5)
                {
                    SendClientMessage(playerid, -1, "{8B0000}Vocк foi banido por errar a senha 5 vezes. {90EE90}Poste em nosso fуrum na seзгo de desban. {8B008B}O motivo de seu banimento!");
                    Ban(playerid);
                    return 1;
                }
            }
        }
    }
    return 1;
}
Reply
#6

Quote:
Originally Posted by AFerreira
Посмотреть сообщение
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    new arquivo[40], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, 32);
    format(arquivo, 40, "Contas/%s.ini", name);
    if(dialogid == DIALOG_REGISTRO)
    {
        if(!strlen(inputtext))
        {
            ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "{FFFF00}Registrando", "{00008B}Digite uma senha abaixo para registrar-se", "Registrar", "Cancelar");
            return 1;
        }
        if(!response)
        {
            Kick(playerid);
            return 1;
        }
        else
        {
            Player[playerid][Senha] = inputtext;
            DOF2_CreateFile(arquivo);
            DOF2_SetString(arquivo, "Senha", Player[playerid][Senha]);
            DOF2_SetInt(arquivo, "Matou", Player[playerid][Matou]);
            DOF2_SetInt(arquivo, "Morreu", Player[playerid][Morreu]);
            DOF2_SetInt(arquivo, "Dinheiro", Player[playerid][Dinheiro]);
            DOF2_SaveFile();
            ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "{FFFF00}Logando", "{9B30FF}Vocк acabou de registrar-se\n{9B30FF}Digita a senha abaixo para logar-se", "Logar", "Cancelar");
        }
    }
    if(dialogid == DIALOG_LOGAR)
    {
        if(!strlen(inputtext))
        {
            ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "{FFFF00}Logando", "{008B00}Vocк jб esta registrado em nosso banco de dados\n{008B00}Digite sua senha abaixo para logar-se", "Logar", "Cancelar");
            return 1;
        }
        if(!response)
        {
            Kick(playerid);
            return 1;
        }
        else
        {
            Player[playerid][Senha] = DOF2_GetString(arquivo, "Senha");
            if(inputtext == Player[playerid][Senha])
            {
                Player[playerid][Matou] = DOF2_GetInt(arquivo, "Matou");
                Player[playerid][Morreu] = DOF2_GetInt(arquivo, "Morreu");
                Player[playerid][Dinheiro] = DOF2_GetInt(arquivo, "Dinheiro");
                GivePlayerMoney(playerid, Player[playerid][Dinheiro]);
                SpawnPlayer(playerid);
            }
            else
            {
                ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "{FFFF00}Logando", "{FF0000}Vocк digitou sua senha errada, digite-a novamente para logar!\n{FF0000}Se errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
                Erro[playerid]++;
                if(Erro[playerid] == 5)
                {
                    SendClientMessage(playerid, -1, "{8B0000}Vocк foi banido por errar a senha 5 vezes. {90EE90}Poste em nosso fуrum na seзгo de desban. {8B008B}O motivo de seu banimento!");
                    Ban(playerid);
                    return 1;
                }
            }
        }
    }
    return 1;
}
Deu os seguintes erros:

C:\Users\Edilson\Downloads\Nova Era RolePlay\gamemodes\NVRP.pwn(26 : error 006: must be assigned to an array
C:\Users\Edilson\Downloads\Nova Era RolePlay\gamemodes\NVRP.pwn(292) : error 006: must be assigned to an array
C:\Users\Edilson\Downloads\Nova Era RolePlay\gamemodes\NVRP.pwn(293) : error 033: array must be indexed (variable "inputtext")
Reply
#7

Poderia postar as linhas que estб dando os erros?
Reply
#8

pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    new arquivo[40], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, 32);
    format(arquivo, 40, "Contas/%s.ini", name);
    if(dialogid == DIALOG_REGISTRO)
    {
        if(!response) return Kick(playerid);
    if(strlen(inputtext) < 5) return SendClientMessage(playerid,-1,"Digite uma senha vбlida!"),ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "{FFFF00}Registrando", "{00008B}Digite uma senha abaixo para registrar-se", "Registrar", "Cancelar");
        format(Player[playerid][Senha],24,"%s",inputtext);
        DOF2_CreateFile(arquivo);
        DOF2_SetString(arquivo, "Senha", Player[playerid][Senha]);
        DOF2_SetInt(arquivo, "Matou", Player[playerid][Matou]);
        DOF2_SetInt(arquivo, "Morreu", Player[playerid][Morreu]);
        DOF2_SetInt(arquivo, "Dinheiro", Player[playerid][Dinheiro]);
        DOF2_SaveFile();
        ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "{FFFF00}Logando", "{9B30FF}Vocк acabou de registrar-se\n{9B30FF}Digita a senha abaixo para logar-se", "Logar", "Cancelar");
        }
    }
    if(dialogid == DIALOG_LOGAR)
    {
    if(strlen(inputtext) < 5) return SendClientMessage(playerid,-1,"Digite uma senha vбlida!"),ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "{FFFF00}Logando", "{008B00}Vocк jб esta registrado em nosso banco de dados\n{008B00}Digite sua senha abaixo para logar-se", "Logar", "Cancelar");
        if(!response) return Kick(playerid);
        Player[playerid][Senha] = DOF2_GetInt(arquivo, "Senha");
        if(!strcmp(inputtext,Player[playerid][Senha],30,false))
        {
            Player[playerid][Matou] = DOF2_GetInt(arquivo, "Matou");
                Player[playerid][Morreu] = DOF2_GetInt(arquivo, "Morreu");
                Player[playerid][Dinheiro] = DOF2_GetInt(arquivo, "Dinheiro");
                GivePlayerMoney(playerid, Player[playerid][Dinheiro]);
                SpawnPlayer(playerid);
        }
        else
        {
        ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "{FFFF00}Logando", "{FF0000}Vocк digitou sua senha errada, digite-a novamente para logar!\n{FF0000}Se errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
                Erro[playerid]++;
                if(Erro[playerid] == 5)
                {
                    SendClientMessage(playerid, -1, "{8B0000}Vocк foi banido por errar a senha 5 vezes. {90EE90}Poste em nosso fуrum na seзгo de desban. {8B008B}O motivo de seu banimento!");
                    Ban(playerid);
                    return 1;
                }
            }
        }
    }
    return 1;
}
Tente.
Obs: lembre-se de na sua enum,definir a variavel "Senha" como uma variavel do tipo String.
Reply
#9

pawn Код:
268: Player[playerid][Senha] = inputtext;
292: Player[playerid][Senha] = DOF2_GetString(arquivo, "Senha");
293: if(inputtext == Player[playerid][Senha])
Reply
#10

Quote:
Originally Posted by Gustavo_Araujo
Посмотреть сообщение
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    new arquivo[40], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, 32);
    format(arquivo, 40, "Contas/%s.ini", name);
    if(dialogid == DIALOG_REGISTRO)
    {
        if(!response) return Kick(playerid);
    if(strlen(inputtext) < 5) return SendClientMessage(playerid,-1,"Digite uma senha vбlida!"),ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "{FFFF00}Registrando", "{00008B}Digite uma senha abaixo para registrar-se", "Registrar", "Cancelar");
        format(Player[playerid][Senha],24,"%s",inputtext);
        DOF2_CreateFile(arquivo);
        DOF2_SetString(arquivo, "Senha", Player[playerid][Senha]);
        DOF2_SetInt(arquivo, "Matou", Player[playerid][Matou]);
        DOF2_SetInt(arquivo, "Morreu", Player[playerid][Morreu]);
        DOF2_SetInt(arquivo, "Dinheiro", Player[playerid][Dinheiro]);
        DOF2_SaveFile();
        ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "{FFFF00}Logando", "{9B30FF}Vocк acabou de registrar-se\n{9B30FF}Digita a senha abaixo para logar-se", "Logar", "Cancelar");
        }
    }
    if(dialogid == DIALOG_LOGAR)
    {
    if(strlen(inputtext) < 5) return SendClientMessage(playerid,-1,"Digite uma senha vбlida!"),ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "{FFFF00}Logando", "{008B00}Vocк jб esta registrado em nosso banco de dados\n{008B00}Digite sua senha abaixo para logar-se", "Logar", "Cancelar");
        if(!response) return Kick(playerid);
        Player[playerid][Senha] = DOF2_GetInt(arquivo, "Senha");
        if(!strcmp(inputtext,Player[playerid][Senha],30,false))
        {
            Player[playerid][Matou] = DOF2_GetInt(arquivo, "Matou");
                Player[playerid][Morreu] = DOF2_GetInt(arquivo, "Morreu");
                Player[playerid][Dinheiro] = DOF2_GetInt(arquivo, "Dinheiro");
                GivePlayerMoney(playerid, Player[playerid][Dinheiro]);
                SpawnPlayer(playerid);
        }
        else
        {
        ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "{FFFF00}Logando", "{FF0000}Vocк digitou sua senha errada, digite-a novamente para logar!\n{FF0000}Se errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
                Erro[playerid]++;
                if(Erro[playerid] == 5)
                {
                    SendClientMessage(playerid, -1, "{8B0000}Vocк foi banido por errar a senha 5 vezes. {90EE90}Poste em nosso fуrum na seзгo de desban. {8B008B}O motivo de seu banimento!");
                    Ban(playerid);
                    return 1;
                }
            }
        }
    }
    return 1;
}
Tente.
Obs: lembre-se de na sua enum,definir a variavel "Senha" como uma variavel do tipo String.
o seu resultou em isso:

pawn Код:
C:\Users\Edilson\Downloads\Nova Era RolePlay\gamemodes\NVRP.pwn(258) : warning 217: loose indentation
C:\Users\Edilson\Downloads\Nova Era RolePlay\gamemodes\NVRP.pwn(259) : warning 217: loose indentation
C:\Users\Edilson\Downloads\Nova Era RolePlay\gamemodes\NVRP.pwn(268) : warning 209: function "OnDialogResponse" should return a value
C:\Users\Edilson\Downloads\Nova Era RolePlay\gamemodes\NVRP.pwn(269) : error 010: invalid function or declaration
C:\Users\Edilson\Downloads\Nova Era RolePlay\gamemodes\NVRP.pwn(271) : error 010: invalid function or declaration
C:\Users\Edilson\Downloads\Nova Era RolePlay\gamemodes\NVRP.pwn(272) : error 010: invalid function or declaration
C:\Users\Edilson\Downloads\Nova Era RolePlay\gamemodes\NVRP.pwn(274) : error 010: invalid function or declaration
C:\Users\Edilson\Downloads\Nova Era RolePlay\gamemodes\NVRP.pwn(282) : error 010: invalid function or declaration
C:\Users\Edilson\Downloads\Nova Era RolePlay\gamemodes\NVRP.pwn(286) : error 010: invalid function or declaration
C:\Users\Edilson\Downloads\Nova Era RolePlay\gamemodes\NVRP.pwn(290) : error 010: invalid function or declaration
C:\Users\Edilson\Downloads\Nova Era RolePlay\gamemodes\NVRP.pwn(295) : error 010: invalid function or declaration
C:\Users\Edilson\Downloads\Nova Era RolePlay\gamemodes\NVRP.pwn(302) : warning 203: symbol is never used: "Erro"
Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase


8 Errors.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)