SA-MP Forums Archive
Help. - 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: Help. (/showthread.php?tid=306117)



Help. - lordturhan - 25.12.2011

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.


Re: Help. - =WoR=G4M3Ov3r - 25.12.2011

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

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


Re: Help. - Thresholdold - 25.12.2011

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)


Re: Help. - lordturhan - 25.12.2011

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



Re: Help. - lordturhan - 25.12.2011

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


Re: Help. - Artix - 25.12.2011

Put it in

Код:
OnPlayerSpawn

SetPlayerScore(PlayerInfo[playerid][pScore]



Re: Help. - lordturhan - 25.12.2011

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

Код:
OnPlayerSpawn

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


Re: Help. - Artix - 25.12.2011

rofl


Re: Help. - lordturhan - 25.12.2011

Dont know if it worked gtg i will test it later