11.11.2012, 02:04
I need help with my Payday System. I am using Ravens Roleplay, but it is almost completely redone... except for this part. I want it to give payday every hour that someone is on the server, currently it only works if an admin forces it with the admin command.
Please help me and tell me what to fix or replace. This is a fairly major part I need to fix.
Thanks: jakejohnsonusa
Here are the codes that (I think) do the payday:
Please help me and tell me what to fix or replace. This is a fairly major part I need to fix.
Thanks: jakejohnsonusa
Here are the codes that (I think) do the payday:
Код:
public SyncTime() { new string[128]; new tmphour; new tmpminute; new tmpsecond; gettime(tmphour, tmpminute, tmpsecond); if ((tmphour > ghour) || (tmphour == 0 && ghour == 23)) { format(string, sizeof(string), "SERVER: The time is now %d:00 hours",tmphour); BroadCast(COLOR_WHITE,string); ghour = tmphour; PayDay(); if (realtime) { SetWorldTime(tmphour); } format(string, sizeof(string), "~y~Lotto Time!! ~n~~w~Select Your Number ~n~~p~/lotto 1-80 ~g~($100) ~n~~r~Prize: ~g~$%d", Jackpot); if(TD3D == 1) { KillTimer(HideTD4Timer); TextDrawHideForAll(TD3); TextDrawSetString(TD3, string); TextDrawShowForAll(TD3); HideTD4Timer = SetTimer("HideTD4", 8500, false); } else { TextDrawSetString(TD3, string); TextDrawShowForAll(TD3); TD3D = 1; HideTD4Timer = SetTimer("HideTD4", 8500, false); } SetTimer("StartLotto",20000,false); } }
Код:
public PayDay() { new string[128]; new account,interest; new rent = 0; for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i) && !IsPlayerNPC(i)) { if(PlayerInfo[i][pLevel] > 0) { if(MoneyMessage[i]==1) { new bank = PlayerInfo[i][pAccount]; SendClientMessage(i, COLOR_LIGHTRED, "You failed to pay your debt, Jail time."); GameTextForPlayer(i, "~r~Busted!", 2000, 1); SafeSetPlayerInterior(i, 6); SafeSetPlayerPos(i, 264.6288,77.5742,1001.0391); PlayerInfo[i][pJailed] = 1; SafeResetPlayerWeapons(i); SafeResetPlayerMoney(i); SafeGivePlayerMoney(i, 1); WantedPoints[i] = 0; PlayerInfo[i][pAccount] = (bank + DebtMoney[i]); DebtMoney[i] = 0; PlayerInfo[i][pJailTime] = 240; TextDrawShowForPlayer(i, Textdraw1[i]); 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 != 9999) { rent = HouseInfo[key][hRent]; if(strcmp(playername2, HouseInfo[key][hOwner], true) == 0) { rent = 0; } else if(rent > GetPlayerMoney(i)) { PlayerInfo[i][pPhousekey] = 9999; SendClientMessage(i, COLOR_WHITE, "You have been evicted."); rent = 0; } HouseInfo[key][hTakings] = HouseInfo[key][hTakings]+rent; } new tmpintrate; if (key != 999 && strcmp(playername2, HouseInfo[key][hOwner], true) == 0) { if(PlayerInfo[i][pRegularRank] > 0) { tmpintrate = intrate+4; } else { tmpintrate = intrate+2; }//HouseInfo[key][hLevel] } else { if(PlayerInfo[i][pRegularRank] > 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][pRegularRank] > 0) { new bonus = PlayerInfo[i][pPayCheck] / 10; checks += bonus; } new ebill = (PlayerInfo[i][pAccount]/10000)*(PlayerInfo[i][pLevel]); 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]++; 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] != 9999 || PlayerInfo[i][pPbiskey] != 9999) { 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; 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][pRegularRank] > 0) { PlayerInfo[i][pPayDayHad] += 1; if(PlayerInfo[i][pPayDayHad] >= 5) { PlayerInfo[i][pExp]++; PlayerInfo[i][pPayDayHad] = 0; } } } else { SendClientMessage(i, COLOR_WHITE, "* You haven't played long enough to obtain a PayDay."); } } } } SaveAccounts(); new rand = random(2500); rand += 1245; Jackpot += rand; SaveStuff(); SaveAnticheat(); format(string, sizeof(string), "Lottery News: Our New Jackpot has been increased to $%d.", Jackpot); OOCOff(COLOR_WHITE, string); return 1; }