Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Зависает сервер при PayDay

Статус
В этой теме нельзя размещать новые ответы.

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;
}
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу