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

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

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

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

Про string

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

Dougs

Новичок
Есть в моде список оффлайн игроков, он слишком много string жрет, можно как то оптимизировать? Я так понял, в каждом диалоге показывает по 15 игроков, то есть если снизить до 10 и уменьшить стринг до 700(примерно) получится так?

PHP:
forward unit_2(playerid);
public unit_2(playerid)
{
	new rows, fields, tmp = 0;
	cache_get_data(rows, fields, database);
	if(rows)
	{
		new vig, rank, name[24], data[24], string[80], stringall[2000];
		strcat(stringall, "{D9D9D9}Имя\tРанг\tВыговоры\tПоследний вход\n");
		for(new i = pTemp[playerid][var_unit_1]*15; i < rows; i++)
	 	{
		 	cache_get_field_content(i, "Name", name, database, 24);
			if(!IsPlayerConnected(GetPlayerID(name)))
			{
			    vig = cache_get_field_content_int(i, "pReprimands", database);
	 	    	rank = cache_get_field_content_int(i, "pRank", database);
			    cache_get_field_content(i, "pGetonDate", data, database, 24);
			    tmp++;
				format(string, sizeof(string), "{D9D9D9}%s\t%i\t%i\t%s\n", name, rank, vig, data);
				strcat(stringall, string);
			}
		}
		if(tmp > 0)
		{
			strcat(stringall, "Следующая страница\n");
			if(pTemp[playerid][var_unit_1] > 0) strcat(stringall, "Предыдущая страница\n");
			format(string, sizeof(string), "{0089FF}Список offline игроков страница: %i", pTemp[playerid][var_unit_1]+1);
			ShowPlayerDialog(playerid, 281, DIALOG_STYLE_TABLIST_HEADERS, string, stringall, "Выбрать", "Закрыть");
		}
		else
		{
	 	    if(pTemp[playerid][var_unit_1] > 0)
	 	    {
	 	    	pTemp[playerid][var_unit_1]--;
	 	    	unit_1(playerid);
	 		}
		 	SendClientMessage(playerid, COLOR_GREY, "Игроки не найдены.");
	 	}
 	}
 	else
 	{
 	    if(pTemp[playerid][var_unit_1] > 0)
 	    {
 	    	pTemp[playerid][var_unit_1]--;
 	    	unit_1(playerid);
 		}
	 	SendClientMessage(playerid, COLOR_GREY, "Игроки не найдены.");
 	}
 	return 1;
}
Вот что находиться в var_unite_1
PHP:
unit_1(playerid)
{
    new string[120];
	format(string, sizeof(string), "SELECT * FROM `Accounts` WHERE `pMember` = '%i' LIMIT %i", PlayerInfo[playerid][pMember], pTemp[playerid][var_unit_1]*15+15);
	mysql_function_query(database, string, true, "unit_2", "i", playerid);
}
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу