[Help] Payday
#1

Hello, on payday the players gets the money he have worked for, he also got a lot more, i don't really know why you got them but it seems like as more you have on the bank, the more money you got and i've searched the whole public payday and i can't find out why this is happening.

So in i get like 10 000 each payday without doing anything at all.

Here's the public payday.

Код:
public PayDay()
{
	new string[128];
	new account,interest;
	new rent = 0;
	for(new i = 0; i < MAX_PLAYERS; i++)
	{
		if(IsPlayerConnected(i))
		{
		  if(PlayerInfo[i][pLevel] > 0)
		  {
			  if(MoneyMessage[i]==1)
				{
				  SendClientMessage(i, COLOR_LIGHTRED, "You failed to pay your debt, Jail time.");
				  GameTextForPlayer(i, "~r~Busted!", 2000, 1);
				  SetPlayerInterior(i, 6);
				  PlayerInfo[i][pInt] = 6;
			  		SetPlayerPos(i, 264.6288,77.5742,1001.0391);
		      PlayerInfo[i][pJailed] = 1;
		      ResetPlayerWeapons(i);
		      ResetPlayerMoney(i);
					WantedPoints[i] = 0;
					PlayerInfo[i][pJailTime] = 240;
					format(string, sizeof(string), "You are jailed for %d seconds.  Bail: Unable", PlayerInfo[i][pJailTime]);
					SendClientMessage(i, COLOR_WHITE, string);
				}
				new playername2[MAX_PLAYER_NAME];
				GetPlayerName(i, playername2, sizeof(playername2));
				account = PlayerInfo[i][pAccount];
				new key = PlayerInfo[i][pPhousekey];
				if(key != 255)
				{
					rent = HouseInfo[key][hRent];
					if(strcmp(playername2, HouseInfo[key][hOwner], true) == 0)
					{
						rent = 0;
					}
					else if(rent > GetPlayerMoney(i))
					{
						PlayerInfo[i][pPhousekey] = 255;
						SendClientMessage(i, COLOR_WHITE, "You have been evicted.");
						rent = 0;
					}
					HouseInfo[key][hTakings] = HouseInfo[key][hTakings]+rent;
				}
				new tmpintrate;
				if (key != 255 && strcmp(playername2, HouseInfo[key][hOwner], true) == 0)
				{
				  if(PlayerInfo[i][pDonateRank] > 0) { tmpintrate = intrate+4; }
					else { tmpintrate = intrate+2; }//HouseInfo[key][hLevel]
				}
				else
				{
				  if(PlayerInfo[i][pDonateRank] > 0) { tmpintrate = 3; }
					else { tmpintrate = 1; }
				}
				if(PlayerInfo[i][pPayDay] >= 5)
				{
				  Tax += TaxValue;//Should work for every player online
				  PlayerInfo[i][pAccount] -= TaxValue;
					new checks = PlayerInfo[i][pPayCheck] / 5;
					if(PlayerInfo[i][pDonateRank] > 0)
					{
					  new bonus = PlayerInfo[i][pPayCheck] / 10;
					  checks += bonus;
					}
				  new ebill = (/*PlayerInfo[i][pAccount]/10000)*/PlayerInfo[i][pLevel]);
				  //ConsumingMoney[i] = 1;
				  //GivePlayerMoney(i, checks);
				  account += checks;
				  if(PlayerInfo[i][pAccount] > 0)
				  {
/*				  	PlayerInfo[i][pAccount] -= ebill;
				  	SBizzInfo[4][sbTill] += ebill;
					}
					else
					{*/
					  ebill = 0;
					}
					interest = (PlayerInfo[i][pAccount]/1000)*(tmpintrate);
					PlayerInfo[i][pExp]+=3;
					//PlayerInfo[i][pLevel]++;
					PlayerPlayMusic(i);
					PlayerInfo[i][pAccount] = account+interest;
					SendClientMessage(i, COLOR_GREEN, "|___ BANK STATMENT ___|");
					format(string, sizeof(string), " Paycheck: $%d  Tax Money: -$%d", checks, TaxValue);
					SendClientMessage(i, COLOR_WHITE, string);
					if(PlayerInfo[i][pPhousekey] != 255 || PlayerInfo[i][pPbiskey] != 255)
					{
					  format(string, sizeof(string), " Electricity Bill: -$%d", ebill);
						SendClientMessage(i, COLOR_GRAD1, string);
					}
					format(string, sizeof(string), " Balance: $%d", account - checks);
					SendClientMessage(i, COLOR_WHITE, string);
					format(string, sizeof(string), " Interest Rate: 0.%d percent",tmpintrate);
					SendClientMessage(i, COLOR_GRAD2, string);
					format(string, sizeof(string), " Interest Gained $%d", interest);
					SendClientMessage(i, COLOR_GRAD3, string);
					SendClientMessage(i, COLOR_GREEN, "|--------------------------------------|");
					format(string, sizeof(string), " New Balance: $%d", PlayerInfo[i][pAccount]);
					SendClientMessage(i, COLOR_GRAD5, string);
					format(string, sizeof(string), " Rent: -$%d", rent);
					SendClientMessage(i, COLOR_GRAD5, string);
					format(string, sizeof(string), "~y~PayDay~n~~w~Check paid into your account");
					GameTextForPlayer(i, string, 5000, 1);
					rent = 0;
					PlayerInfo[i][pPayDay] = 0;
					PlayerInfo[i][pPayCheck] = 0;
					PlayerInfo[i][pConnectTime] += 1;
					if(FarmerVar[i] == 0)
					{
						FarmerPickup[i][0] = 0;
					}
					if(DrugFarmerVar[i] == 0)
					{
						DrugFarmerPickup[i][0] = 0;
					}
					if(SmugglerWork[i] == 0)
					{
						PayDaySecure[i] = 0;
					}
					if(PlayerInfo[i][pDonateRank] > 0)
					{
					  PlayerInfo[i][pPayDayHad] += 1;
					  if(PlayerInfo[i][pPayDayHad] >= 5)
					  {
					    PlayerInfo[i][pExp]+=3;
              //PlayerInfo[i][pLevel]++;
							PlayerInfo[i][pPayDayHad] = 0;
					  }
					}
				}
				else
				{
				  SendClientMessage(i, COLOR_WHITE, "* You haven't played long enough to obtain a PayDay.");
				}
			}
		}
	}
	SaveAccounts();
	Checkprop();
	return 1;
}
Reply
#2

Код:
interest = (PlayerInfo[i][pAccount]/1000)*(tmpintrate);
It causes the problem. It checks your bank( after given you payday money allready ), then increases it by your "tmpintrate". And after that it pluses to your account again. So just delete that string.
Reply
#3

I actually did comment that string once, and still gained like.. 2500 more than i should.
Reply
#4

Then you should see PlayerInfo[playerid][pPayCheck]( maybe it gives alot there ), and also try comment out all tmpintrate variables.
Reply
#5

Yeah i see now

Thanks for the help!
Reply


Forum Jump:


Users browsing this thread: