Problem with /login and /register
#1

Hello everyone

I have a little problem with my registration system. Ok the following problems:

- When I type in /register it says I am not logged in
- When I type /login it says I am not registered

Itґs confusing cause I am already registered and it says I am automatically logged it.
So if any one can find the problem, I would be very grateful
[All usefull help or solve the problem-->Add to my credits ingame]

pawn Код:
if(PlayerInfo[playerid][LoggedIn] == 0 && PlayerInfo[playerid][Registered] == 1)
    {
        if (strcmp( cmd, "/login", true) != 0)
        {
          SendClientMessage(playerid,COLOR_BRIGHTRED,"* You cannot use commands when you aren't logged in! Please use /login to login onto your account.");
            return true;
        }
    }

    if(PlayerInfo[playerid][Registered] == 0 && PlayerInfo[playerid][LoggedIn] == 0)
    {
        if (strcmp( cmd, "/register", true) != 0)
        {
        SendClientMessage(playerid,COLOR_BRIGHTRED,"* You cannot use commands because you aren't registered! Please use /register to create an account.");
            return true;
        }
    }
pawn Код:
dcmd_register(playerid, params[])
{
    new pName[24], PlayerFile[50], plrIP[50];
    GetPlayerName(playerid, pName, sizeof(pName));
    format(PlayerFile, sizeof(PlayerFile), "/accounts/%s.ini", pName);
    GetPlayerIp(playerid, plrIP, sizeof(plrIP));

    if(dini_Exists(PlayerFile))
    {
        PlayerInfo[playerid][Registered] = 1;
        PlayerInfo[playerid][LoggedIn] = 0;
      SendClientMessage(playerid, COLOR_BRIGHTRED, "You have already registered! Please use /login to login or choose another nickname.");
    }

    if(!dini_Exists(PlayerFile))
    {
        if (!strlen(params)) return SendClientMessage(playerid, COLOR_BRIGHTRED, "ERROR: Usage: /register [password]");

    dini_Create(PlayerFile);
    dini_IntSet(PlayerFile, "Registered", 0);
    dini_IntSet(PlayerFile, "LoggedIn", 0);
        dini_Set(PlayerFile, "Password", MD5_Hash(params));
        dini_Set(PlayerFile, "PlayerIP", plrIP);
    dini_IntSet(PlayerFile, "AdminLevel", 0);
    dini_IntSet(PlayerFile, "Deaths", 0);
    dini_IntSet(PlayerFile, "Kills", 0);
        dini_IntSet(PlayerFile, "Money", 0);

    SendClientMessage(playerid, COLOR_GREEN, "You have succesfully registered, you have been automatically logged in.");

    PlayerInfo[playerid][Registered] = 1;
    PlayerInfo[playerid][LoggedIn] = 1;

    }
    return 1;
}

dcmd_login(playerid, params[])
{
    new pName[24], PlayerFile[50], Pass[256], plrIP[50];
    GetPlayerName(playerid, pName, sizeof(pName));
    format(PlayerFile, sizeof(PlayerFile), "/accounts/%s.ini", pName);

    if(PlayerInfo[playerid][LoggedIn] == 1) return SendClientMessage(playerid, COLOR_BRIGHTRED, "ERROR: You are already logged in!");
    if(PlayerInfo[playerid][Registered] == 0) return SendClientMessage(playerid, COLOR_BRIGHTRED, "ERROR: You are not registered! Use /register to register.");
    if(sscanf(params, "s", Pass)) return SendClientMessage(playerid, COLOR_BRIGHTRED, "Usage: /login [password]");

    Pass = dini_Get(PlayerFile, "Password");

    if(!strcmp(MD5_Hash(params), Pass, true))
    {
        GetPlayerIp(playerid, plrIP, sizeof(plrIP));
      dini_Set(PlayerFile, "PlayerIP", plrIP);
        SendClientMessage(playerid, COLOR_GREEN, "You have been succesfully logged in");
        PlayerInfo[playerid][LoggedIn] = 1;
        PlayerInfo[playerid][AdminLevel] = dini_Int(PlayerFile, "AdminLevel");
        PlayerInfo[playerid][Kills] = dini_Int(PlayerFile, "Kills");
        PlayerInfo[playerid][Deaths] = dini_Int(PlayerFile, "Deaths");
        SetPlayerMoney(playerid, dini_Int(PlayerFile, "Money"));
    }
    else
    {
        new str[256];
        WrongPassword[playerid]++;

        if(WrongPassword[playerid] >= 3)
        {
          new year, month, day; getdate(year, month, day);
          new hour, minute, second; gettime(hour, minute, second);
          new str2[256], string[256];
          format(str2, sizeof(str2), "* %s has been kicked: Failed to login.", pName);
          SendClientMessageToAll(COLOR_BRIGHTRED, str2);
          Kick(playerid);
          new File:KickFile = fopen("KickLog.txt", io_append);
            format(string, sizeof string, "[%d/%d/%d]-[%d:%d:%d]: %s has been kicked by the server. [Reason: Entered an invalid password 3 times]\r\n", year, month, day, hour, minute, second, pName);
            fwrite(KickFile, string);
            fclose(KickFile);
        }

        format(str, sizeof(str), "Invalid password. %d/3 tries left.", WrongPassword[playerid]);
        SendClientMessage(playerid, COLOR_BRIGHTRED, str);
    }
    return 1;
}
Reply


Messages In This Thread
Problem with /login and /register - by Flashy - 03.06.2010, 16:14
Re: Problem with /login and /register - by MastahServers - 03.06.2010, 16:18
Re: Problem with /login and /register - by Flashy - 03.06.2010, 16:18
Re: Problem with /login and /register - by Flashy - 03.06.2010, 17:05
Re: Problem with /login and /register - by FUNExtreme - 03.06.2010, 17:09
Re: Problem with /login and /register - by Flashy - 03.06.2010, 17:16
Re: Problem with /login and /register - by FUNExtreme - 03.06.2010, 17:24
Re: Problem with /login and /register - by Flashy - 03.06.2010, 18:14
Re: Problem with /login and /register - by FUNExtreme - 03.06.2010, 18:26
Re: Problem with /login and /register - by Flashy - 03.06.2010, 18:40
Re: Problem with /login and /register - by Infinity - 03.06.2010, 19:11

Forum Jump:


Users browsing this thread: 1 Guest(s)