[Ajuda] Sistema de login
#1

Que parte eu mudo para ao invйs de salvar a conta.txt no scriptfiles salve em scriptfiles/contas codigo abaixo
pawn Код:
//    Sitema de Login criado por Matheus_Mendes      //
//Baixado na Tech Samp - http://www.techsamp.blogspot.com.br//

#include <a_samp>
#define GREEN                   0x21DD00FF
#define RED                     0xE60000FF
#define ADMIN_RED               0xFB0000FF
#define YELLOW                  0xFFFF00FF
#define ORANGE                  0xF97804FF
#define LIGHTRED                0xFF8080FF
#define LIGHTBLUE               0x00C2ECFF
#define PURPLE                  0xB360FDFF
#define PLAYER_COLOR    0xFFFFFFFF
#define BLUE                    0x1229FAFF
#define LIGHTGREEN              0x38FF06FF
#define DARKPINK                0xE100E1FF
#define DARKGREEN               0x008040FF
#define ANNOUNCEMENT    0x6AF7E1FF
#define COLOR_SYSTEM    0xEFEFF7AA
#define GREY                    0xCECECEFF
#define PINK                    0xD52DFFFF
#define DARKGREY        0x626262FF
#define AQUAGREEN       0x03D687FF
#define NICESKY                 0x99FFFFAA
#define WHITE                   0xFFFFFFFF
//**MISC**//
#define ACCOUNTS_FOLDER             "%s.ini"
#define LOGIN_DELAY                 3 //
//Variaveis Nao retire//
enum aInfo
{
        aSenha[128],
        aLogged,
}
;
new AccountInfo[MAX_PLAYERS][aInfo];
new registro[MAX_PLAYERS];
new login[MAX_PLAYERS];
forward LogIn(playerid);
forward OnPlayerUpdate(playerid);

public OnGameModeInit()
{
        SendRconCommand("reloadfs Seifistration");
        return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
        OnPlayerUpdate(playerid);
        AccountInfo[playerid][aLogged] = 0;
        registro[playerid] = 0;
        login[playerid] = 0;
        return 1;
}

