Quantcast
Channel: SA-MP Forums
Viewing all articles
Browse latest Browse all 18226

Incorrect password after exiting

$
0
0
Hey guys.
I'm currently writing a game mode with a simple y_ini register/login system.
The problem is when I exit the game and reconnect to the server again, the server says my password is incorrect (dialog). Can you help me with this one? Also, loading the saved position is not working properly (spawning at 0,0,0);
Code:

#include <a_samp>
#include <zcmd>
#include <YSI\y_ini>
#include <fixchars.h>
#include <streamer>
main( ) { }
#define COLOR_WHITE 0xFFFFFFAA
#define PATH "/Users/%s.ini"
#define dialog_reg 1
#define dialog_log 2
stock UserPath(playerid)
{
        new string[128],playername[MAX_PLAYER_NAME];
        GetPlayerName(playerid,playername,sizeof(playername));
        format(string,sizeof(string),PATH,playername);
        return string;
}

stock udb_hash(buf[])
{
        new length=strlen(buf);
    new s1 = 1;
    new s2 = 0;
    new n;
    for (n=0; n<length; n++)
    {
      s1 = (s1 + buf[n]) % 65521;
      s2 = (s2 + s1)    % 65521;
    }
    return (s2 << 16) + s1;
}
enum pInfo
{
        pJelszo, //PASSWORD
        Float:pPosX,
        Float:pPosY,
        Float:pPosZ,
        Float:pPosA
}
new PlayerInfo[MAX_PLAYERS][pInfo];
forward LoadUser_data(playerid, name[], value[]);
public LoadUser_data(playerid, name[], value[])
{
        INI_Int("Jelszó", PlayerInfo[playerid][pJelszo]); //PASSWORD
        INI_Float("PosX", PlayerInfo[playerid][pPosX]);
        INI_Float("PosY", PlayerInfo[playerid][pPosY]);
        INI_Float("PosZ", PlayerInfo[playerid][pPosZ]);
        INI_Float("PosA", PlayerInfo[playerid][pPosA]);
        return 1;
}
public OnPlayerConnect(playerid)
{
        if(fexist(UserPath(playerid)))
        {
                INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
                ShowPlayerDialog(playerid, dialog_log, DIALOG_STYLE_INPUT, "{FFFFFF}Bejelentkezés", "Írd be a jelszavad a bejelentkezéshez:", "Tovább", "Kilépés"); //LOGIN DIALOG
        }
        else
        {
            ShowPlayerDialog(playerid, dialog_reg, DIALOG_STYLE_INPUT, "{FFFFFF}Regisztráció", "Írj be egy kívánt jelszót:", "Tovább", "Kilépés"); //REGISTER DIALOG
        }
        return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
        new INI:File = INI_Open(UserPath(playerid));
        new Float:x, Float:y, Float:z, Float:a;
        GetPlayerPos(playerid, x, y, z);
        GetPlayerFacingAngle(playerid, a);
        INI_SetTag(File, "Data");
        INI_WriteFloat(File, "PosX", x);
        INI_WriteFloat(File, "PosY", y);
        INI_WriteFloat(File, "PosZ", z);
        INI_WriteFloat(File, "PosA", a);
        INI_Close(File);
        return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
        if(dialogid == dialog_reg)
        {
            if(!response) return Kick(playerid);
            if(response)
            {
                if(!strlen(inputtext)) return ShowPlayerDialog(playerid, dialog_reg, DIALOG_STYLE_INPUT, "{FFFFFF}Regisztráció", "Az általad megadott jelszó hibás karaktert tartalmaz.\nPróbálj meg egy másikat:", "Tovább", "Kilépés"); //BAD CHARS IN PASSWORD
                new INI:File = INI_Open(UserPath(playerid));
                INI_SetTag(File, "Data");
                INI_WriteInt(File, "Jelszó", udb_hash(inputtext)); //PASSWORD
                INI_WriteInt(File, "Admin", 0);
                        INI_WriteInt(File, "Szint", 1);
                        INI_WriteInt(File, "Bank", 0);
                INI_WriteInt(File, "Munkanélküli", 1);
                        INI_WriteInt(File, "Rendőr", 0);
                        INI_WriteInt(File, "Mentős", 0);
                        INI_WriteInt(File, "Tűzoltó", 0);      //these are random stuff
                        INI_WriteInt(File, "Szerelő", 0);
                        INI_WriteInt(File, "Taxis", 0);
                        INI_WriteInt(File, "Rádiós", 0);
                        INI_WriteInt(File, "Buszos", 0);
                        INI_WriteInt(File, "Pizzafutár", 0);
                        INI_WriteInt(File, "Úttisztító", 0);
                        INI_WriteInt(File, "Halász", 0);
                        INI_WriteInt(File, "Favágó", 0);
                        INI_WriteInt(File, "Fűnyírós", 0);
                        INI_WriteInt(File, "Ételszállító", 0);
                        INI_WriteInt(File, "Csomagkihordó", 0);
                        INI_WriteInt(File, "Postás", 0);
                        INI_WriteInt(File, "Villanyszerelő", 0);
                        INI_WriteInt(File, "Kukás", 0);
                        INI_WriteInt(File, "Farmer", 0);
                        INI_WriteInt(File, "Kőműves", 0);
                        INI_WriteInt(File, "Mérnök", 0);
                INI_Close(File);
                ShowPlayerDialog(playerid, dialog_sk, DIALOG_STYLE_MSGBOX, "{FFFFFF}RP-kérdés 1/7", "{FFFFFF}Hogyan rövidítjük a következőt?:\nEgy játékost a kezdőhelyén megölni.","SK","DB"); //stuff
            }
        }
        if(dialogid == dialog_log)
        {
            if(!response) Kick(playerid);
            if(response)
            {
                if(udb_hash(inputtext) == PlayerInfo[playerid][pJelszo])
                {
                            INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
                            ShowPlayerDialog(playerid, dialog_logsucc, DIALOG_STYLE_MSGBOX, "{FFFFFF}Bejelentkezés", "{FFFFFF}Sikeresen bejelentkeztél.","Tovább","");
                                        GivePlayerMoney(playerid, PlayerInfo[playerid][pPenz]);
                                        admin[playerid] = PlayerInfo[playerid][pAdmin];
                                        nem[playerid] = PlayerInfo[playerid][pNem];
                                        kor[playerid] = PlayerInfo[playerid][pKor];
                                        szarmazas[playerid] = PlayerInfo[playerid][pSzarmazas];
                                        munkanelkuli[playerid] = PlayerInfo[playerid][pMunkanelkuli];
                                        rendor[playerid] = PlayerInfo[playerid][pRendor];
                                        mentos[playerid] = PlayerInfo[playerid][pMentos];
                                        tuzolto[playerid] = PlayerInfo[playerid][pTuzolto];
                                        szerelo[playerid] = PlayerInfo[playerid][pSzerelo];
                                        taxis[playerid] = PlayerInfo[playerid][pTaxis];
                                        radios[playerid] = PlayerInfo[playerid][pRadios];
                                        buszos[playerid] = PlayerInfo[playerid][pBuszos];
                                        pizzafutar[playerid] = PlayerInfo[playerid][pPizzafutar];
                                        uttisztito[playerid] = PlayerInfo[playerid][pUttisztito];
                                        halasz[playerid] = PlayerInfo[playerid][pHalasz];
                                        favago[playerid] = PlayerInfo[playerid][pFavago];
                                        funyiros[playerid] = PlayerInfo[playerid][pFunyiros];
                                        etelszallito[playerid] = PlayerInfo[playerid][pEtelszallito];
                                        csomagkihordo[playerid] = PlayerInfo[playerid][pCsomagkihordo];
                                        postas[playerid] = PlayerInfo[playerid][pPostas];
                                        villanyszerelo[playerid] = PlayerInfo[playerid][pVillanyszerelo];
                                        kukas[playerid] = PlayerInfo[playerid][pKukas];
                                        farmer[playerid] = PlayerInfo[playerid][pFarmer];
                                        komuves[playerid] = PlayerInfo[playerid][pKomuves];
                                        mernok[playerid] = PlayerInfo[playerid][pMernok];
                                        SpawnPlayer(playerid);
                                        SetPlayerPos(playerid, PlayerInfo[playerid][pPosX], PlayerInfo[playerid][pPosY], PlayerInfo[playerid][pPosZ]);
                                        SetPlayerFacingAngle(playerid, PlayerInfo[playerid][pPosA]);
                        }
                else
                        {
                                ShowPlayerDialog(playerid, dialog_log, DIALOG_STYLE_PASSWORD, "{FFFFFF}Bejelentkezés", "{FFFFFF}Hibás jelszó!","Tovább","Kilépés");
                        }
                        return 1;
                }
        } //NOW SOMETHING IS NOT WORKING UP HERE
        return 1;
}


Viewing all articles
Browse latest Browse all 18226

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>