Dini resets
#1

Hello everyone. I have scripted a dini registration, but I have a problem. If player relogs, his account variables resets to 0. Maybe there is a solution?
Reply
#2

Show us some codes
Reply
#3

pawn Код:
public OnPlayerDisconnect(playerid, reason)
{
    new targetName[MAX_PLAYER_NAME], file[256];
    GetPlayerName(playerid, targetName, sizeof(targetName));
    format(file, sizeof(file), USER_FILES, targetName);
    if(PlayerLogged[playerid] == 1)
    {
        dini_IntSet(file, "AdminLevel", PlayerInfo[playerid][AdminLevel]);
        dini_IntSet(file, "Money", PlayerInfo[playerid][Money]);
        dini_IntSet(file, "Skin", PlayerInfo[playerid][Skin]);
        dini_IntSet(file, "Origin", PlayerInfo[playerid][Origin]);
        dini_IntSet(file, "Age", PlayerInfo[playerid][Age]);
        dini_IntSet(file, "Tutorial", PlayerInfo[playerid][Tutorial]);
        dini_IntSet(file, "Job", PlayerInfo[playerid][Job]);
        dini_IntSet(file, "CarParts", PlayerInfo[playerid][CarParts]);
        dini_IntSet(file, "PayCheck", PlayerInfo[playerid][PayCheck]);
        dini_IntSet(file, "WorkHours", PlayerInfo[playerid][WorkHours]);
    }
    PlayerLogged[playerid] = 0;
    OfferedPrice[playerid] = 0;
    Offered[playerid] = 0;
    AlreadyWorking[playerid] = 0;
    LeftJobVehicle[playerid] = 0;
    return 1;
}
pawn Код:
public OnPlayerUpdate(playerid)
{
    new targetName[MAX_PLAYER_NAME], file[256];
    GetPlayerName(playerid, targetName, sizeof(targetName));
    format(file, sizeof(file), USER_FILES, targetName);
    if(PlayerLogged[playerid] == 1)
    {
        dini_IntSet(file, "AdminLevel", PlayerInfo[playerid][AdminLevel]);
        dini_IntSet(file, "Money", PlayerInfo[playerid][Money]);
        dini_IntSet(file, "Skin", PlayerInfo[playerid][Skin]);
        dini_IntSet(file, "Origin", PlayerInfo[playerid][Origin]);
        dini_IntSet(file, "Age", PlayerInfo[playerid][Age]);
        dini_IntSet(file, "Tutorial", PlayerInfo[playerid][Tutorial]);
        dini_IntSet(file, "Job", PlayerInfo[playerid][Job]);
        dini_IntSet(file, "CarParts", PlayerInfo[playerid][CarParts]);
        dini_IntSet(file, "PayCheck", PlayerInfo[playerid][PayCheck]);
        dini_IntSet(file, "WorkHours", PlayerInfo[playerid][WorkHours]);
    }
    return 1;
}
pawn Код:
case REGISTRATION:
            {
                if(!strlen(inputtext))
                {
                    SendClientMessage(playerid, GREY, "[Kļūda]: Paroles lauks nedrīkst būt neaizpildīts.");
                    return ShowPlayerDialog(playerid, REGISTRATION, DIALOG_STYLE_INPUT, "Reģistrācija", "Zemāk ievadi vēlamo paroli, lai piereģistētu profilu.", "Apstiprināt", "");
                }
                new targetName[MAX_PLAYER_NAME], file[256];
                GetPlayerName(playerid, targetName, sizeof(targetName));
                format(file, sizeof(file), USER_FILES, targetName);
                dini_Create(file);
                dini_IntSet(file, "Password", udb_hash(inputtext));
                dini_IntSet(file, "AdminLevel", PlayerInfo[playerid][AdminLevel] = 0);
                dini_IntSet(file, "Money", PlayerInfo[playerid][Money] = 300);
                dini_IntSet(file, "Skin", PlayerInfo[playerid][Skin] = 0);
                dini_IntSet(file, "Origin", PlayerInfo[playerid][Origin] = 0);
                dini_IntSet(file, "Age", PlayerInfo[playerid][Age] = 0);
                dini_IntSet(file, "Tutorial", PlayerInfo[playerid][Tutorial] = 0);
                dini_IntSet(file, "Job", PlayerInfo[playerid][Job] = 0);
                dini_IntSet(file, "CarParts", PlayerInfo[playerid][CarParts] = 0);
                dini_IntSet(file, "PayCheck", PlayerInfo[playerid][PayCheck] = 0);
                dini_IntSet(file, "WorkHours", PlayerInfo[playerid][WorkHours] = 0);
                ClearChatbox(playerid);
                SendClientMessage(playerid, WHITE, "[Info]: Jaunais konts tika veiksmīgi saglabāts servera datubāzē.");
                ShowPlayerDialog(playerid, ORIGIN, DIALOG_STYLE_LIST, "Dzinums", "Vīrietis\nSieviete", "Apstiprināt", "");
                SetSpawnInfo(playerid, 0, 12, -1971.9584, 146.1756, 27.6875, 143.1446, 0, 0, 0, 0, 0, 0);
                SpawnPlayer(playerid);
                PlayerLogged[playerid] = 1;
            }
            case AUTHORIZATION:
            {
                if(!strlen(inputtext))
                {
                    SendClientMessage(playerid, GREY, "[Kļūda]: Paroles lauks nedrīkst būt neaizpildīts.");
                    return ShowPlayerDialog(playerid, AUTHORIZATION, DIALOG_STYLE_INPUT, "Autorizācija","Zemāk ievadi savu paroli, lai autorizētos profilā.", "Apstiprināt", "");
                }
                new targetName[MAX_PLAYER_NAME], file[256], password;
                GetPlayerName(playerid, targetName, sizeof(targetName));
                format(file, sizeof(file), USER_FILES, targetName);
                password = dini_Int(file, "Password");
                if(udb_hash(inputtext) != password)
                {
                    SendClientMessage(playerid, GREY, "[Kļūda]: Ievadītā parole nav pareiza. Pārbaudi vēlreiz.");
                    ShowPlayerDialog(playerid, AUTHORIZATION, DIALOG_STYLE_INPUT, "Autorizācija","Zemāk ievadi savu paroli, lai autorizētos profilā.", "Apstiprināt", "");
                }
                else
                {
                    ClearChatbox(playerid);
                    PlayerLogged[playerid] = 1;
                    PlayerInfo[playerid][AdminLevel] = dini_Int(file, "AdminLevel");
                    GivePlayerMoney(playerid, dini_Int(file, "Money")-GetPlayerMoney(playerid));
                    SendClientMessage(playerid, ORANGE, "[Info]: Esi laipni lūgts mūsu serverī.");
                    SetSpawnInfo(playerid, 0, 12, -1971.9584, 146.1756, 27.6875, 143.1446, 0, 0, 0, 0, 0, 0);
                    SpawnPlayer(playerid);
                }
            }
