[Ajuda] Sistema de Registo
#1

Estou a seguir um tutorial para um sistema de registo, mas o tutorial sу ensina a fazer senhas de nъmeros, com strval. Como se faz com letras/nъmeros? Obrigado
Reply
#2

Nгo use a verificaзгo STRVAL.

Exemplo :
PHP код:
if(strval(inputtext)) // simplesmente nгo use isto :). Ai pra salvar a senha , salve em "String" , DOF2_SetString... 
Reply
#3

Obrigado pela ajuda, jб retirei todos os strval's do cуdigo, mas nгo consigo fazer uma coisa: A funзгo do DOF "DOF2_GetString" estб a dar erro... e nгo consigo retira-lo.

Linha do erro:

pawn Код:
iPlayerInfo[playerid][Password] = DOF2_GetString(ficheiro, "Password");
Erro:

pawn Код:
error 006: must be assigned to an array
Reply
#4

Quote:
Originally Posted by bruxo00
Посмотреть сообщение
Obrigado pela ajuda, jб retirei todos os strval's do cуdigo, mas nгo consigo fazer uma coisa: A funзгo do DOF "DOF2_GetString" estб a dar erro... e nгo consigo retira-lo.

Linha do erro:

pawn Код:
iPlayerInfo[playerid][Password] = DOF2_GetString(ficheiro, "Password");
Erro:

pawn Код:
error 006: must be assigned to an array
Nunca usei DOF2, mas tente assim
pawn Код:
format(ficheiro, sizeof(ficheiro), "%s", DOF2_GetString(ficheiro, "Password"));
Reply
#5

Obrigado, resolveu

+REP
Reply
#6

Jб agora, agora o servidor crasha quando tento registar-me.

Conecto - servidor ON.
Clico no Button 2 - Servidor ON
Nгo escrevo nada (isnull) - Servidor ON
Escrevo uma senha e tento registar-me - Servidor OFF

Aqui estб o dialog de registo, nгo encontro erro nenhum!!

pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    new ficheiro[32];
    new nome[MAX_PLAYER_NAME];
   
    GetPlayerName(playerid, nome, sizeof(nome));
    format(ficheiro, sizeof(ficheiro), "iPlays/Contas/%s.ini", nome);
    if(dialogid == DIALOG_REGISTO)
    {
        if(!response)
        {
            Kick(playerid);
            return 1;
        }
        else
        {
            if(!isnull(inputtext))
            {
                DOF2_CreateFile(ficheiro);
                DOF2_SetString(ficheiro, "Password", iPlayerInfo[playerid][Password]);
                DOF2_SetInt(ficheiro, "Score", iPlayerInfo[playerid][Score]);
                DOF2_SetInt(ficheiro, "Dinheiro", iPlayerInfo[playerid][Dinheiro]);
                DOF2_SetInt(ficheiro, "Admin", iPlayerInfo[playerid][Admin]);
                DOF2_SaveFile();

                ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Login", "Registado com sucesso! \nEfectue o login!", "Login", "Cancelar");
            }
            else
            {
                SendClientMessage(playerid, Erro, "[ ERRO ] Nгo escreveste nada, serбs kickado.");
                SetTimer("KickTimer", 60, false);
            }
        }
    }
Reply
#7

Desculpe as alteraзхes, gosto de economizar linha e deixar um cуdigo mais organizado
pawn Код:
new ficheiro[32],nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, nome, sizeof(nome));
if(dialogid == DIALOG_REGISTO)
{
    if(!response) return Kick(playerid);
    if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD,"Login","Digite sua senhaaaaa!","Logar","Sair");
    format(ficheiro, sizeof(ficheiro), "iPlays/Contas/%s.ini", nome);
    DOF2_CreateFile(ficheiro);
    DOF2_SetString(ficheiro, "Password", inputtext);
    DOF2_SetInt(ficheiro, "Score", iPlayerInfo[playerid][Score]);
    DOF2_SetInt(ficheiro, "Dinheiro", iPlayerInfo[playerid][Dinheiro]);
    DOF2_SetInt(ficheiro, "Admin", iPlayerInfo[playerid][Admin]);
    DOF2_SaveFile();
    ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Login", "Registado com sucesso! \nEfectue o login!", "Login", "Cancelar");
    return 1;
}
Se nгo der certo, verifique se vocк criou as 2 pastas. Mesmo se nгo resolver, faзa um debug.
Reply
#8

Jб criou a pasta na ScriptFile?

pawn Код:
format(ficheiro, sizeof(ficheiro), "iPlays/Contas/%s.ini", nome);
Reply
#9

Pois... foi mesmo isso... no cуdigo mudei o nome da pasta, mas esqueci de mudar no scriptfiles. Obrigado

Mas agora, registo-me, e no login, escrevo uma senha aleatуria, faзo login na mesma. Acho que o problema estб no strcmp e no isnull, й a primeira vez que uso :/

