Pavel-KZ
Умник
Всем привет. Проблема в том что при PayDay сервер зависает на 2 - 3 сек.
PHP:
stock PayDay()
{
new string[268];
for(new i = 0; i < 20; i++) FrakCD[i] = 0;
for(new i = 0; i < sizeof(GZInfo); i++)
{
if(GZInfo[i][gFrakVlad] == 12) TotalGzB++;
if(GZInfo[i][gFrakVlad] == 13) TotalGzV++;
if(GZInfo[i][gFrakVlad] == 15) TotalGzG++;
if(GZInfo[i][gFrakVlad] == 17) TotalGzA++;
if(GZInfo[i][gFrakVlad] == 18) TotalGzR++;
}
FracBank[0][fBallas] += TotalGzB*300;
FracBank[0][fVagos] += TotalGzV*300;
FracBank[0][fGrove] += TotalGzG*300;
FracBank[0][fRifa] += TotalGzR*300;
FracBank[0][fAztek] += TotalGzA*300;
ClearTotalGz();
startcapture = 1;
canGrab = 1;
SetTimer("CaptureOff",300000,0);
for(new i = 1; i <= TotalBizz; i++)
{
if(BizzInfo[i][bStavka] > 0 && BizzInfo[i][bOwned] == 0 && BizzInfo[i][bTimeStavka] > 0) BizzInfo[i][bTimeStavka]--;
if(BizzInfo[i][bTimeStavka] == 0 && BizzInfo[i][bStavka] > 0)
{
format(YCMDstr,sizeof(YCMDstr),"SELECT Name FROM `accounts` WHERE Name = '%s'",BizzInfo[i][bNameStavka]);
mysql_query(YCMDstr);
mysql_store_result();
if(mysql_fetch_row_format(YCMDstr))
{
if(IsPlayerConnected(GetPlayerID(BizzInfo[i][bNameStavka]))) PlayerInfo[GetPlayerID(BizzInfo[i][bNameStavka])][pPbiskey] = i, SendClientMessage(GetPlayerID(BizzInfo[i][bNameStavka]),COLOR_WHITE,"Вы приобрели бизнес с аукциона. Управление: /mm => Команды");
else format(string, sizeof(string), "UPDATE accounts SET pPbiskey = %d, pText = 6 WHERE name = '%s'",i,BizzInfo[i][bNameStavka]), mysql_query(string);
BizzInfo[i][bOwned] = 1;
BizzInfo[i][bLocked] = 0;
BizzInfo[i][bPrice] = 100;
BizzInfo[i][bTill] = BizzInfo[i][bMinStavka];
BizzInfo[i][b2Till] = 0;
BizzInfo[i][bLicense] = 0;
BizzInfo[i][bStavka] = 0;
BizzInfo[i][bMinStavka] = 0;
BizzInfo[i][bTimeStavka] = 0;
BizzInfo[i][bLastStavka] = 0;
if(BizzInfo[i][bType] != 4) BizzInfo[i][bProducts] = 2000;
else BizzInfo[i][bProducts] = 20000;
BizzInfo[i][bEntranceCost] = 100;
strmid(BizzInfo[i][bOwner],BizzInfo[i][bNameStavka], 0, strlen(BizzInfo[i][bNameStavka]), 32);
strmid(BizzInfo[i][bNameStavka], "-", 0, strlen("-"), 10);
if(BizzInfo[i][bType] != 4) format(string,sizeof(string), "%s\nВладелец: %s", BizzInfo[i][bMessage], BizzInfo[i][bOwner]);
else format(string,sizeof(string), "%s\nВладелец:\n %s\nЦена бензина: %d вирт", BizzInfo[i][bMessage], BizzInfo[i][bOwner], BizzInfo[i][bPrice]);
Update3DTextLabelText(BizzInfo[i][bLabel], 0x00D900FF, string);
SaveBizz(i);
}
mysql_free_result();
}
if(BizzInfo[i][bOwned] == 0) continue;
if(BizzInfo[i][bTill] < 100 || BizzInfo[i][bLocked] == 1 && BizzInfo[i][bLockTime] > 12) ClearBizz(i);
else
{
if(BizzInfo[i][bProducts] <= 0)
{
BizzInfo[i][bLocked] = 1;
if(IsPlayerConnected(GetPlayerID(BizzInfo[i][bOwner])))
{
if(BizzInfo[i][bLockTime] == 0) SetPVarInt(GetPlayerID(BizzInfo[i][bOwner]), "_GetBizz_", 1);
}
}
if(BizzInfo[i][bLocked] == 1)BizzInfo[i][bLockTime]++;
if(BizzInfo[i][bLockTime] > 1 && BizzInfo[i][bLockTime] < 12)if(IsPlayerConnected(GetPlayerID(BizzInfo[i][bOwner]))) SetPVarInt(GetPlayerID(BizzInfo[i][bOwner]), "GetBizz_", 1);
BizzInfo[i][bTill] -= 100;
BizzInfo[i][bTill]+=BizzInfo[i][b2Till];
BizzInfo[i][b2Till] = 0;
if(BizzInfo[i][bMafia] == 6) MafiaBank[0][nYakuza] += 500;
if(BizzInfo[i][bMafia] == 14) MafiaBank[0][nRm] += 500;
if(BizzInfo[i][bMafia] == 5) MafiaBank[0][nLcn] += 500;
}
}
for(new k = 1; k <= ALLKVARTIRI; k++)
{
if(!strcmp(kvartinfo[k][vladelec],"None",true)) continue;
kvartinfo[k][plata]-=200;
if(kvartinfo[k][plata] <= 0)
{
kvartinfo[k][aptek] = 0;
kvartinfo[k][lock] = 0;
kvartinfo[k][plata] = 0;
format(string, sizeof(string), "UPDATE accounts SET pKvartirakey = '0' WHERE name = '%s'",kvartinfo[k][vladelec]);
mysql_query(string);
strmid(kvartinfo[k][vladelec], "None", 0, strlen("None"), 10);
updatekvar(k);
SaveKvartir(k);
}
}
for(new h = 1; h <= TotalHouse; h++)
{
robhouse[h] = false;
if(HouseInfo[h][hOwned] == 1)
{
GetHome(h,"hTakings",HouseInfo[h][hTakings]);
new test2 = 0;
if(HouseInfo[h][hKlass] == 0 && HouseInfo[h][hOwned] == 1) test2 = 50;
if(HouseInfo[h][hKlass] == 1 && HouseInfo[h][hOwned] == 1) test2 = 100;
if(HouseInfo[h][hKlass] == 2 && HouseInfo[h][hOwned] == 1) test2 = 150;
if(HouseInfo[h][hKlass] == 3 && HouseInfo[h][hOwned] == 1) test2 = 100;
if(HouseInfo[h][hKlass] == 4 && HouseInfo[h][hOwned] == 1) test2 = 50;
new ammo = HouseInfo[h][hTakings]-test2;
SetHouse(HouseInfo[h][hID], "hTakings", ammo);
HouseInfo[h][hTakings] = ammo;
//GetHome(h,"hTakings",HouseInfo[h][hTakings]);
}
if(HouseInfo[h][hTakings] <= 0 && HouseInfo[h][hOwned] == 1)
{
new housecash = HouseInfo[h][hValue];
format(string, sizeof(string), "UPDATE accounts SET pPhousekey = '999',pHousecash = '%d', pText = '1' WHERE name = '%s'",housecash,HouseInfo[h][hOwner]);
mysql_query(string);
HouseInfo[h][hHel] = 0;
HouseInfo[h][hLock] = 1;
HouseInfo[h][hOwned] = 0;
strmid(HouseInfo[h][hOwner], "The State", 0, strlen("The State"), 32);
BuyHouse(h);
SaveHouse(h);
}
}
if(armmatbi < 0) armmatbi = 0;
if(armmatsf < 0) armmatsf = 0;
for(new idx=0, i=0; idx<cvector_size(players); idx++)
{
i = cvector_get(players, idx);
if(PlayerInfo[i][pLogin] == 0) continue;
PayChecks(i);
new exp = PlayerInfo[i][pExp];
new nxtlevel = PlayerInfo[i][pLevel]+1;
new expamount = nxtlevel*levelexp;
PlayerInfo[i][ptaxiexp] += taxiexpp[i];
PlayerInfo[i][pExp]++;
if(exp >= expamount-1) PlayerInfo[i][pLevel] += 1, PlayerInfo[i][pExp] = 0, DollahScoreUpdate(i), SendClientMessage(i, COLOR_ISPOLZUY, "Поздравляем! Ваш лвл повысился");
new house = PlayerInfo[i][pPhousekey];
if(PlayerInfo[i][ptaxiexp] == PlayerInfo[i][ptaxilvl]+1*levelexp) PlayerInfo[i][ptaxilvl] += 1, PlayerInfo[i][ptaxiexp] = 0;
if(PlayerInfo[i][pMember] == 3 && armmatbi <= 0) PlayerInfo[i][pPayCheck] = 0, SendClientMessage(i, COLOR_GRAD1, "Склад Армии LV пуст!");
if(PlayerInfo[i][pMember] == 19 && armmatsf <= 0) PlayerInfo[i][pPayCheck] = 0, SendClientMessage(i, COLOR_GRAD1, "Склад Армии SF пуст!");
new checks = PlayerInfo[i][pPayCheck];
if(PlayerInfo[i][pDonateRank] > 0) format(string, sizeof(string), "PayDay");
else format(string, sizeof(string), "~w~PayDay");
GameTextForPlayer(i, string, 5000, 1);
if(PlayerInfo[i][pDonateRank] > 0) SendClientMessage(i, COLOR_NEWS, "--------===[ VIP КЛИЕНТ БАНКА SA ]===-------");
else SendClientMessage(i, COLOR_GRAD1, "--------===[ КЛИЕНТ БАНКА SA ]===-------");
if(!NoNalog(i))
{
if(PlayerInfo[i][pPayCheck] >= 500)
{
format(string, sizeof(string), "***** Налог государству: -%d вирт *****",PlayerInfo[i][pPayCheck]/10);
SendClientMessage(i, 0xFF8C37AA, string);
PlayerInfo[i][pBank] -= PlayerInfo[i][pPayCheck]/10;
FracBank[0][fKazna] += checks/10;
}
else format(string, sizeof(string), "***** Налог государству: -0 вирт *****"), SendClientMessage(i, 0xFF8C37AA, string);
}
if(PlayerInfo[i][pBank] > 50 && PlayerInfo[i][pKrisha] != 0) PlayerInfo[i][pBank] -= 50, PlayerInfo[i][pDolg] += 50;
if(PlayerInfo[i][pCash] > 50 && PlayerInfo[i][pKrisha] != 0) PlayerInfo[i][pCash] -= 50, PlayerInfo[i][pDolg] += 50;
format(string, sizeof(string), " Счёт за телефон: -%d вирт", PlayerInfo[i][pMobile]);
SendClientMessage(i, 0xFF8C37AA, string);
PlayerInfo[i][pBank]-=PlayerInfo[i][pMobile];
PlayerInfo[i][pMobile] = 0;
SendClientMessage(i, COLOR_WHITE, " ");
switch(PlayerInfo[i][pMember])
{
case 1,10,21: format(string, sizeof(string), " Зарплата Полиции: %d вирт", checks);
case 3,19: format(string, sizeof(string), " Зарплата Армии: %d вирт", checks);
case 2: format(string, sizeof(string), " Зарплата FBI: %d вирт", checks);
case 7: format(string, sizeof(string), " Зарплата Мэрии: %d вирт", checks);
case 4,22: format(string, sizeof(string), " Зарплата Медиков: %d вирт", checks);
case 11: format(string, sizeof(string), " Зарплата Инструкторов: %d вирт", checks);
case 5,6,14: format(string, sizeof(string), " Зарплата организации: %d вирт", checks);
default: format(string, sizeof(string), " Зарплата: %d вирт", checks);
}
if(PlayerInfo[i][pDonateRank] > 0) SendClientMessage(i, COLOR_NEWS, string);
else SendClientMessage(i, COLOR_WHITE, string);
PlayerInfo[i][pBank] += checks;
new interest;
if(PlayerInfo[i][pDonateRank] > 0) interest = (PlayerInfo[i][pBank]/10000)*5;
else interest = (PlayerInfo[i][pBank]/10000)*2;
if(interest > 0)
{
if(PlayerInfo[i][pDonateRank] > 0) format(string, sizeof(string), " Полученый процент: %d вирт",interest), SendClientMessage(i, COLOR_NEWS, string);
else format(string, sizeof(string), " Полученый процент: %d вирт",interest), SendClientMessage(i, COLOR_WHITE, string);
PlayerInfo[i][pBank]+=interest;
}
if(PlayerInfo[i][pDonateRank] > 0) format(string, sizeof(string), " Текущий баланс: %d вирт", PlayerInfo[i][pBank]), SendClientMessage(i, COLOR_NEWS, string);
else format(string, sizeof(string), " Текущий баланс: %d вирт", PlayerInfo[i][pBank]), SendClientMessage(i, COLOR_WHITE, string);
new kvartira = PlayerInfo[i][pKvartirakey];
if(PlayerInfo[i][pKvartirakey] != 0 && kvartinfo[kvartira][plata] <= 0)
{
kvartinfo[kvartira][aptek] = 0;
kvartinfo[kvartira][lock] = 0;
strmid(kvartinfo[kvartira][vladelec], "None", 0, strlen("None"), 10);
SendClientMessage(i, 0xFF8C37AA, "Ваша квартира была продана за неуплату Электроэнергии!");
kvartinfo[kvartira][plata] = 0;
updatekvar(kvartira);
PlayerInfo[i][pKvartirakey] = 0;
}
if(GetPVarInt(i, "_GetBizz_") > 0 && PlayerInfo[i][pPbiskey] != 255)
{
SendClientMessage(i, COLOR_LIGHTRED, " Ваш бизнес был закрыт по причине: отсутствие продуктов");
SendClientMessage(i, COLOR_LIGHTRED, " Если по истечению {ffffff}12 {FF6347}часов бизнес будет закрыт, он будет продан гос-ву");
DeletePVar(i, "_GetBizz_");
}
if(GetPVarInt(i, "GetBizz_") > 0 && GetPVarInt(i, "_GetBizz_") == 0 && PlayerInfo[i][pPbiskey] != 255)
{
format(string, sizeof(string), " Ваш бизнес закрыт уже {ffffff}%i {FF6347}час(а/ов)",BizzInfo[GetPVarInt(i, "PlayerBizz")][bLockTime]);
SendClientMessage(i, COLOR_LIGHTRED,string);
SendClientMessage(i, COLOR_LIGHTRED, " Если по истечению {ffffff}12 {FF6347}часов бизнес будет закрыт, он будет продан гос-ву");
DeletePVar(i, "GetBizz_");
}
if(GetPVarInt(i, "GetBizz") > 0)
{
SendClientMessage(i, COLOR_LIGHTRED," Ваш бизнес был продан гос-ву за неуплату налогов");
SendClientMessage(i, COLOR_LIGHTRED," Ваши деньги за бизнес были перечислены на ваш счет");
PlayerInfo[i][pPbiskey] = 255;
DeletePVar(i, "GetBizz");
}
if(PlayerInfo[i][pPhousekey] != 999)
{
//GetHome(house,"hTakings",HouseInfo[house][hTakings]);
if(PlayerInfo[i][pDonateRank] >= 1) SendMes(i,COLOR_NEWS," Домашний счет: %d вирт",HouseInfo[house][hTakings]);
else SendMes(i,COLOR_WHITE," Домашний счет: %d вирт",HouseInfo[house][hTakings]);
if(HouseInfo[house][hTakings] <= 0)
{
PlayerInfo[i][pText] = 1;
PlayerInfo[i][pHousecash] = HouseInfo[house][hValue];
HouseInfo[house][hHel] = 0;
HouseInfo[house][hLock] = 1;
HouseInfo[house][hOwned] = 0;
HouseInfo[house][hVec] = 0;
HouseInfo[house][hVcol1] = -1;
HouseInfo[house][hVcol2] = -1;
strmid(HouseInfo[house][hOwner], "The State", 0, strlen("The State"), 32);
SendClientMessage(i, 0xFF8C37AA, " Вы были выселены. Деньги за дом вы можете получить в банке \"/GetHouseMoney\"");
SetHouse(HouseInfo[house][hID], "hTakings", 0);
BuyHouse(house);
SaveHouse(house);
PlayerInfo[i][pPhousekey] = 999;
}
}
if(PlayerInfo[i][pDonateRank] >= 1) SendClientMessage(i, COLOR_NEWS, "================================");
else SendClientMessage(i,COLOR_GRAD1, "================================");
if(PlayerInfo[i][punWarns] == 1)
{
PlayerInfo[i][punWarnstime] += 1;
format(string, sizeof(string), "Автоматическое снятие варна через %d часов", 10 - PlayerInfo[i][punWarnstime]);
SendClientMessage(i,COLOR_LIGHTRED, string);
}
if(PlayerInfo[i][punWarns] == 1 && PlayerInfo[i][punWarnstime] >=10)
{
if(PlayerInfo[i][pWarns] == 1) PlayerInfo[i][punWarnstime] = 0, PlayerInfo[i][punWarns] = 0, PlayerInfo[i][pWarns] -= 1;
else if(PlayerInfo[i][pWarns] > 1) PlayerInfo[i][punWarnstime] = 0, PlayerInfo[i][punWarns] = 1, PlayerInfo[i][pWarns] -= 1;
SendClientMessage(i,COLOR_LIGHTRED, "С Вас было снято одно предупреждение!");
}
if(PlayerInfo[i][pLevel] == 3 && PlayerInfo[i][pExp] == 0)
{
format(string, sizeof(string), "SELECT pDrug FROM `accounts` WHERE name = '%s'",Name(i));
mysql_query(string);
mysql_store_result();
new Nick[50];
if(mysql_fetch_row_format(string))
{
BaseGet("pDrug",Nick);
format(string, sizeof(string), "UPDATE accounts SET pCash = pCash + 100000, pText = '3' WHERE name = '%s'",Nick);
mysql_query(string);
}
mysql_free_result();
}
seans[i] = 0;
PlayerInfo[i][pRobHouse] = 0;
PlayerInfo[i][pRobCar] = 0;
PlayerInfo[i][pPayCheck] = 0;
PlayerInfo[i][pPayDayHad] += 1;
PlayerInfo[i][pPayDay]++;
for(new veh; veh < MAX_VEHICLES; veh++) Delete3DTextLabel(carom[veh]), carrob[veh] = 0;
}
return true;
}
