30.06.2014, 15:55
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
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; }