LeoMoreno
Ученик
При PayDay сервер на несколько сек.зависает
В чем может быть проблема?
PHP:
stock PayDay()
{
for(new i = 0; i <fraction_amount; i++)
{
if(frac_metall[i] < 0) frac_metall[i] = 0;
if(frac_patron[i] < 0) frac_patron[i] = 0;
}
CheckArendatorPlata();
BizHourTime = 0;
new count_fh=0, count_zh=0;
for(new house = 1; house < TotalHouse; house++)
{
if(!strcmp(gHouses[house][houseOwner],"The State"))
{
count_fh++;
}
else count_zh++;
}
format(stringer, 250, ""ORG"Èíôîðìàöèÿ î äîìàõ íà ñåðâåðå:\n\n{"#cGREEN"}Ñâîáîäíûõ: %i\n{"#cRED"}Êóïëåííûõ: %i",count_fh, count_zh);
UpdateDynamic3DTextLabelText(info_house,-1,stringer);
foreach(new i:Player)
{
if(IsPlayerAuthorized(i) == PLAYER_OFFLINE) continue;
if(unix - p_info[i][pAFK] >= 60 && p_info[i][pElite2] == 0) { SendInf(i,"Âû íå ïîëó÷èëè çàðïëàòó, ïîòîìó ÷òî áûëè â AFK");continue; }
if(p_info[i][tHelper] && SELECT_SERVER != 2){ HelperStat[i][2] ++; }
if(p_info[i][pWanted]>0)
{
p_info[i][pWanted] --;
UpdatePlayerData(i,"pWanted",p_info[i][pWanted]);
SetPlayerWantedLevel(i, p_info[i][pWanted]);
}
new salary = 0;
if(p_info[i][tMember] == F_HITMAN || p_info[i][tMember] == F_T_ANGEL)
salary = (p_info[i][tRank] > 1) ? (3000 + (200 * (p_info[i][tRank]-1))) : (3000);
else if(p_info[i][tMember] == F_BALLAS
|| p_info[i][tMember] == F_VAGOS
|| p_info[i][tMember] == F_RM
|| p_info[i][tMember] == F_GROVE
|| p_info[i][tMember] == F_AZTECAS
|| p_info[i][tMember] == F_RIFA
|| p_info[i][tMember] == F_LCN
|| p_info[i][tMember] == F_YAKYZA)
salary = 2000 + (VladGzone[p_info[i][tMember]] * 250);
else if(p_info[i][tMember] == F_SANN) salary = f_info[p_info[i][tMember]][f_salary] + (advert_count[i]*(random(80)+100));
else if(p_info[i][tMember]>0 && p_info[i][tMember]<MAX_FRACTIONS) salary = (p_info[i][tRank] > 1) ? (f_info[p_info[i][tMember]][f_salary] + (floatround(f_info[p_info[i][tMember]][f_salary]*0.25) * (p_info[i][tRank]-1))) : (f_info[p_info[i][tMember]][f_salary]);
else salary = nalog + floatround(nalog * 2.5);
if ( salary < nalog + floatround(nalog * 2.5) ) salary += nalog + floatround(nalog * 2.5);
salary -= nalog;
kazna += nalog;
if(BONUS_PAYDAY || p_info[i][pDonateRank])
{
p_info[i][pExp] += 4;
salary = salary * 4;
}
else p_info[i][pExp]++;
UpdatePlayerData(i,"pExp",p_info[i][pExp]);
//
SendClientMessage(i,0x55c46aaa,"==============[ Çàðïëàòà ]==============");
if(gBankInfo[i][b_acc_number][0] != -1)
{
format(stringer, 128," Áàíêîâñêèé ñ÷¸ò {55c46a}# %i",gBankInfo[i][b_acc_number][0]);
SendClientMessage(i,0xff4c1eaa,stringer);
}
format(stringer,128," Çàðïëàòà: {55c46a}%d $", (salary != 0)?(salary):(floatround(nalog * 2.5)));
SendClientMessage(i,0xff4c1eaa, stringer);
format(stringer,128," Íàëîã: {55c46a}%d $", nalog);
SendClientMessage(i,0xff4c1eaa, stringer);
SendClientMessage(i,0xff9900AA,"=[+1 Ëîòåðåéíûé áèëåò]=");
if(gBankInfo[i][b_acc_number][0] != -1)
{
format(stringer,128," Îáùèé ñ÷åò â áàíêå: {55c46a}%d $", gBankInfo[i][b_acc_money][0]);
SendClientMessage(i,0xff4c1eaa, stringer);
}
p_info[i][pRandomb] += 1;
//
/*if(a_info[i][aRankID] > 0)
{
SendClientMessage(i,0xff4c1eaa, " Çàðïëàòà àäìèíèñòðàòîðà: {55c46a}250 donate");
p_info[i][tDonatemoney2] += 250 ;
UpdatePlayerData(i,"tDonatemoney2",p_info[i][tDonatemoney2]);
}*/
if (gBankInfo[i][b_acc_number][0] != -1)
{
if(p_info[i][pSalary] > 0)
{
TransferMoney(i,p_info[i][pCash]+p_info[i][pSalary],p_info[i][pSalary],"ïîëó÷èë çàðïëàòó");
p_info[i][pCash] += p_info[i][pSalary];
UpdateMoney(i);
format(stringer, 128, " Çàðïëàòà çà ðàáîòó: {55c46a}%d $",p_info[i][pSalary]);
SendClientMessage(i,0xff4c1eaa,stringer);
p_info[i][pSalary] = 0;
UpdatePlayerData(i,"pSalary",p_info[i][pSalary]);
}
//gPlayerBank[i][bank_sum] += salary;
gBankInfo[i][b_acc_money][0] -= nalog;
UpdateBankMoneyForPlayer(gBankInfo[i][b_acc_money][0] += (salary != 0) ? (salary) : (25), gBankInfo[i][b_acc_number][0]);
}
p_info[i][pZakonp] ++;
if(p_info[i][pZakonp] > 100) p_info[i][pZakonp] = 100;
UpdatePlayerData(i,"pZakonp",p_info[i][pZakonp]);
//
p_info[i][pPayDayHad] ++;
UpdatePlayerData(i,"pPayDayHad",p_info[i][pPayDayHad]);
// <--------->
GameTextForPlayer(i, "~w~PayDay", 5000, 1);
UpdatePlayerLevel(i);
if(BONUS_PAYDAY) SendClientMessage(i,0xff4c1eaa," Áîíóñ: {55c46a}+4 EXP");
SendClientMessage(i,0x55c46aaa,"======================================");
}
stringer[0] = EOS;
format(stringer,144,"{"#cWHITE"}Êàçíà øòàòà: {ffff00}%i$\n{"#cWHITE"}Íàëîã ãîñóäàðñòâà: {ffff00}%i$", kazna, nalog);
UpdateDynamic3DTextLabelText(frac_text[7], -1, stringer);
//
new update_meria[300];
format(update_meria,300,"UPDATE `loadmeria` SET `Kazna` = '%d'", kazna);
mysql_pquery(connects,update_meria);
//
for(new x=0; x<CountBusiness; x++)
{
if(Business[x][bType] == 13) continue;
if(Business[x][Mafia] == 5)
{
frac_money[Business[x][Mafia]] += gBankMafia[BANK_LCN][x];
gBankMafia[BANK_LCN][x] = 0;
UpdateFractionStore(Business[x][Mafia]);
}
else if(Business[x][Mafia] == 6)
{
frac_money[Business[x][Mafia]] += gBankMafia[BANK_YAKUZA][x];
gBankMafia[BANK_YAKUZA][x] = 0;
UpdateFractionStore(Business[x][Mafia]);
}
else if(Business[x][Mafia] == 14)
{
frac_money[Business[x][Mafia]] += gBankMafia[BANK_RM][x];
gBankMafia[BANK_RM][x] = 0;
UpdateFractionStore(Business[x][Mafia]);
}
if(!strcmp(Business[x][Owner], "The State",true)) continue;
Business[x][bAmountHour] = 0;
if(Business[x][bProdOrder] <= 0) Business[x][bProdOrder] = 0;
if(Business[x][bProd] <= 0)
{
Business[x][bHourProd]++;
Business[x][bProd] = 0;
}
else Business[x][bHourProd] = 0;
if(Business[x][Lock] == 1)
{
Business[x][bHourClose]++;
}
else Business[x][bHourClose] = 0;
if(Business[x][bAvtoProd] == 1)
{
if(Business[x][bProd]<Business[x][bProdMax])Business[x][bProd] += 1000;
Business[x][bHourProd] = 0;
}
Business[x][bCheckPower] -= bPowerTax;
if(Business[x][bCheckPower] <= 0 || Business[x][bHourProd] >= 24 || Business[x][bHourClose] >= 12)
{
new player = GetPlayerID(Business[x][Owner]);
new cash_bizz = Business[x][Bank];
if(IsPlayerConnected(player))
{
if(Business[x][bHourProd] >= 24) SendClientMessage(player,CBADINFO, "ÂÍÈÌÀÍÈÅ: Âàø áèçíåñ ïðîäàí çà ïðîñòîé áåç ïðîäóêòîâ");
else if(Business[x][bHourClose] >= 12) SendClientMessage(player,CBADINFO, "ÂÍÈÌÀÍÈÅ: Âàø áèçíåñ ïðîäàí çà ïðîñòîé áåç ïðîäóêòîâ áîëåå 24 ÷àñîâ");
else SendClientMessage(player,CBADINFO, "ÂÍÈÌÀÍÈÅ: Âàø áèçíåñ ïðîäàí çà ïðîñòîé çàêðûòûì áîëåå 12 ÷àñîâ");
SendClientMessage(player,CRED, "×òîáû çàáðàòü äåíüãè çà áèçíåñ, ñúåçäèòå â áàíê è âûáåðèòå ïóíêò â ìåíþ > {AFAFAF}Çàáðàòü äåíüãè ñ ïðîäàæè áèçíåñà");
p_info[player][pBizCash] = cash_bizz;
p_info[player][pPbiskey] = 0;
UpdatePlayerData(player,"pBizCash", cash_bizz);
UpdatePlayerData(player,"pPbiskey", 0);
}
else
{
mysql_query_string[0] = EOS;
format(mysql_query_string, 400, "UPDATE `accounts` SET \
`pPbiskey` = '0', `pBizCash` = '%d' WHERE `tName` = '%s' LIMIT 1", cash_bizz,Business[x][Owner]);
mysql_pquery(connects, mysql_query_string, "", "");
}
Business[x][bAmountHour] = 0;
Business[x][Bank] = 0;
Business[x][bHourClose] = 0;
Business[x][bHourProd] = 0;
strmid(Business[x][Owner], "The State", 0, strlen("The State"), 31);
Update3DTextLabelBusiness(x);
}
UpdateOtherBusiness(x);
}
mysql_pquery(connects,"UPDATE `accounts` SET `advert_count` = '0'","","");
foreach(new AD:Player)
{
if(advert_count[AD]>0) advert_count[AD] = 0;
}
return 1;
}
