saving help
#1

Hello guyz i need help when i enter in game and setlevel then relog with new name the new name auto get level what to How to Fix it
Reply
#2

No code no help.
Reply
#3

here is code
Код:
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",Player[playerid][pAdmin]);
    INI_WriteInt(File,"Kills",Player[playerid][pKills]);
    INI_WriteInt(File,"Deaths",Player[playerid][pDeaths]);
    INI_WriteInt(File,"Score",GetPlayerScore(playerid));
    INI_WriteInt(File,"Skin",Player[playerid][Skin]);
    INI_WriteInt(File,"Ban",Player[playerid][pBan]);
    INI_WriteInt(File,"Color",GetPlayerColor(playerid));
	INI_WriteInt(File,"Team",gTeam[playerid]);
	INI_WriteInt(File,"Ninja",Player[playerid][pninja]);
	INI_WriteInt(File,"clothes",Player[playerid][pclothes]);
	INI_WriteInt(File,"ninjaskin",Player[playerid][pskin]);
    INI_WriteInt(File,"Leader",Player[playerid][pLeader]);
 	INI_WriteInt(File,"UseSpawnPos",Player[playerid][pUsePos]);
  	INI_WriteFloat(File,"FloatA",Player[playerid][pA]);
   	INI_WriteFloat(File,"FloatX",Player[playerid][pX1]);
    INI_WriteFloat(File,"FloatY",Player[playerid][pY1]);
    INI_WriteFloat(File,"FloatZ",Player[playerid][pZ1]);
    INI_WriteInt(File,"HasSavedPos",Player[playerid][pHasSavedPos]);
	INI_WriteInt(File,"Bombs",Player[playerid][Bomb]);
	INI_WriteInt(File,"Cowboyhat",Player[playerid][hat1]);
	INI_WriteInt(File,"whitehat",Player[playerid][hat2]);
	INI_WriteInt(File,"blackhat",Player[playerid][hat3]);
	INI_Close(File);
//    SavePlayerData(playerid);
    return 1;
}
OnPlayerDialog

//-------------------------------------------------------------------------------------------

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_WriteInt(File,"Skin",0);
                INI_WriteInt(File,"Ban",0);
                INI_WriteInt(File,"Color",0);
                INI_WriteInt(File,"Team",0);
                INI_WriteInt(File,"Ninja",0);
                INI_WriteInt(File,"Clothes",0);
				INI_WriteInt(File,"skinNinja",0);
		        INI_WriteInt(File,"Leader",0);
         		INI_WriteInt(File,"UseSpawnPos",0);
  				INI_WriteFloat(File,"FloatA",0);
   				INI_WriteFloat(File,"FloatX",0);
    			INI_WriteFloat(File,"FloatY",0);
    			INI_WriteFloat(File,"FloatZ",0);
			 	INI_WriteInt(File,"HasSavedPos",0);
                INI_WriteInt(File,"Bombs",0);
                INI_WriteInt(File,"Cowboyhat",0);
                INI_WriteInt(File,"whitehat",0);
                INI_WriteInt(File,"blackhat",0);
				INI_Close(File);
				SendClientMessage(playerid, COLOR_LIGHTGREEN, "Welcome You have successfully Registered!! ");
            }
        }
        case DIALOG_LOGIN:
        {
            if ( !response ) return Kick ( playerid );
            if( response )
            {
                if(udb_hash(inputtext) == Player[playerid][pPass])
                {
                    INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
					SendClientMessage(playerid, COLOR_ORANGE, "/Help ,/Animlist,/Rules,/stats");
					SendClientMessage(playerid, COLOR_LIGHTGREEN, "Welcome You have successfully logged in ");
			
					GivePlayerMoney(playerid, Player[playerid][pCash]);
				}
                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 0;
            }
        }
    }
return 0;
}
forward LoadUser_data(playerid,name[],value[]);
public LoadUser_data(playerid,name[],value[])
{
    INI_Int("Password",Player[playerid][pPass]);
    INI_Int("Cash",Player[playerid][pCash]);
    INI_Int("Admin",Player[playerid][pAdmin]);
    INI_Int("Kills",Player[playerid][pKills]);
    INI_Int("Deaths",Player[playerid][pDeaths]);
    INI_Int("Score",Player[playerid][pScore]);
    INI_Int("Skin",Player[playerid][Skin]);
    INI_Int("Ban",Player[playerid][pBan]);
    INI_Int("Color",Player[playerid][pcolor]);
    INI_Int("Team",gTeam[playerid]);
    INI_Int("Ninja",Player[playerid][pninja]);
	INI_Int("clothes",Player[playerid][pclothes]);
	INI_Int("ninjaskin",Player[playerid][pskin]);
	INI_Int("Leader",Player[playerid][pLeader]);
 	INI_Int("UseSpawnPos",Player[playerid][pUsePos]);
    INI_Float("FloatA",Player[playerid][pA]);
    INI_Float("FloatX",Player[playerid][pX1]);
    INI_Float("FloatY",Player[playerid][pY1]);
    INI_Float("FloatZ",Player[playerid][pZ1]);
    INI_Int("HasSavedPos",Player[playerid][pHasSavedPos]);
	INI_Int("Bombs",Player[playerid][Bomb]);
	INI_Int("Cowboyhat",Player[playerid][hat1]);
	INI_Int("whitehat",Player[playerid][hat2]);
	INI_Int("blackhat",Player[playerid][hat3]);
	return 1;
}
stock GetName(playerid)
{
    new dName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, dName, sizeof(dName));
    return dName;
}
stock UserPath(playerid)
{
    new string[128],playername[MAX_PLAYER_NAME];
    GetPlayerName(playerid,playername,sizeof(playername));
    format(string,sizeof(string),PATH,playername);
    return string;
}
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;
}
Reply
#4

Add this to your enum:
Код:
Level,
And this in your OnPlayerDisconnect:
Код:
INI_WriteInt(File,"Level",Player[playerid][level]);
Reply
#5

Thanks I will try that i hope it work
Reply
#6

And after a player has logged in use "SetPlayerScore(playerid, Player[playerid][level]);"
Next to your "GivePlayerMoney(playerid, Player[playerid][pCash]);" that you already have written.

Tip: The way you have built your script, is very easy to money exploit as you have set to save the money on the player's money cash roll up on the right corner (ingame), to save into the file once he or she disconnects. :P
Reply
#7

my mean is THe Player auto become Admin when Any budy register or Login he get admin level and have same stats as i have Mean he also get same adminlevel
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)