How to erase user.ini file, when he got kicked in registration
#1

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.
Reply
#2

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;
}
Reply
#3

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
Reply
#4

Post you'r OnDialogResponse and OnPlayerDisconnect.
Reply
#5

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;
}
Reply
#6

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;
}
Reply
#7

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;
}
Reply
#8

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

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
Reply
#10

Use strcat.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)