public PayDay()
{
for(new i; i < MAX_PLAYERS && IsPlayerConnected(i); i++)
{
//Calculating the payday
new string[256],
query2[256],
user_payload = floatround(0.000003 * playerVariables[i][pLevel] * playerVariables[i][pBankMoney]),
user_rent_price = houseVariables[ playerVariables[i][pHouseRented] ][hRent],
user_tax = floatround(user_payload / 100 * 10),
hours = floatround(3600 / playerVariables[i][pSeconds]),
user_premium_bonus;
if(playerVariables[i][pDonate] == 1) user_premium_bonus = 50000;
new user_total_payload = user_payload + user_premium_bonus - user_rent_price - user_tax;
SCM(i, COLOR_GREY, "PayDay:");
SCM(i, -1, "Your paycheck has arrived, visit the bank or atm to withdraw your money.");
format(string, sizeof(string), "Payload: $%s | Rent: $%s | Tax: $%s (10 percent) | Bonus: $%s (Premium) | Total Payload: $%s", NumberFormat(user_payload), NumberFormat(user_rent_price), NumberFormat(user_tax), NumberFormat(user_premium_bonus), NumberFormat(user_total_payload));
SCM(i, -1, string);
playerVariables[i][pBankMoney] += user_total_payload;
//Licences
if(playerVariables[i][pDriveLicense] > 0)
{
playerVariables[i][pDriveLicense] -= 1;
if(playerVariables[i][pDriveLicense] == 0) return SS(i, -1, "Your drivings licence has expired. Visit de DMV to renew it.", "Licenta ta de condus a expirat. Visiteaza DMV-ul pentru a da de permis.");
}
if(playerVariables[i][pGunLicense] > 0)
{
playerVariables[i][pGunLicense] -= 1;
if(playerVariables[i][pGunLicense] == 0) return SS(i, -1, "Your gun licence has expired. Contact an instructor to renew it.", "Licenta ta de port arma a expirat. Contacteaza un instructor pentru a lua una noua.");
}
if(playerVariables[i][pFlyLicense] > 0)
{
playerVariables[i][pFlyLicense] -= 1;
if(playerVariables[i][pFlyLicense] == 0) return SS(i, -1, "Your flying licence has expired. Contact an instructor to renew it.", "Licenta ta de pilot a expirat. Contacteaza un instructor pentru a lua una noua.");
}
if(playerVariables[i][pBoatLicense] > 0)
{
playerVariables[i][pBoatLicense] -= 1;
if(playerVariables[i][pBoatLicense] == 0) return SS(i, -1, "Your sailing licence has expired. Contact an instructor to renew it.", "Licenta ta de barca a expirat. Contacteaza un instructor pentru a lua una noua.");
}
//Counting down the hours
if(playerVariables[i][pSeconds] >= 1800)
{
if(playerVariables[i][pLang] == 0)
{
format(string, sizeof(string), "Ai jucat %d minute din ultima ora.", floatround(playerVariables[i][pSeconds] / 60));
SCM(i, -1, string);
}
else
{
format(string, sizeof(string), "You have played %d minutes from the last hour.", floatround(playerVariables[i][pSeconds] / 60));
SCM(i, -1, string);
}
playerVariables[i][pGiftHours] --;
}
else return SS(i, -1, "You haven't played 31 minutes to gain a full hour.", "Nu ai jucat 31 de minute pentru a primi o ora completa.");
if(playerVariables[i][pHelper] > 0)
{
playerVariables[i][pBankMoney] += 50000;
SS(i, -1, "You have received $50,000 as salary for being a helper.", "Ai primit $50,000 deoarece esti un helper.");
}
if(playerVariables[i][pGroupRank] == 7)
{
playerVariables[i][pBankMoney] += 50000;
SS(i, -1, "You have received $50,000 as salary for being a leader.", "Ai primit $50,000 deoarece esti un lider.");
}
//Other
playerVariables[i][pRobPoints]++;
playerVariables[i][pRPoints]++;
if(playerVariables[i][pFPunish] > 0)
{
playerVariables[i][pFPunish]--;
}
format(query2, sizeof(query2), "INSERT INTO `user_activity` (`user_hours`, `user_id`) VALUES ('%d', '%d')", hours, playerVariables[i][pInternalID]);
mysql_tquery(handle, query2);
playerVariables[i][pSeconds] = 0;
savePlayerData(i);
}
return 1;
}
for(new i; i < MAX_PLAYERS && IsPlayerConnected(i); i++)
|
is pSeconds @ floatround(3600 / playerVariables[i][pSeconds]) 0 ?
Also, try actually debugging variables with logs. |
|
This whole loop is wrong.
Код:
for(new i; i < MAX_PLAYERS && IsPlayerConnected(i); i++) You need to pass that cycle with continue when a player isn't connected. Other than that, sounds like a crash, run crashdetect plugin with your code and come back with results if any. |