SA-MP Forums Archive
How to erase user.ini file, when he got kicked in registration - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: How to erase user.ini file, when he got kicked in registration (/showthread.php?tid=473510)



How to erase user.ini file, when he got kicked in registration - Riwerry - 03.11.2013

Hello guys, how I can make it? I found little bug in my registration. For example, when player connects to the server, server asks him abou registration, and he press "Quit" button it will kick him. But now, he relog and it says so he is already registered. He can use now every password becouse in his .ini isn't password line. Then he'll be just normally logged. How I can make for example, so player .ini will be removed when he abort registration? Thanks.


Re: How to erase user.ini file, when he got kicked in registration - ]Rafaellos[ - 03.11.2013

This is the idea, adjust it to you'r script.

pawn Код:
new Logged[MAX_PLAYERS] = 0;

OnLogin/Register(playerid) //use it you'r loading callback
{
    //load
    Logged[playerid] = 1;
    return 1;
)

public OnPlayerDisconnect(playerid, reason)
{
    if(Logged[playerid] == 1)
    {
        //save
    }
    return 1;
}



Re: How to erase user.ini file, when he got kicked in registration - Riwerry - 03.11.2013

Mate, can you explain it little bit more? Okay now i have defined new Logged[MAX_PLAYERS] = 0; where to put next thing now? Thanks


Re: How to erase user.ini file, when he got kicked in registration - ]Rafaellos[ - 03.11.2013

Post you'r OnDialogResponse and OnPlayerDisconnect.


Re: How to erase user.ini file, when he got kicked in registration - Riwerry - 03.11.2013

pawn Код:
public OnDialogResponse (playerid, dialogid, response, listitem, inputtext[])
{
    switch (dialogid)
    {
        case DIALOG_REGISTRACIA:
        {
            if (!response) return Kick (playerid);
            return 1;
           
                if (!strlen(inputtext)) return ShowPlayerDialog (playerid, DIALOG_REGISTRACIA, DIALOG_STYLE_PASSWORD, ""FARBA_BIELA"Registrбcia",""FARBA_CERVENA"Zadal si nesprбvne heslo.\n"FARBA_BIELA"Napнљ tvoje heslo niћљie, pre registrovanie novйho ъиtu.","Potvrdiќ","Zruљiќ");
                new INI:File = INI_Open (PouzivatelovaCesta (playerid));
                new HashPass[129];
                WP_Hash (HashPass, sizeof(HashPass), inputtext);
                INI_WriteInt(File, "AdminLevel", PouzivateloveInformacie [playerid] [pAdminLevel]);
                INI_WriteString (File, "Heslo", HashPass);
                INI_WriteInt(File, "Interiйr", GetPlayerInterior (playerid));
                INI_WriteInt(File, "Skin", GetPlayerSkin (playerid));
                INI_WriteInt(File, "Peniaze", GetPlayerMoney (playerid));
                INI_WriteFloat(File, "PolohaX", PouzivateloveInformacie [playerid] [pPolohaX]);
                INI_WriteFloat(File, "PolohaY", PouzivateloveInformacie [playerid] [pPolohaY]);
                INI_WriteFloat(File, "PolohaZ", PouzivateloveInformacie [playerid] [pPolohaZ]);
                INI_WriteInt(File, "Svet", GetPlayerVirtualWorld (playerid));
                INI_WriteFloat(File, "Uhol", PouzivateloveInformacie [playerid] [pUhol]);
                INI_Close (File);
                SetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
                TogglePlayerSpectating (playerid, 0);
            }
        }

        case DIALOG_PRIHLASOVANIE:
        {
            if (!response) return Kick (playerid);
            if (response)
            {
                new HashPass [129];
                WP_Hash (HashPass, sizeof (HashPass), inputtext);
                if (strcmp (HashPass, PouzivateloveInformacie [playerid] [pHeslo]) == 0)
                {
                    INI_ParseFile (PouzivatelovaCesta (playerid), "NacitavaniePouzivatelov", .bExtra = true, .extra = playerid);
                    GivePlayerMoney (playerid, PouzivateloveInformacie [playerid] [pPeniaze]);
                    SetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
                    TogglePlayerSpectating (playerid, 0);
                }
                else
                {
                    ShowPlayerDialog (playerid, DIALOG_PRIHLASOVANIE, DIALOG_STYLE_PASSWORD,""FARBA_BIELA"Prihlбsenie",""FARBA_CERVENA"Zadal si nesprбvne heslo.\n"FARBA_BIELA"Napнљ heslo niћљie, pre prihlбsenie.","Potvrdiќ","Zruљiќ");
                }
                return 1;
            }
        }
    }
    return 1;
}
pawn Код:
public OnPlayerDisconnect (playerid, reason)
{
    GetPlayerPos (playerid, PouzivateloveInformacie [playerid][pPolohaX], PouzivateloveInformacie [playerid][pPolohaY], PouzivateloveInformacie [playerid][pPolohaZ]);
    GetPlayerFacingAngle (playerid, PouzivateloveInformacie [playerid] [pUhol]);

    new INI:File = INI_Open (PouzivatelovaCesta (playerid));
    INI_WriteInt(File, "AdminLevel", PouzivateloveInformacie [playerid] [pAdminLevel]);
    INI_WriteInt(File, "Interiйr", GetPlayerInterior (playerid));
    INI_WriteInt(File, "Skin", GetPlayerSkin (playerid));
    INI_WriteInt(File, "Peniaze", GetPlayerMoney (playerid));
    INI_WriteFloat(File, "PolohaX", PouzivateloveInformacie [playerid] [pPolohaX]);
    INI_WriteFloat(File, "PolohaY", PouzivateloveInformacie [playerid] [pPolohaY]);
    INI_WriteFloat(File, "PolohaZ", PouzivateloveInformacie [playerid] [pPolohaZ]);
    INI_WriteInt(File, "Svet", GetPlayerVirtualWorld (playerid));
    INI_WriteFloat(File, "Uhol", PouzivateloveInformacie [playerid] [pUhol]);
    INI_Close(File);
    return 1;
}



