STILL can't fix password saving system[need big help]
#1

FIXED by Babul Credits to HIM
Reply
#2

pawn Код:
if (dialogid == 1)
    {
        new name[MAX_PLAYER_NAME], file[300], string[300];
        GetPlayerName(playerid, name, sizeof(name));
        format(file, sizeof(file), SERVER_USER_FILE, name);
        if(!response) return Kick(playerid);
        if(strlen(inputtext) < 4)
        {
            format(string, sizeof (string),""embed_white"Welcome "embed_blue"%s"embed_white"\n\nPlease register your account:\nPassword must be min 4 characters", name);
            return ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD,""embed_blue"Valley Gamming "embed_white"Register", string,"Register","Kick");
        }
        dini_Create(file);
        dini_IntSet(file, "Password", udb_hash(inputtext));
        dini_IntSet(file, "AdminLevel",PlayerInfo[playerid][pAdminLevel]);
        dini_IntSet(file, "VIP",PlayerInfo[playerid][pVIP]);
        dini_IntSet(file, "Money",PlayerInfo[playerid][pCash]);
        dini_IntSet(file, "Score",PlayerInfo[playerid][pScore]);
        dini_IntSet(file, "Kills",PlayerInfo[playerid][pKills]);
        dini_IntSet(file, "Deaths",PlayerInfo[playerid][pDeaths]);
        format(string, 128, ""embed_blue"[SYSTEM]"embed_white"%s thanks for registring in our TDM.Enjoy playing!", name);
        ShowPlayerDialog(playerid,1337, DIALOG_STYLE_MSGBOX,"Valley Gamming||Account Registration", string,"Ok","");
        gPlayerLogged[playerid] = 1;
    }
Try this one its from my old GM
Reply
#3

you have other enums not like me but i will test the Password one thanks
Reply
#4

still not working..what should i edite ? cause whene i edite the pw to Password i edite it in "onplayerdisconnect"+"the login dialog".
Reply
#5

Remember i gave you the code with udb_hash with your enum's on your last thread, what about it?
Reply
#6

Indent Your Code Please
Reply
#7

yes i remember and i changed all the "num_hash" to "udb_hash" + add the stock and don't work , maybe i must show to you the enums :
Код:
enum pInfo {
    AdminLevel,
    VipLevel,
    score,
    cash,
    pw,
}
Reply
#8

THIS IS THE FULL REGISTRATION SYSTEM: Check the "pw" one maybe there are an error :
pawn Код:
#define FILTERSCRIPT

#include <a_samp>
#include <dutils>
#include <Dini>

enum pInfo {
    AdminLevel,
    level,
    cash,
    pw,
}
new PlayerInfo[MAX_PLAYERS][pInfo];



public OnFilterScriptInit()
{
    print("\n--------------------------------------");
    print("Login & Register system by Alae");
    print("--------------------------------------\n");
    return 1;
}

public OnFilterScriptExit()
{
    return 1;
}

public OnGameModeExit()
{
    return 1;
}


public OnPlayerConnect(playerid)
{
    new name[MAX_PLAYER_NAME], file[128];
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);
    format(file, sizeof(file), "ZMRP/Users/%s.ini", name);
    if(!fexist(file)) {
        SendClientMessage(playerid, -1, "You are not registered, please register");
        ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Please Register", "Enter Your Password Below", "Register", "Cancel");
    }
    else {
        new str[128];
        GetPlayerName(playerid, name, MAX_PLAYER_NAME);
        format(str, sizeof(str), "Welcome Back ~r~%s. Enjoy!", name);
        SendClientMessage(playerid, -1, str);
        ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Please Login", "Enter Your Password Below", "Login", "Cancel");
    }
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    new file[128], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);
    format(file, sizeof(file), "ZMRP/Users/%s.ini", name);
    if(dini_Exists(file)) {
        dini_IntSet(file, "pw", PlayerInfo[playerid][pw]);
        dini_IntSet(file, "AdminLevel", PlayerInfo[playerid][AdminLevel]);
        dini_IntSet(file, "cash", PlayerInfo[playerid][cash]);
        dini_IntSet(file, "level", PlayerInfo[playerid][level]);
    }
    return 1;
}

public OnPlayerRequestSpawn(playerid)
{

    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == 1) {
        new file[128], name[MAX_PLAYER_NAME], str[128];
        GetPlayerName(playerid, name, MAX_PLAYER_NAME);
        format(file, sizeof(file), "ZMRP/Users/%s.ini", name);
        if(response) {
            if(strlen(inputtext)) {
                dini_Create(file);
                dini_IntSet(file, "pw", num_hash(inputtext));
                dini_IntSet(file, "AdminLevel", PlayerInfo[playerid][AdminLevel]);
                dini_IntSet(file, "cash", PlayerInfo[playerid][cash]);
                dini_IntSet(file, "level", PlayerInfo[playerid][level]);
                format(str, sizeof(str), "You are registered as ~r~%s. Your password is ~r~%s. /changepass to change it", name, inputtext);
                SendClientMessage(playerid, -1, str);
                PlayerInfo[playerid][level] = dini_Int(file, "level");
                PlayerInfo[playerid][cash] = dini_Int(file, "cash");
                PlayerInfo[playerid][AdminLevel] = dini_Int(file, "AdminLevel");
            }
        }
        else {
            Kick(playerid);
        }
    }
    if(dialogid == 2) {
        new file[128], name[MAX_PLAYER_NAME], str[128];
        GetPlayerName(playerid, name, MAX_PLAYER_NAME);
        format(str, sizeof(str), "ZMRP/Users/%s.ini", name);
        if(response) {
            if(strlen(inputtext)) {
                if(num_hash(inputtext) != dini_Int(file, "pw")) {
                    SendClientMessage(playerid, -1, "Wrong Password");
                    ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Please Login", "Enter Your Password Below", "Login", "Cancel");
                }
                else {
                    SendClientMessage(playerid, -1, "Succesfuly logged in");
                    PlayerInfo[playerid][level] = dini_Int(file, "level");
                    PlayerInfo[playerid][cash] = dini_Int(file, "cash");
                    GivePlayerMoney(playerid, dini_Int(file, "cash"));
                    PlayerInfo[playerid][AdminLevel] = dini_Int(file, "AdminLevel");
                }
            }
        }
        else {
            Kick(playerid);
        }
    }
    return 1;
}
EDIT : FIXED by Babul
Reply
#9

pawn Код:
enum pInfo {
    pw,
    AdminLevel,
    level,
    cash

}
new PlayerInfo[MAX_PLAYERS][pInfo];
Use this as your enum!
Reply
#10

Quote:
Originally Posted by Ballu Miaa
Посмотреть сообщение
pawn Код:
enum pInfo {
    pw,
    AdminLevel,
    level,
    cash

}
new PlayerInfo[MAX_PLAYERS][pInfo];
Use this as your enum!
thank you for coming again and try help me
i do all that :
1-changing all "num_hash" to "udb_hash"
2-changing my enum to your one
3- still not working pw=0
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)