Reply
#4

Bump.
Reply
#5

Bump.
Reply
#6

why you gonna change Interger every time when player updates. just delete the dini code OnPlayerUpdate. and leave OnPlayerDisconnect alone (i meant don't remove it)
Reply
#7

It doesn't help. Any solutions?
Reply
#8

But at least is saving the file with Password,AdminLevel...etc
Show me how you load that,from OnPlayerConnect
Reply
#9

pawn Код:
public OnPlayerConnect(playerid)
{
    ClearChatbox(playerid);
    new targetName[MAX_PLAYER_NAME], file[256];
    GetPlayerName(playerid, targetName, sizeof(targetName));
    format(file, sizeof(file), USER_FILES, targetName);
    PlayerLogged[playerid] = 0;
    if(!dini_Exists(file))
    {
        ShowPlayerDialog(playerid, REGISTRATION, DIALOG_STYLE_INPUT, "Reģistrācija", "Zemāk ievadi vēlamo paroli, lai piereģistētu profilu.", "Apstiprināt", "");
    }
    if(fexist(file))
    {
        ShowPlayerDialog(playerid, AUTHORIZATION, DIALOG_STYLE_INPUT, "Autorizācija", "Zemāk ievadi savu paroli, lai autorizētos profilā.", "Apstiprināt", "");
    }
    SetTimerEx("PlayerCamera", 1000, false, "i", playerid);
    return 1;
}
Reply
#10

BUMP.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)