Re: How to erase user.ini file, when he got kicked in registration - ]Rafaellos[ - 03.11.2013

pawn Код:
new Logged[MAX_PLAYERS];

public OnDialogResponse (playerid, dialogid, response, listitem, inputtext[])
{
    switch (dialogid)
    {
        case DIALOG_REGISTRACIA:
        {
            if (!response) return Kick (playerid);
            return 1;

                if (!strlen(inputtext)) return ShowPlayerDialog (playerid, DIALOG_REGISTRACIA, DIALOG_STYLE_PASSWORD, ""FARBA_BIELA"Registrбcia",""FARBA_CERVENA"Zadal si nesprбvne heslo.\n"FARBA_BIELA"Napнš tvoje heslo nižšie, pre registrovanie novйho ъиtu.","Potvrdiќ","Zrušiќ");
                new INI:File = INI_Open (PouzivatelovaCesta (playerid));
                new HashPass[129];
                WP_Hash (HashPass, sizeof(HashPass), inputtext);
                INI_WriteInt(File, "AdminLevel", PouzivateloveInformacie [playerid] [pAdminLevel]);
                INI_WriteString (File, "Heslo", HashPass);
                INI_WriteInt(File, "Interiйr", GetPlayerInterior (playerid));
                INI_WriteInt(File, "Skin", GetPlayerSkin (playerid));
                INI_WriteInt(File, "Peniaze", GetPlayerMoney (playerid));
                INI_WriteFloat(File, "PolohaX", PouzivateloveInformacie [playerid] [pPolohaX]);
                INI_WriteFloat(File, "PolohaY", PouzivateloveInformacie [playerid] [pPolohaY]);
                INI_WriteFloat(File, "PolohaZ", PouzivateloveInformacie [playerid] [pPolohaZ]);
                INI_WriteInt(File, "Svet", GetPlayerVirtualWorld (playerid));
                INI_WriteFloat(File, "Uhol", PouzivateloveInformacie [playerid] [pUhol]);
                INI_Close (File);
                SetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
                TogglePlayerSpectating (playerid, 0);
                Logged[playerid] = 1;
            }
        }

        case DIALOG_PRIHLASOVANIE:
        {
            if (!response) return Kick (playerid);
            if (response)
            {
                new HashPass [129];
                WP_Hash (HashPass, sizeof (HashPass), inputtext);
                if (strcmp (HashPass, PouzivateloveInformacie [playerid] [pHeslo]) == 0)
                {
                    INI_ParseFile (PouzivatelovaCesta (playerid), "NacitavaniePouzivatelov", .bExtra = true, .extra = playerid);
                    GivePlayerMoney (playerid, PouzivateloveInformacie [playerid] [pPeniaze]);
                    SetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
                    TogglePlayerSpectating (playerid, 0);
                    Logged[playerid] = 1;
                }
                else
                {
                    ShowPlayerDialog (playerid, DIALOG_PRIHLASOVANIE, DIALOG_STYLE_PASSWORD,""FARBA_BIELA"Prihlбsenie",""FARBA_CERVENA"Zadal si nesprбvne heslo.\n"FARBA_BIELA"Napнš heslo nižšie, pre prihlбsenie.","Potvrdiќ","Zrušiќ");
                }
                return 1;
            }
        }
    }
    return 1;
}