E no ficheiro da conta, a password fica assim:

PHP код:
Password = (null
Aqui estгo os dialog's de login e registo:

PHP код:
public OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    new 
ficheiro[64];
    new 
nome[MAX_PLAYER_NAME];
    
    
GetPlayerName(playeridnomesizeof(nome)); 
    
format(ficheirosizeof(ficheiro), "iPlays/Contas/%s.ini"nome);
    if(
dialogid == DIALOG_REGISTO)
    {
        if(!
response
        { 
            
Kick(playerid);
            return 
1;
        }
        else 
        {
            if(!
isnull(inputtext))
            {
                
DOF2_CreateFile(ficheiro);
                
DOF2_SetString(ficheiro"Password"iPlayerInfo[playerid][Password]);
                
DOF2_SetInt(ficheiro"Score"iPlayerInfo[playerid][Score]);
                
DOF2_SetInt(ficheiro"Dinheiro"iPlayerInfo[playerid][Dinheiro]);
                
DOF2_SetInt(ficheiro"Admin"iPlayerInfo[playerid][Admin]);
                
DOF2_SaveFile();
                
ShowPlayerDialog(playeridDIALOG_LOGARDIALOG_STYLE_PASSWORD"Login""Registado com sucesso! \nEfectue o login!""Login""Cancelar");
            }
            else
            {
                
SendClientMessage(playeridErro"[ ERRO ] {4B00B0}Nгo escreveste nada, serбs kickado.");
                
SetTimer("KickTimer"60false);
            }
        }
    }
    if(
dialogid == DIALOG_LOGAR)
    {
        if(!
response
        { 
            
Kick(playerid);
            return 
1;
        }
        else 
        { 
            
iPlayerInfo[playerid][Password] = format(ficheirosizeof(ficheiro), "%s"DOF2_GetString(ficheiro"Password"));
            if(!
strcmp(iPlayerInfo[playerid][Password], inputtextfalse) || !isnull(inputtext))
            { 
                
iPlayerInfo[playerid][Score] = DOF2_GetInt(ficheiro"Score"); 
                
iPlayerInfo[playerid][Dinheiro] = DOF2_GetInt(ficheiro"Dinheiro"); 
                
iPlayerInfo[playerid][Admin] = DOF2_GetInt(ficheiro"Admin"); 
                
GivePlayerMoney(playeridiPlayerInfo[playerid][Dinheiro]);
                
SetPlayerScore(playeridiPlayerInfo[playerid][Score]);
                
SpawnPlayer(playerid);
            }
            else 
            {
                
ShowPlayerDialog(playeridDIALOG_LOGARDIALOG_STYLE_PASSWORD"Login""A password digitada й errada, digite-a novamente para logar!""Login""Cancelar");
            }
        }
    }
    return 
1;

Reply
#10

pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    new ficheiro[32],nome[MAX_PLAYER_NAME];
    GetPlayerName(playerid, nome, sizeof(nome));
    if(dialogid == DIALOG_REGISTO)
    {
        if(!response) return Kick(playerid);
        if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD,"Login","Digite sua senhaaaaa!","Logar","Sair");
        format(ficheiro, sizeof(ficheiro), "iPlays/Contas/%s.ini", nome);
        DOF2_CreateFile(ficheiro);
        DOF2_SetString(ficheiro, "Password", inputtext);
        DOF2_SetInt(ficheiro, "Score", iPlayerInfo[playerid][Score]);
        DOF2_SetInt(ficheiro, "Dinheiro", iPlayerInfo[playerid][Dinheiro]);
        DOF2_SetInt(ficheiro, "Admin", iPlayerInfo[playerid][Admin]);
        DOF2_SaveFile();
        ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Login", "Registado com sucesso! \nEfectue o login!", "Login", "Cancelar");
        return 1;
    }
    if(dialogid == DIALOG_LOGAR)
    {
        if(!response) return Kick(playerid);
        format(ficheiro, sizeof(ficheiro),"iPlays/Contas/%s.ini", nome);
        if(!strcmp(DOF2_GetString(ficheiro,"Password"), inputtext, false))
        {
            iPlayerInfo[playerid][Score] = DOF2_GetInt(ficheiro, "Score");
            iPlayerInfo[playerid][Dinheiro] = DOF2_GetInt(ficheiro, "Dinheiro");
            iPlayerInfo[playerid][Admin] = DOF2_GetInt(ficheiro, "Admin");

            GivePlayerMoney(playerid, iPlayerInfo[playerid][Dinheiro]);
            SetPlayerScore(playerid, iPlayerInfo[playerid][Score]);
            SpawnPlayer(playerid);
        }
        else return  ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Login", "A password digitada й errada, digite-a novamente para logar!", "Login", "Cancelar");
        return 1;
    }
    return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)