[HELP] Saving something causes crash?
#1

I have a login/register command. I hosted the server to linux pc, now it doesn't save anything to scriptfiles, crashes the server.

here is the login code:
pawn Код:
dcmd_login(playerid, params[])
{
    new PlayerFile[50], Pass[256], plrIP[50];
    format(PlayerFile, sizeof(PlayerFile), "/users/%s.ini", pName(playerid));

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

    Pass = dini_Get(PlayerFile, "Password");

    if(!strcmp(MD5_Hash(params), Pass, true))
    {
        new str[256];
        GetPlayerIp(playerid, plrIP, sizeof(plrIP));
        dini_Set(PlayerFile, "PlayerIP", plrIP);
        SendClientMessage(playerid, mgreen, "* You have been succesfully logged in!");
        PlayerInfo[playerid][LoggedIn] = 1;
        PlayerInfo[playerid][PasswordChangings] = dini_Int(PlayerFile, "PasswordChangings");
        PlayerInfo[playerid][AdminLevel] = dini_Int(PlayerFile, "AdminLevel");
        PlayerInfo[playerid][Kills] = dini_Int(PlayerFile, "Kills");
        PlayerInfo[playerid][Deaths] = dini_Int(PlayerFile, "Deaths");
        PlayerInfo[playerid][Skin] = dini_Int(PlayerFile, "Skin");
        PlayerInfo[playerid][Madnesswin] = dini_Int(PlayerFile, "Madnesswin");
        PlayerInfo[playerid][Racewin] = dini_Int(PlayerFile, "Racewin");
        PlayerInfo[playerid][DuelKills] = dini_Int(PlayerFile, "DuelKills");
        PlayerInfo[playerid][DuelDeaths] = dini_Int(PlayerFile, "DuelDeaths");
        PlayerInfo[playerid][VIP] = dini_Int(PlayerFile, "VIP");
        SetPlayerScore(playerid,PlayerInfo[playerid][Kills]);
        if(PlayerInfo[playerid][Skin] != 300) SetPlayerSkin(playerid,PlayerInfo[playerid][Skin]);
        OnRequestClass[playerid] = 0;
        SpawnPlayer(playerid);
        format(str,sizeof(str), "Mod Message: %s (ID: %d) has logged in.", pName(playerid), playerid);
        SendModMsg(mwhite, str);
    }
    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(playerid));
            SendClientMessageToAll(COLOR_ORANGE, str2);
            Kick(playerid);
            new File:KickFile = fopen("/logs/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(playerid));
            fwrite(KickFile, string);
            fclose(KickFile);
        }

        format(str, sizeof(str), "Invalid password. %d/3 tries left.", WrongPassword[playerid]);
        SendClientMessage(playerid, mbrightred, str);
    }
    return 1;
}
Anyone help?
Reply
#2

Any ideas? :S
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)