public OnPlayerConnect(playerid)
{
        new name[MAX_PLAYER_NAME];
        GetPlayerName(playerid, name, sizeof(name));
        new string[128];
        format(string, sizeof(string), ACCOUNTS_FOLDER, name);
        if (AccountInfo[playerid][aLogged] == 0)
        {
                if (!fexist(string))
                {
                        new kayitmsg[256];
                        format(kayitmsg,256,"Seja Bem Vindo\n\n%s Por favor, se registre!\n\nSenha:",name);
                        ShowPlayerDialog(playerid,12345,DIALOG_STYLE_INPUT,"Registrar",kayitmsg,"Registrar","Sair");
                        registro[playerid] = 1;
                        login[playerid] = 0;
                }
                else if (fexist(string))
                {
                        new girismsg[256];
                        format(girismsg,256,"Seja Bem Vindo\n\nNick: %s\n\nSenha:",name);
                        ShowPlayerDialog(playerid,12346,DIALOG_STYLE_INPUT,"Logar",girismsg,"Logar","Sair");
                        registro[playerid] = 0;
                        login[playerid] = 1;
                }
        }
        return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
        if (response == 1)
        {
                if(dialogid == 12345)
                {
                        if(strlen(inputtext))
                        {
                                Encrypt(inputtext);
                                new player[MAX_PLAYER_NAME];
                                GetPlayerName(playerid, player, 50);
                                new string3[32];
                                new playername3[MAX_PLAYER_NAME];
                                GetPlayerName(playerid, playername3, sizeof(playername3));
                                format(string3, sizeof(string3), ACCOUNTS_FOLDER, playername3);
                                new ip[20];
                                GetPlayerIp(playerid,ip,sizeof(ip));
                                new File: hFile = fopen(string3, io_write);
                                if (hFile)
                                {
                                        strmid(AccountInfo[playerid][aSenha], inputtext, 0, strlen(inputtext), 255);
                                        new var[128];
                                        format(var, 128, "Senha=%s\n", AccountInfo[playerid][aSenha]);fwrite(hFile, var);
                                        format(var, 128, "IP=%s\n",ip);fwrite(hFile, var);
                                        fclose(hFile);
                                        printf("%s is signed up.",playername3);
                                        SendClientMessage(playerid, GREEN, "|- Voce jб esta registrado, faзa login. -|");
                                        new girismsg[256];
                                        format(girismsg,256,"Seja Bem Vindo\n\nNick: %s\n\nSenha:",playername3);
                                        ShowPlayerDialog(playerid,12346,DIALOG_STYLE_INPUT,"Login",girismsg,"Login","Quit");
                                        registro[playerid] = 0;
                                        login[playerid] = 1;
                                }
                        }
                        else if(!strlen(inputtext))
                        {
                                new name[MAX_PLAYER_NAME];
                                GetPlayerName(playerid, name, sizeof(name));
                                new kayitmsg[256];
                                format(kayitmsg,256,"Seja Bem Vindo\n\n%s Por favor, se registre!\n\nSenha:",name);
                                ShowPlayerDialog(playerid,12345,DIALOG_STYLE_INPUT,"Registrar",kayitmsg,"Registrar","Sair");
                                registro[playerid] = 1;
                                login[playerid] = 0;
                        }
                }
                if(dialogid == 12346)
                {
                        Encrypt(inputtext);
                        new string2[128];
                        new playername2[MAX_PLAYER_NAME];
                        GetPlayerName(playerid, playername2, sizeof(playername2));
                        format(string2, sizeof(string2), ACCOUNTS_FOLDER, playername2);
                        new File: UserFile = fopen(string2, io_read);
                        if ( UserFile )
                        {
                                new PassData[256];
                                new keytmp[256], valtmp[256];
                                fread( UserFile , PassData , sizeof( PassData ) );
                                keytmp = ini_GetKey( PassData );
                                if( strcmp( keytmp , "Senha" , true ) == 0 )
                                {
                                        valtmp = ini_GetValue( PassData );
                                        strmid(AccountInfo[playerid][aSenha], valtmp, 0, strlen(valtmp)-1, 255);
                                }
                                if(strcmp(AccountInfo[playerid][aSenha],inputtext, true ) == 0)
                                {
                                                    if(strlen(inputtext))
                                                                {
                                        for(new p = 0; p < strlen(AccountInfo[playerid][aSenha]); p++)
                                        {
                                                inputtext[p] = '?';
                                        }
                                        SetTimerEx("LogIn", LOGIN_DELAY*1000, 0, "d", playerid);
                                        printf("%s esta logando.",playername2);
                                        new key[256];
                                        new Data[256];
                                        while ( fread( UserFile , Data , sizeof( Data ) ) )

                                        {
                                                key = ini_GetKey( Data );
                                                /*if(strcmp(key, "AdminLevel", true) == 0) // This is only an example if you want to add more stuff to store in a file.

                                                {
                                                        val = ini_GetValue( Data );
                                                        AccountInfo[playerid][AdminLevel] = strval(val); // Uncommenting this will give you errors if the variable isn't defined.

                                                }
                                                */


                                        }
                                        fclose(UserFile);
                                                                        }
                                }
                                else
                                {
                                        if(strlen(inputtext))
                                        {
                                                new girismsg[256];
                                                printf("%s esta usando senha errada.",playername2);
                                                format(girismsg,256,"SENHA ERRADA\n\nSenha:");
                                                ShowPlayerDialog(playerid,12347,DIALOG_STYLE_INPUT,"Login",girismsg,"Login","Quit");
                                                login[playerid] = 1;
                                                registro[playerid] = 0;
                                                fclose(UserFile);
                                                return 1;
                                        }
                                }
                                if(!strlen(inputtext))
                                {
                                        new girismsg[256];
                                        printf("%s nao esta entrando com senha.",playername2);
                                        format(girismsg,256,"SENHA ERRADA\n\nSenha:");
                                        ShowPlayerDialog(playerid,12347,DIALOG_STYLE_INPUT,"Login",girismsg,"Login","Quit");
                                        login[playerid] = 1;
                                        registro[playerid] = 0;
                                        fclose(UserFile);
                                        return 1;
                                }
                        }
                }
                if(dialogid == 12347)
                {
                        Encrypt(inputtext);
                        new string2[128];
                        new playername2[MAX_PLAYER_NAME];
                        GetPlayerName(playerid, playername2, sizeof(playername2));
                        format(string2, sizeof(string2), ACCOUNTS_FOLDER, playername2);
                        new File: UserFile = fopen(string2, io_read);
                        if ( UserFile )
                        {
                                new PassData[256];
                                new keytmp[256], valtmp[256];
                                fread( UserFile , PassData , sizeof( PassData ) );
                                keytmp = ini_GetKey( PassData );
                                if( strcmp( keytmp , "Senha" , true ) == 0 )
                                {
                                        valtmp = ini_GetValue( PassData );
                                        strmid(AccountInfo[playerid][aSenha], valtmp, 0, strlen(valtmp)-1, 255);
                                }
                                if(strcmp(AccountInfo[playerid][aSenha],inputtext, true ) == 0)
                                {
                                                    if(strlen(inputtext))
                                                                {
                                        for(new p = 0; p < strlen(AccountInfo[playerid][aSenha]); p++)
                                        {
                                                inputtext[p] = '?';
                                        }
                                        SetTimerEx("LogIn", LOGIN_DELAY*1000, 0, "d", playerid);
                                        printf("%s esta logando.",playername2);
                                        new key[256];
                                        new Data[256];
                                        while ( fread( UserFile , Data , sizeof( Data ) ) )

                                        {
                                                key = ini_GetKey( Data );
                                                /*if(strcmp(key, "AdminLevel", true) == 0) // Este й apenas um exemplo, se vocк quiser acrescentar mais coisas para guardar em um arquivo.

                                                {
                                                        val = ini_GetValue( Data );
                                                        AccountInfo[playerid][AdminLevel] = strval(val); // Descomentando isso vai lhe dar erros se a variбvel nгo estб definida.

                                                }
                                                */


                                        }
                                        fclose(UserFile);
                                                                        }
                                }
                                else
                                {
                                        if(strlen(inputtext))
                                        {
                                                new girismsg[256];
                                                printf("%s esta errando a senha.",playername2);
                                                format(girismsg,256,"SENHA ERRADA\n\nSenha:");
                                                ShowPlayerDialog(playerid,12347,DIALOG_STYLE_INPUT,"Login",girismsg,"Login","Quit");
                                                login[playerid] = 1;
                                                registro[playerid] = 0;
                                                fclose(UserFile);
                                                return 1;
                                        }
                                }
                                if(!strlen(inputtext))
                                {
                                        new girismsg[256];
                                        printf("%s did not enter the Senha.",playername2);
                                        format(girismsg,256,"SENHA ERRADA\n\nSenha:");
                                        ShowPlayerDialog(playerid,12347,DIALOG_STYLE_INPUT,"Login",girismsg,"Login","Quit");
                                        login[playerid] = 1;
                                        registro[playerid] = 0;
                                        fclose(UserFile);
                                        return 1;
                                }
                        }

                }
        }
        else return Kick(playerid);
        return 0;
}

public OnPlayerDeath(playerid, killerid, reason)
{
        return 1;
}

public OnVehicleSpawn(vehicleid)
{
        return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
        return 1;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
        return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
        return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
        return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
        return 1;
}

public OnPlayerLeaveCheckpoint(playerid)
{
        return 1;
}

public OnPlayerEnterRaceCheckpoint(playerid)
{
        return 1;
}

public OnPlayerLeaveRaceCheckpoint(playerid)
{
        return 1;
}

public OnRconCommand(cmd[])
{
        return 1;
}

public OnObjectMoved(objectid)
{
        return 1;
}

public OnPlayerObjectMoved(playerid, objectid)
{
        return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
        return 1;
}

public OnPlayerSelectedMenuRow(playerid, row)
{
        return 1;
}

public OnPlayerExitedMenu(playerid)
{
        return 1;
}

stock ini_GetKey( line[] )
{
        new keyRes[256];
        keyRes[0] = 0;
        if ( strfind( line , "=" , true ) == -1 ) return keyRes;
        strmid( keyRes , line , 0 , strfind( line , "=" , true ) , sizeof( keyRes) );
        return keyRes;
}

stock ini_GetValue( line[] )
{
        new valRes[256];
        valRes[0]=0;
        if ( strfind( line , "=" , true ) == -1 ) return valRes;
        strmid( valRes , line , strfind( line , "=" , true )+1 , strlen( line ) , sizeof( valRes ) );
        return valRes;
}

public LogIn(playerid)
{
        AccountInfo[playerid][aLogged] = 1;
        registro[playerid] = 0;
        login[playerid] = 0;
        return 1;
}

public OnPlayerUpdate(playerid)
{
        if(IsPlayerConnected(playerid))
        {
                if(AccountInfo[playerid][aLogged] == 1)
                {
                        new string3[128];
                        new playername3[MAX_PLAYER_NAME];
                        GetPlayerName(playerid, playername3, sizeof(playername3));
                        format(string3, sizeof(string3), ACCOUNTS_FOLDER, playername3);
                        new ip[20];
                        GetPlayerIp(playerid,ip,sizeof(ip));
                        new File: hFile = fopen(string3, io_write);
                        if (hFile)
                        {
                                new var[128];
                                format(var, 128, "Senha=%s\n", AccountInfo[playerid][aSenha]);fwrite(hFile, var);
                                format(var, 128, "IP=%s\n",ip);fwrite(hFile, var);
                                fclose(hFile);
                        }
                }
        }
        return 1;
}

Encrypt(string[])
{
        for(new x=0; x < strlen(string); x++)
        {
                string[x] += (3^x) * (x % 15);
                if(string[x] > (0xff))
                {
                        string[x] -= 256;
                }
        }
}
Ou se preferir : http://pastebin.com/CXA91gA7
Ajuda onde й procurei e n achei
Reply
#2

Aqui у
pawn Код:
#define ACCOUNTS_FOLDER             "%s.ini"
Reply
#3

mude essa linha

pawn Код:
#define ACCOUNTS_FOLDER             "%s.ini"
para


pawn Код:
#define ACCOUNTS_FOLDER             "contas/%s.ini"
Reply
#4

AFS MANO NA MORAL VAI SE FERRAR AGAMASTER PARA DE PEDIR AJUDA CARA USA A WIKI QUE SACO :@
Reply
#5

Desculpa, й porque eu pensei que todos os FS que salvavam arquivos tinham essa linha:
pawn Код:
format(File, 56, "Tempo Jogado/%s.txt", Nome);
Desculpa
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)