#1

Umm i used this tutoriol and started admin system from it

https://sampforum.blast.hk/showthread.php?tid=273088

But there are 2 problems:

-If i log in from different account from my computer my admin level become same
-I added score saving just like money but when i restart server or someone logs off sometimes its gone

Please Help.
Reply
#2

Why don't you remove all that, and replace it with 0Admin ?

If not, then we gotta see some codes of your current script.
Reply
#3

Are you saving the user account name or IP? Because it looks like the admin system is detecting the IP to log you in as an admin... however I agree with Gameover... just install 0Admin
or LuxAdmin by LuxurioN(Trademark sign here)
Reply
#4

Problem 2 isnt a big problem after all but number 1 yes it is i will show you some parts i added from tutoriol [Cant show all code]

pawn Код:
//Credits to ******, Dracoblue and Kush.
     
    #include <a_samp>
    #include <YSI\y_ini>
     
    #define DIALOG_REGISTER 1
    #define DIALOG_LOGIN 2
    #define DIALOG_SUCCESS_1 3
    #define DIALOG_SUCCESS_2 4
     
    #define PATH "/Users/%s.ini"
     
    #define COL_WHITE "{FFFFFF}"
    #define COL_RED "{F81414}"
    #define COL_GREEN "{00FF22}"
    #define COL_LIGHTBLUE "{00CED1}"
     
    enum pInfo
    {
        pPass,
        pCash,
        pAdmin,
        pKills,
        pDeaths,
        pScore
    }
    new PlayerInfo[MAX_PLAYERS][pInfo];
     
    forward LoadUser_data(playerid,name[],value[]);
    public LoadUser_data(playerid,name[],value[])
    {
        INI_Int("Password",PlayerInfo[playerid][pPass]);
        INI_Int("Cash",PlayerInfo[playerid][pCash]);
        INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
        INI_Int("Kills",PlayerInfo[playerid][pKills]);
        INI_Int("Deaths",PlayerInfo[playerid][pDeaths]);
        INI_Int("Score",PlayerInfo[playerid][pScore]);
        return 1;
    }
     
    stock UserPath(playerid)
    {
        new string[128],playername[MAX_PLAYER_NAME];
        GetPlayerName(playerid,playername,sizeof(playername));
        format(string,sizeof(string),PATH,playername);
        return string;
    }
     
    /*Credits to Dracoblue*/
    stock udb_hash(buf[]) {
        new length=strlen(buf);
        new s1 = 1;
        new s2 = 0;
        new n;
        for (n=0; n<length; n++)
        {
           s1 = (s1 + buf[n]) % 65521;
           s2 = (s2 + s1)     % 65521;
        }
        return (s2 << 16) + s1;
    }
     
    main()
    {
            print("\n----------------------------------");
            print(" Blank Gamemode by your name here");
            print("----------------------------------\n");
    }
     
    public OnGameModeInit()
    {
            SetGameModeText("Blank Script");
            return 1;
    }
     
    public OnGameModeExit()
    {
            return 1;
    }
     
    public OnPlayerRequestClass(playerid, classid)
    {
            return 1;
    }
     
    public OnPlayerConnect(playerid)
    {
        if(fexist(UserPath(playerid)))
        {
            INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
            ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Login",""COL_WHITE"Type your password below to login.","Login","Quit");
        }
        else
        {
            ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,""COL_WHITE"Registering...",""COL_WHITE"Type your password below to register a new account.","Register","Quit");
        }
        return 1;
    }
     
    public OnPlayerDisconnect(playerid, reason)
    {
        new INI:File = INI_Open(UserPath(playerid));
        INI_SetTag(File,"data");
        INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
        INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
        INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
        INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
        INI_WriteInt(File,"Score",GetPlayerScore(playerid));
        INI_Close(File);
        return 1;
    }
     
    public OnPlayerSpawn(playerid)
    {
            return 1;
    }
     
    public OnPlayerDeath(playerid, killerid, reason)
    {
        PlayerInfo[killerid][pKills]++;
        PlayerInfo[playerid][pDeaths]++;
        return 1;
    }
     
    public OnVehicleSpawn(vehicleid)
    {
            return 1;
    }
     
    public OnVehicleDeath(vehicleid, killerid)
    {
            return 1;
    }
     
    public OnPlayerText(playerid, text[])
    {
            return 1;
    }
     
    public OnPlayerCommandText(playerid, cmdtext[])
    {
            if (strcmp("/mycommand", cmdtext, true, 10) == 0)
            {
                    // Do something here
                    return 1;
            }
            return 0;
    }
     
    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
            return 1;
    }
     
    public OnPlayerExitVehicle(playerid, vehicleid)
    {
            return 1;
    }
     
    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
            return 1;
    }
     
    public OnPlayerEnterCheckpoint(playerid)
    {
            return 1;
    }
     
    public OnPlayerLeaveCheckpoint(playerid)
    {
            return 1;
    }
     
    public OnPlayerEnterRaceCheckpoint(playerid)
    {
            return 1;
    }
     
    public OnPlayerLeaveRaceCheckpoint(playerid)
    {
            return 1;
    }
     
    public OnRconCommand(cmd[])
    {
            return 1;
    }
     
    public OnPlayerRequestSpawn(playerid)
    {
            return 1;
    }
     
    public OnObjectMoved(objectid)
    {
            return 1;
    }
     
    public OnPlayerObjectMoved(playerid, objectid)
    {
            return 1;
    }
     
    public OnPlayerPickUpPickup(playerid, pickupid)
    {
            return 1;
    }
     
    public OnVehicleMod(playerid, vehicleid, componentid)
    {
            return 1;
    }
     
    public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
    {
            return 1;
    }
     
    public OnVehicleRespray(playerid, vehicleid, color1, color2)
    {
            return 1;
    }
     
    public OnPlayerSelectedMenuRow(playerid, row)
    {
            return 1;
    }
     
    public OnPlayerExitedMenu(playerid)
    {
            return 1;
    }
     
    public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
    {
            return 1;
    }
     
    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
            return 1;
    }
     
    public OnRconLoginAttempt(ip[], password[], success)
    {
            return 1;
    }
     
    public OnPlayerUpdate(playerid)
    {
            return 1;
    }
     
    public OnPlayerStreamIn(playerid, forplayerid)
    {
            return 1;
    }
     
    public OnPlayerStreamOut(playerid, forplayerid)
    {
            return 1;
    }
     
    public OnVehicleStreamIn(vehicleid, forplayerid)
    {
            return 1;
    }
     
    public OnVehicleStreamOut(vehicleid, forplayerid)
    {
            return 1;
    }
     
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
        switch( dialogid )
        {
            case DIALOG_REGISTER:
            {
                if (!response) return Kick(playerid);
                if(response)
                {
                    if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, ""COL_WHITE"Registering...",""COL_RED"You have entered an invalid password.\n"COL_WHITE"Type your password below to register a new account.","Register","Quit");
                    new INI:File = INI_Open(UserPath(playerid));
                    INI_SetTag(File,"data");
                    INI_WriteInt(File,"Password",udb_hash(inputtext));
                    INI_WriteInt(File,"Cash",0);
                    INI_WriteInt(File,"Admin",0);
                    INI_WriteInt(File,"Kills",0);
                    INI_WriteInt(File,"Deaths",0);
                    INI_WriteInt(File,"Score",0);
                    INI_Close(File);
     
                    SetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
                    SpawnPlayer(playerid);
                    ShowPlayerDialog(playerid, DIALOG_SUCCESS_1, DIALOG_STYLE_MSGBOX,""COL_WHITE"Success!",""COL_GREEN"Great! Your Y_INI system works perfectly. Relog to save your stats!","Ok","");
                            }
            }
     
            case DIALOG_LOGIN:
            {
                if ( !response ) return Kick ( playerid );
                if( response )
                {
                    if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
                    {
                        INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
                        GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);
                        SetPlayerScore(playerid, PlayerInfo[playerid][pScore]);
                                           ShowPlayerDialog(playerid, DIALOG_SUCCESS_2, DIALOG_STYLE_MSGBOX,""COL_WHITE"Success!",""COL_GREEN"You have successfully logged in!","Ok","");
                    }
                    else
                    {
                        ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Login",""COL_RED"You have entered an incorrect password.\n"COL_WHITE"Type your password below to login.","Login","Quit");
                    }
                    return 1;
                }
            }
        }
        return 1;
    }
     
    public OnPlayerClickPlayer(playerid, clickedplayerid, source)
    {
            return 1;
    }
Reply
#5

Quote:
Originally Posted by Threshold
Посмотреть сообщение
Are you saving the user account name or IP? Because it looks like the admin system is detecting the IP to log you in as an admin... however I agree with Gameover... just install 0Admin
or LuxAdmin by LuxurioN(Trademark sign here)
No i wont use those systems because except for these 2 problems it works absouletley fine.

And no i dont save ip
Reply
#6

Put it in

Код:
OnPlayerSpawn

SetPlayerScore(PlayerInfo[playerid][pScore]
Reply
#7

Quote:
Originally Posted by Artix
Посмотреть сообщение
Put it in

Код:
OnPlayerSpawn

SetPlayerScore(PlayerInfo[playerid][pScore]
Will try never think of that :O
Reply
#8

rofl
Reply
#9

Dont know if it worked gtg i will test it later
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)