Money Glitch
#1

Hey,

I need some help fixing a glitch i cant seem to fix. Whenever you connect to the server, if your money is negative or positive it doubles.


Anyone no how to fix that?

Rick
Reply
#2

Does it double when you die ? And give us some of your code btw.
Reply
#3

what you using to store amounts?
Reply
#4

It doubles when u leave and reconnect, everytime.

What part of code u want? Im using a register system.

What part of the code do you need?

Rick
Reply
#5

when you register how does it know how much money you have?
Reply
#6

It saves it to a file. I went in with 0 bought a gun then checked the file and it was correct. But for somereason it just keeps doubling....


Rick
Reply
#7

Check what happens to the money on connect. Sometimes it can be unknowingly loaded twice, doubling it.
Reply
#8

Ok, I looked at it and couldnt see what was wrong. Im really noob with complex scripts, lol.

Here is the code for what happens when you login(Callback "OnPlayerLogin") I think this is were the problem is. When you login it doubles.

This is the code:
Код:
public OnPlayerLogin(playerid,const string[])
{
  new pname2[MAX_PLAYER_NAME];
	new pname3[MAX_PLAYER_NAME];
	new string2[64];
	new string3[128];
	GetPlayerName(playerid, pname2, sizeof(pname2));
	format(string2, sizeof(string2), "%s.cer", pname2);
	new File: UserFile = fopen(string2, io_read);

	if (UserFile)
	{
		new valtmp[128];
		fread(UserFile, valtmp);strmid(PlayerInfo[playerid][pPassword], valtmp, 0, strlen(valtmp)-1, 255);

		if ((strcmp(PlayerInfo[playerid][pPassword], string, true, strlen(valtmp)-1) == 0))
		{
			new key[128],val[128];
 			new Data[128];
 			while(fread(UserFile,Data,sizeof(Data)))
			{
				key = ini_GetKey(Data);
        if( strcmp( key , "Kills" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pKills] = strval( val ); }
        if( strcmp( key , "Deaths" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pDeaths] = strval( val ); }
        if( strcmp( key , "Money" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pCash] = strval( val ); }
        if( strcmp( key , "Adminlevel" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pAdminlevel] = strval( val ); }
        GivePlayerMoney(playerid,PlayerInfo[playerid][pCash]);
			}
			fclose(UserFile);
			gPlayerLogged[playerid] = 1;
			gPlayerAccount[playerid] = 1;
		  new kills = PlayerInfo[playerid][pKills];
      SetPlayerScore(playerid, kills);
			GetPlayerName(playerid, pname3, sizeof(pname3));
			format(string3, sizeof(string3), "Welcome %s, you have been succesfully logged in!", pname3);
			SendClientMessage(playerid, COLOR_WHITE,string3);
		}
		else
		{
			SendClientMessage(playerid, COLOR_GREY, "	Password does not match your name");
			fclose(UserFile);
		}
	}
	return 1;
}
PLease Help,

Rick
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)