public OnPlayerConnect(playerid, reason)
{
    Logged[playerid] = 0;
    //other stuff
    return 1;
}

public OnPlayerDisconnect (playerid, reason)
{
    if(Logged[playerid] = 1])
    {
        GetPlayerPos (playerid, PouzivateloveInformacie [playerid][pPolohaX], PouzivateloveInformacie [playerid][pPolohaY], PouzivateloveInformacie [playerid][pPolohaZ]);
        GetPlayerFacingAngle (playerid, PouzivateloveInformacie [playerid] [pUhol]);

        new INI:File = INI_Open (PouzivatelovaCesta (playerid));
        INI_WriteInt(File, "AdminLevel", PouzivateloveInformacie [playerid] [pAdminLevel]);
        INI_WriteInt(File, "Interiйr", GetPlayerInterior (playerid));
        INI_WriteInt(File, "Skin", GetPlayerSkin (playerid));
        INI_WriteInt(File, "Peniaze", GetPlayerMoney (playerid));
        INI_WriteFloat(File, "PolohaX", PouzivateloveInformacie [playerid] [pPolohaX]);
        INI_WriteFloat(File, "PolohaY", PouzivateloveInformacie [playerid] [pPolohaY]);
        INI_WriteFloat(File, "PolohaZ", PouzivateloveInformacie [playerid] [pPolohaZ]);
        INI_WriteInt(File, "Svet", GetPlayerVirtualWorld (playerid));
        INI_WriteFloat(File, "Uhol", PouzivateloveInformacie [playerid] [pUhol]);
        INI_Close(File);
    }
    return 1;
}



Re: How to erase user.ini file, when he got kicked in registration - Riwerry - 03.11.2013

C:\Users\Jakub\Desktop\Server\gamemodes\LVRP.pwn(1 16) : warning 211: possibly unintended assignment
C:\Users\Jakub\Desktop\Server\gamemodes\LVRP.pwn(1 16) : error 001: expected token: ")", but found "]"
C:\Users\Jakub\Desktop\Server\gamemodes\LVRP.pwn(1 16) : error 029: invalid expression, assumed zero
C:\Users\Jakub\Desktop\Server\gamemodes\LVRP.pwn(1 16) : error 029: invalid expression, assumed zero
C:\Users\Jakub\Desktop\Server\gamemodes\LVRP.pwn(1 16) : fatal error 107: too many error messages on one line

pawn Код:
public OnPlayerDisconnect (playerid, reason)
{
    if(Logged[playerid] = 1]) // THIS LINE ERROR
    {
        GetPlayerPos (playerid, PouzivateloveInformacie [playerid][pPolohaX], PouzivateloveInformacie [playerid][pPolohaY], PouzivateloveInformacie [playerid][pPolohaZ]);
        GetPlayerFacingAngle (playerid, PouzivateloveInformacie [playerid] [pUhol]);

        new INI:File = INI_Open (PouzivatelovaCesta (playerid));
        INI_WriteInt(File, "AdminLevel", PouzivateloveInformacie [playerid] [pAdminLevel]);
        INI_WriteInt(File, "Interiйr", GetPlayerInterior (playerid));
        INI_WriteInt(File, "Skin", GetPlayerSkin (playerid));
        INI_WriteInt(File, "Peniaze", GetPlayerMoney (playerid));
        INI_WriteFloat(File, "PolohaX", PouzivateloveInformacie [playerid] [pPolohaX]);
        INI_WriteFloat(File, "PolohaY", PouzivateloveInformacie [playerid] [pPolohaY]);
        INI_WriteFloat(File, "PolohaZ", PouzivateloveInformacie [playerid] [pPolohaZ]);
        INI_WriteInt(File, "Svet", GetPlayerVirtualWorld (playerid));
        INI_WriteFloat(File, "Uhol", PouzivateloveInformacie [playerid] [pUhol]);
        INI_Close(File);
    }
    return 1;
}



Re: How to erase user.ini file, when he got kicked in registration - ]Rafaellos[ - 03.11.2013

My bad, change it to "Logged[playerid] == 1"


Re: How to erase user.ini file, when he got kicked in registration - Riwerry - 03.11.2013

THANKS MATE!! IT Works!! yeaa

And can you please help me with second question? i cant compile one dialog becouse it is long in line.. it gives me an error


Re: How to erase user.ini file, when he got kicked in registration - ]Rafaellos[ - 03.11.2013

Use strcat.