Paycheck
#1

How can i edit my PayDay system to make it more realistic.

I had $1000 on hand and $2000 in my bank account, this was what i got



Код:
public PayDay()
{
	new string[128];
	new account,interest,businesspay[MAX_PLAYERS], welfarepay;
	new rent = 0;
	GiftAllowed = 1;
	RaidAllowed = 1;
	matssys[MatsAmmount] += random(50000)+5000;
	Tax -= random(500000); // Money for running public services.
	// For New Turf Perks
    for(new tw=0; tw<MAX_TURFS; tw++)
    {
		new twpcount;
        foreach(Player, p)
     	{
			if(GetPlayerTurfWarsZone(p) == tw && PlayerInfo[p][pFMember] == TurfWars[tw][twOwnerId])
			{
			    twpcount ++;
			}
		}
		if(twpcount >= 3)
		{
            switch(TurfWars[tw][twSpecial])
            {
                case 0: // Default, none
                {

                }
                case 1: // Pot Seeds Generation
                {
					new potrand = random(100);
					FamilyInfo[TurfWars[tw][twOwnerId]][FamilySeeds] += potrand;

					format(string,sizeof(string),"[FAMILY EXTORTION] Your family has received %d Pot Seeds into the family safe from extortion.",potrand);
					SendFamMessage(TurfWars[tw][twOwnerId], COLOR_YELLOW, string);
                }
                case 2: // Crack Ingredients Generation
                {
					new crackrand = random(100);
					FamilyInfo[TurfWars[tw][twOwnerId]][FamilyCrackStuff] += crackrand;

					format(string,sizeof(string),"[FAMILY EXTORTION] Your family has received %d Grams of Sodium Bicarbonate into the family safe from extortion.",crackrand);
					SendFamMessage(TurfWars[tw][twOwnerId], COLOR_YELLOW, string);
                }
                case 3: // Raw Opium Generation
                {
					new heroinrand = random(10);
					FamilyInfo[TurfWars[tw][twOwnerId]][FamilyOpium] += heroinrand;

					format(string,sizeof(string),"[FAMILY EXTORTION] Your family has received %d grams of Raw Opium into the family safe from extortion.",heroinrand);
					SendFamMessage(TurfWars[tw][twOwnerId], COLOR_YELLOW, string);
                }
                case 4: // Battery Acid Generation
                {
					new acidrand = random(50);
					FamilyInfo[TurfWars[tw][twOwnerId]][FamilyAcid] += acidrand;

					format(string,sizeof(string),"[FAMILY EXTORTION] Your family has received %d gallons of Battery Acid into the family safe from extortion.",acidrand);
					SendFamMessage(TurfWars[tw][twOwnerId], COLOR_YELLOW, string);
                }
                case 5: // Materials Generation
                {
					new matsrand = random(100000);
					FamilyInfo[TurfWars[tw][twOwnerId]][FamilyMats] += matsrand;

					format(string,sizeof(string),"[FAMILY EXTORTION] Your family has received %d Materials into the family safe from extortion.",matsrand);
					SendFamMessage(TurfWars[tw][twOwnerId], COLOR_YELLOW, string);
                }
                case 6: // Money Laundering
                {
					new cashrand = random(150000);
					FamilyInfo[TurfWars[tw][twOwnerId]][FamilyCash] += cashrand;

					format(string,sizeof(string),"[FAMILY EXTORTION] Your family has received $%d into the family safe from extortion.",cashrand);
					SendFamMessage(TurfWars[tw][twOwnerId], COLOR_YELLOW, string);
                }
			}
		}
    }
	foreach(Player, i)
	{
		PlayerInfo[i][pOverdose] = 0;
		PlayerInfo[i][pChopShopped] = 0;
		Addiction(i);
			if(PlayerInfo[i][pLevel] > 0)
			{
				if(GetPVarType(i, "debtMsg")) {
					if(GetPlayerCash(i) < 0 && PlayerInfo[i][pJailTime] < 1 && !IsACop(i) && PlayerInfo[i][pWantedLevel] < 6) {
						format(string,sizeof(string),"You're failing to pay your debt of $%d - now the police are on the look out for you.",GetPlayerCash(i));
						SendClientMessageEx(i, COLOR_LIGHTRED, string);
						PlayerInfo[i][pCrimes]++;
						SetPlayerWantedLevel(i, ++PlayerInfo[i][pWantedLevel]);
					}
					else DeletePVar(i, "debtMsg");
				}
				if(TicketMessage[i]==5 && PlayerInfo[i][pSpeedTix] >= 5001)
				{
				    if( PlayerInfo[i][pJailed] < 1 && !IsACop(i) && !IsALVMPDCop(i))
				    {
				        format(string,sizeof(string),"A warrant has been issued for your arrest, You have failed to pay off your speeding violations");
						SendClientMessageEx(i, COLOR_LIGHTRED, string);
						if(PlayerInfo[i][pWantedLevel] < 6) PlayerInfo[i][pWantedLevel] += 1;
						PlayerInfo[i][pCrimes] += 1;
						SetPlayerWantedLevel(i, PlayerInfo[i][pWantedLevel]);
						AddWarrant(i, 555, "Unpaid Speeding Tickets");
						format(PlayerInfo[i][pWarrant], 64, "Unpaid Speeding Tickets");
					}
				} 
				else if(TicketMessage[i]==5 && PlayerInfo[i][pSpeedTix] < 5000) { TicketMessage[i] = 0; RemoveWarrant(i); }
				
				account = PlayerInfo[i][pAccount];
				if(PlayerInfo[i][pRenting] != INVALID_HOUSE_ID)
				{
					if(HouseInfo[PlayerInfo[i][pRenting]][hRentFee] > PlayerInfo[i][pAccount])
					{
						PlayerInfo[i][pRenting] = INVALID_HOUSE_ID;
						SendClientMessageEx(i, COLOR_WHITE, "You have been evicted.");
					}
					else {
						HouseInfo[PlayerInfo[i][pRenting]][hSafeMoney] += HouseInfo[PlayerInfo[i][pRenting]][hRentFee];
						PlayerInfo[i][pAccount] -= HouseInfo[PlayerInfo[i][pRenting]][hRentFee];
					}
				}
				new tmpintrate, faretax, insuretax, socialsec, proptax, utilities, ezpassfee;
				tmpintrate = 5;


				if(PlayerInfo[i][pPayDay] >= 5)
				{
                    if(GetPVarInt(i, "AdvisorDuty") == 1)
					{
	    				PlayerInfo[i][pDutyHours]++;
					}
					if(PlayerInfo[i][pDonateRank] > 0)
					{
						new bonus = PlayerInfo[i][pPayCheck] / 2;
						PlayerInfo[i][pPayCheck] += bonus;
					}
					if(SpecTimer == 1)
					{
						AddSpecialToken(i);

					}
					rent = 0;
					faretax = 0;
					insuretax = 0; proptax = 0; utilities = 0;
					socialsec = 0;
					ezpassfee = 0;
					new checks = PlayerInfo[i][pPayCheck];
					if(PlayerInfo[i][pTaxiLicense] == 1) faretax = (checks/100)*5;
					if(PlayerInfo[i][pCarInsurance] == 1) insuretax = (checks/100)*9;
					socialsec = (checks/100)*4;
					if(PlayerInfo[i][pPhousekey] != INVALID_HOUSE_ID || PlayerInfo[i][pPhousekey2] != INVALID_HOUSE_ID)
					{
						proptax += (checks/100)*8;
						utilities += (checks/100)*2;
					}
					new Taxable = (( checks / 100 ) * TaxValue);
					PlayerInfo[i][pAccount] -= Taxable + faretax + insuretax + socialsec + proptax + utilities + ezpassfee;
					Tax += Taxable + faretax + insuretax + socialsec + proptax + utilities;

					interest = (PlayerInfo[i][pAccount]/1000)*(tmpintrate);

					if(PlayerInfo[i][pDonateRank] == 0 && interest > 50000)
					{
						interest = 50000;
					}
					else if(PlayerInfo[i][pDonateRank] == 1 && interest > 100000)
					{
						interest = 100000;
					}
					else if(PlayerInfo[i][pDonateRank] == 2 && interest > 150000)
					{
						interest = 150000;
					}
					else if(PlayerInfo[i][pDonateRank] == 3 && interest > 200000)
					{
						interest = 200000;
					}
					else if(PlayerInfo[i][pDonateRank] >= 4 && interest > 250000)
					{
						interest = 250000;
					}

					PlayerInfo[i][pExp]++;
					PlayerInfo[i][pAccount] = account+interest;
					SendClientMessageEx(i, COLOR_WHITE, "________ BANK STATEMENT ________");
					format(string, sizeof(string), "  Paycheck: $%d  |  Tax Money: -$%d (%d percent)", checks, Taxable, TaxValue);
					SendClientMessageEx(i, COLOR_GRAD1, string);
					format(string, sizeof(string), "  Property Tax: -$%d  |  Utilities: -$%d", proptax, utilities);
					SendClientMessageEx(i, COLOR_GRAD5, string);
					format(string, sizeof(string), "  Social Security: -$%d", socialsec);
					SendClientMessageEx(i, COLOR_GRAD5, string);

					if(PlayerInfo[i][pDonateRank] == 0)
					{
						format(string, sizeof(string), "  Balance: $%d  |  Interest rate: 0.%d percent (50k max)", account, tmpintrate);
						SendClientMessageEx(i, COLOR_GRAD1, string);
					}
					else if(PlayerInfo[i][pDonateRank] == 1)
					{
						format(string, sizeof(string), "  Balance: $%d  |  Interest rate: 0.%d percent {FFFF00}(Bronze VIP: 100k max)", account, tmpintrate);
						SendClientMessageEx(i, COLOR_GRAD1, string);
						
						PlayerInfo[i][pTokens] += 2;
						format(string, sizeof(string), "  You have received 2 VIP Tokens (Bronze). You now have %d tokens", PlayerInfo[i][pTokens]);
						SendClientMessageEx(i, COLOR_GRAD1, string);
					}
					else if(PlayerInfo[i][pDonateRank] == 2)
					{
						format(string, sizeof(string), "  Balance: $%d  |  Interest rate: 0.%d percent {FFFF00}(Silver VIP: 150k max)", account, tmpintrate);
						SendClientMessageEx(i, COLOR_GRAD1, string);
						
						PlayerInfo[i][pTokens] += 4;
						format(string, sizeof(string), "  You have received 4 VIP Tokens (Silver). You now have %d tokens", PlayerInfo[i][pTokens]);
						SendClientMessageEx(i, COLOR_GRAD1, string);
					}
					else if(PlayerInfo[i][pDonateRank] == 3)
					{
						format(string, sizeof(string), "  Balance: $%d  |  Interest rate: 0.%d percent {FFFF00}(Gold VIP: 200k max)", account, tmpintrate);
						SendClientMessageEx(i, COLOR_GRAD1, string);
						
						PlayerInfo[i][pTokens] += 6;
						format(string, sizeof(string), "  You have received 6 VIP Tokens (Gold). You now have %d tokens", PlayerInfo[i][pTokens]);
						SendClientMessageEx(i, COLOR_GRAD1, string);
					}
					else if(PlayerInfo[i][pDonateRank] >= 4)
					{
						format(string, sizeof(string), "  Balance: $%d  |  Interest rate: 0.%d percent {FFFF00}(Platinum VIP: 250k max)", account, tmpintrate);
						SendClientMessageEx(i, COLOR_GRAD1, string);
						
						PlayerInfo[i][pTokens] += 8;
						format(string, sizeof(string), "  You have received 8 VIP Tokens (Platinum). You now have %d tokens", PlayerInfo[i][pTokens]);
						SendClientMessageEx(i, COLOR_GRAD1, string);
					}
					else if(PlayerInfo[i][pDonateRank] == 5)
					{
						format(string, sizeof(string), "  Balance: $%d  |  Interest rate: 0.%d percent {FFFF00}(Investor: 250k max)", account, tmpintrate);
						SendClientMessageEx(i, COLOR_GRAD1, string);
						
						PlayerInfo[i][pTokens] += 10;
						format(string, sizeof(string), "  You have received 10 VIP Tokens (Investor). You now have %d tokens", PlayerInfo[i][pTokens]);
						SendClientMessageEx(i, COLOR_GRAD1, string);
					}

					if(PlayerInfo[i][pTaxiLicense] == 1)
					{
						format(string, sizeof(string), "  Taxi licensing fee (5 percent): -$%d",faretax);
						SendClientMessageEx(i, COLOR_GRAD2, string);
					}
					if(PlayerInfo[i][pCarInsurance] == 1)
					{
						format(string, sizeof(string), "  Car insurance fee (9 percent): -$%d",insuretax);
						SendClientMessageEx(i, COLOR_GRAD2, string);
					}
					if(PlayerInfo[i][pEnrolledEZPass] == 1)
					{
					    for(new v = 0; v < MAX_PLAYERVEHICLES; v++)
					    {
					        if(PlayerVehicleInfo[i][v][pvEZPass] == 1)
					        {
					            ezpassfee += 510;
							}
						}
							format(string, sizeof(string), "  EZPass fee: -$%d",ezpassfee);
							SendClientMessageEx(i, COLOR_GRAD2, string);
					}
					
					new paycheck = checks - Taxable - faretax - proptax - utilities - socialsec - insuretax - ezpassfee; // Final outcome of money
					new name[24];
					GetPlayerName(i,name,24);
					for(new biz=0; biz<MAX_BUSINESS; biz++)
					{
						if(!strcmp(name, BizInfo[biz][bOwner], false))
						{
							if(BizInfo[biz][bType] == 1)
							{
							    businesspay[i] += random(100000);
							}
							if(BizInfo[biz][bType] == 2)
							{
							    businesspay[i] += random(45000);
							}
							if(BizInfo[biz][bType] == 3)
							{
							    businesspay[i] += random(50000);
							}
						}
					}
					if(businesspay[i] != 0)
					{
						format(string,sizeof(string),"  Business Profits: $%d", businesspay[i]);
						SendClientMessageEx(i, COLOR_GRAD2, string);
						PlayerInfo[i][pAccount] += businesspay[i];
					}
					
					if(PlayerInfo[i][pMember] != 0 && PlayerInfo[i][pMember] != 8 && PlayerInfo[i][pMember] != 13)
					{
					    if(Tax <= 0)
						{
							SendClientMessageEx(i,COLOR_RED,"The government is in debt; no money is available for pay.");
						}
						else if(PlayerInfo[i][pDuty] == 1)
						{
							Tax -= FactionPay[PlayerInfo[i][pMember]-1][PlayerInfo[i][pRank]];
							format(string,sizeof(string),"  Government pay: $%d", FactionPay[PlayerInfo[i][pMember]-1][PlayerInfo[i][pRank]]);
					    	SendClientMessageEx(i, COLOR_GRAD2, string);
						}
						else
						{
							format(string,sizeof(string),"	You did not work enough to get Government Pay, go on duty!");
					    	SendClientMessageEx(i, COLOR_YELLOW, string);
						}
					}
					else {
						if(Tax <= 0)
						{
							SendClientMessageEx(i,COLOR_RED,"The government is in debt; no welfare money is available for pay.");
						}
						else
						{
							if(PlayerInfo[i][pLevel] <= 10) {
								welfarepay = (PlayerInfo[i][pLevel]*25);
							}
							else welfarepay = 500;
							Tax -= welfarepay;
							format(string,sizeof(string),"  Welfare check: $%d", welfarepay);
					    	SendClientMessageEx(i, COLOR_GRAD2, string);
							PlayerInfo[i][pAccount] += welfarepay;
						}
					}
					format(string, sizeof(string), "  Interest gained: $%d", interest);
					SendClientMessageEx(i, COLOR_GRAD3, string);
					SendClientMessageEx(i, COLOR_GRAD4, "______________________________________");
					format(string, sizeof(string), "  New account balance: $%d  |  Rent paid: -$%d", PlayerInfo[i][pAccount],rent);
					SendClientMessageEx(i, COLOR_GRAD5, string);
					format(string, sizeof(string), "  Paycheck (Taxes and profits applied): $%d", paycheck+businesspay[i]+interest);
					SendClientMessageEx(i, COLOR_GRAD5, string);
					
					if(PlayerInfo[i][pMember] != 0 && PlayerInfo[i][pMember] != 8 && PlayerInfo[i][pMember] != 13 && Tax >= 0)
					{
						new facmemberpay = FactionPay[PlayerInfo[i][pMember]-1][PlayerInfo[i][pRank]];
						PlayerInfo[i][pAccount] += facmemberpay;
					}
					PlayerInfo[i][pAccount] += paycheck;

					GameTextForPlayer(i, "~p~PayDay~n~~w~Paycheck", 5000, 1);
					PlayerInfo[i][pPayDay] = 0;
					PlayerInfo[i][pPayCheck] = 0;
					PlayerInfo[i][pConnectTime] += 1;
					if(PlayerInfo[i][pConnectTime] == 2) SendClientMessageEx(i, COLOR_LIGHTRED, "You may now possess/use weapons!");
					if(PlayerInfo[i][pDonateRank] > 0)
					{
						PlayerInfo[i][pPayDayHad] = 0;
						//PlayerInfo[i][pPayDayHad] += 1;
						if(PlayerInfo[i][pPayDayHad] >= 5)
						{
							PlayerInfo[i][pExp]++;
							PlayerInfo[i][pPayDayHad] = 0;
						}
					}
					if(PlayerInfo[i][pWRestricted] > 0)
					{
					    PlayerInfo[i][pWRestricted]--;
						if(PlayerInfo[i][pWRestricted] == 0) SendClientMessageEx(i, COLOR_LIGHTRED, "Your weapons are no longer restricted!");
					}

				}
				else
				{
					SendClientMessageEx(i, COLOR_LIGHTRED, "* You haven't played long enough to obtain a paycheck.");
				}
			}
	}
	for (new x=0; x<MAX_POINTS; x++)
	{
		Points[x][Announced] = 0;
		if (Points[x][Vulnerable] > 0)
		{
			Points[x][Vulnerable]--;
			UpdatePoints();
		}
		if(Points[x][Vulnerable] == 0 && Points[x][Announced] == 1)
		{
		}
		if (Points[x][Vulnerable] == 0 && Points[x][Type] >= 0 && Points[x][Announced] == 0 && Points[x][ClaimerId] == INVALID_PLAYER_ID)
		{
		//	format(string, sizeof(string), "%s has become available for capture.", Points[x][Name]);
		//	SendClientMessageToAllEx(COLOR_YELLOW, string);
			//SetPlayerCheckpoint(i, Points[i][Pointx], Points[i][Pointy], Points[i][Pointz], 3);
			ReadyToCapture(x);
			Points[x][Announced] = 1;
		}
	}
	SaveStuff();
	SaveServerStats();
	FMemberCounter(); // Family member counter (requested by game affairs to track gang activity)
	return 1;
}
Reply


Messages In This Thread
Paycheck - by FaZeRs - 30.06.2014, 15:55
Re: Paycheck - by FaZeRs - 30.06.2014, 17:20

Forum Jump:


Users browsing this thread: 1 Guest(s)