[DUV] Login Box
#7

Vo Postar o Meu Script:
pawn Code:
/*
Seifistration System with login menu by Seif
GUI modification by erorcun
*/

/*x---------------------------------Important-------------------------------------x*/
//**INCLUDES**//
#include <a_samp>
//**PRAGMAS**//

//**MISC**//

/*x---------------------------------Defining-------------------------------------x*/
//**COLORS*//
#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       "/sAccounts/%s.ini"
#define LOGIN_DELAY         3 // Seconds. Default = 3 seconds
//**VARIABLES**//
enum aInfo
{
    aPassword[128],
    aLogged,
}
;
new AccountInfo[MAX_PLAYERS][aInfo];
new register[MAX_PLAYERS];
new login[MAX_PLAYERS];
forward LogIn(playerid);
forward OnPlayerUpdate(playerid);
/*x---------------------------------CallBacks-------------------------------------x*/
public OnGameModeInit()
{
    SendRconCommand("reloadfs Seifistration");
    return 1;
}

public OnPlayerConnect(playerid)
{
  ShowPlayerDialog(playerid, IDDODIALOGO, ESTILO DO DIALOGO, "TITULO","TEXTO","Botao1","Botao2");
  return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
    OnPlayerUpdate(playerid);
    AccountInfo[playerid][aLogged] = 0;
    register[playerid] = 0;
    login[playerid] = 0;
    return 1;
}

public OnPlayerSpawn(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,"Welcome to the server\n\n%s please open a new account\n\nEnter the new password:",name);
            ShowPlayerDialog(playerid,12345,DIALOG_STYLE_INPUT,"Register",kayitmsg,"Register","Quit");
            register[playerid] = 1;
            login[playerid] = 0;
        }
        else if (fexist(string))
        {
            new girismsg[256];
            format(girismsg,256,"Welcome to the server\n\nUser Name: %s\n\nEnter your password:",name);
            ShowPlayerDialog(playerid,12346,DIALOG_STYLE_INPUT,"Login",girismsg,"Login","Quit");
            register[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][aPassword], inputtext, 0, strlen(inputtext), 255);
                    new var[128];
                    format(var, 128, "Password=%s\n", AccountInfo[playerid][aPassword]);fwrite(hFile, var);
                    format(var, 128, "IP=%s\n",ip);fwrite(hFile, var);
                    fclose(hFile);
                    printf("%s is signed up.",playername3);
                    SendClientMessage(playerid, GREEN, "|- Have you registered. You can login now. -|");
                    new girismsg[256];
                    format(girismsg,256,"Welcome to the server\n\nUser Name: %s\n\nEnter your password:",playername3);
                    ShowPlayerDialog(playerid,12346,DIALOG_STYLE_INPUT,"Login",girismsg,"Login","Quit");
                    register[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,"Welcome to the server\n\n%s please open a new account\n\nEnter the new password:",name);
                ShowPlayerDialog(playerid,12345,DIALOG_STYLE_INPUT,"Register",kayitmsg,"Register","Quit");
                register[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 , "Password" , true ) == 0 )
                {
                    valtmp = ini_GetValue( PassData );
                    strmid(AccountInfo[playerid][aPassword], valtmp, 0, strlen(valtmp)-1, 255);
                }
                if(strcmp(AccountInfo[playerid][aPassword],inputtext, true ) == 0)
                {
                          if(strlen(inputtext))
                                {
                    for(new p = 0; p < strlen(AccountInfo[playerid][aPassword]); p++)
                    {
                        inputtext[p] = '?';
                    }
                    SetTimerEx("LogIn", LOGIN_DELAY*1000, 0, "d", playerid);
                    printf("%s is logged in.",playername2);
                    new key[256] , val[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 is used the wrong password.",playername2);
                        format(girismsg,256,"WRONG PASSWORD\n\nPlease enter your password:");
                        ShowPlayerDialog(playerid,12347,DIALOG_STYLE_INPUT,"Login",girismsg,"Login","Quit");
                        login[playerid] = 1;
                        register[playerid] = 0;
                        fclose(UserFile);
                        return 1;
                    }
                }
                if(!strlen(inputtext))
                {
                    new girismsg[256];
                    printf("%s did not enter the password.",playername2);
                    format(girismsg,256,"WRONG PASSWORD\n\nPlease enter your password:");
                    ShowPlayerDialog(playerid,12347,DIALOG_STYLE_INPUT,"Login",girismsg,"Login","Quit");
                    login[playerid] = 1;
                    register[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 , "Password" , true ) == 0 )
                {
                    valtmp = ini_GetValue( PassData );
                    strmid(AccountInfo[playerid][aPassword], valtmp, 0, strlen(valtmp)-1, 255);
                }
                if(strcmp(AccountInfo[playerid][aPassword],inputtext, true ) == 0)
                {
                          if(strlen(inputtext))
                                {
                    for(new p = 0; p < strlen(AccountInfo[playerid][aPassword]); p++)
                    {
                        inputtext[p] = '?';
                    }
                    SetTimerEx("LogIn", LOGIN_DELAY*1000, 0, "d", playerid);
                    printf("%s is logged in.",playername2);
                    new key[256] , val [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 is used the wrong password.",playername2);
                        format(girismsg,256,"WRONG PASSWORD\n\nPlease enter your password:");
                        ShowPlayerDialog(playerid,12347,DIALOG_STYLE_INPUT,"Login",girismsg,"Login","Quit");
                        login[playerid] = 1;
                        register[playerid] = 0;
                        fclose(UserFile);
                        return 1;
                    }
                }
                if(!strlen(inputtext))
                {
                    new girismsg[256];
                    printf("%s did not enter the password.",playername2);
                    format(girismsg,256,"WRONG PASSWORD\n\nPlease enter your password:");
                    ShowPlayerDialog(playerid,12347,DIALOG_STYLE_INPUT,"Login",girismsg,"Login","Quit");
                    login[playerid] = 1;
                    register[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;
    register[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, "Password=%s\n", AccountInfo[playerid][aPassword]);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;
        }
    }
}
Reply


Messages In This Thread
[DUV] Login Box - by Escallus - 16.12.2009, 13:59
Re: [DUV] Login Box - by KingstoN* - 16.12.2009, 15:00
Re: [DUV] Login Box - by RoamPT - 16.12.2009, 17:07
Re: [DUV] Login Box - by SlashPT - 16.12.2009, 17:09
Re: [DUV] Login Box - by Escallus - 16.12.2009, 18:27
Re: [DUV] Login Box - by SlashPT - 16.12.2009, 19:23
Re: [DUV] Login Box - by Escallus - 16.12.2009, 19:38
Re: [DUV] Login Box - by SlashPT - 16.12.2009, 19:46
Re: [DUV] Login Box - by Escallus - 16.12.2009, 19:58
Re: [DUV] Login Box - by SlashPT - 16.12.2009, 20:00

Forum Jump:


Users browsing this thread: 1 Guest(s)